Usando dmesg en Linux

El núcleo de Linux es una pieza compleja de ingeniería. Desde el arranque hasta el modo multiusuario de nivel 5, el núcleo de Linux inicializa y gestiona los recursos de un PC, incluyendo el procesador, la memoria, la red, la salida de vídeo y el almacenamiento local. Como el kernel trabaja con todos estos diferentes subsistemas y recursos, registra varios mensajes de alto nivel para que los administradores del sistema sepan lo que está haciendo. Estos mensajes se pueden ver usando el comando «dmesg». El problema es que la salida del núcleo puede parecer compleja e ininteligible para el ojo inexperto. Sin embargo, con un poco de ayuda para entender lo básico, el comando «dmesg» puede convertirse en una herramienta muy poderosa en el conjunto de herramientas de un administrador de sistemas.

Bota

La forma más rápida de aprender sobre los mensajes del núcleo es examinar las primeras líneas del proceso de arranque. Para ver la primera página de salida, utilice el siguiente comando:

dmesg | less

Usando dmesg en Linux

Las primeras tres líneas se refieren probablemente a la inicialización de los «Grupos de control» para el procesador. Esto no es tan interesante a menos que seas un hacker de kernels. Sin embargo, la siguiente línea es muy importante. Le dirá qué versión del núcleo de Linux está ejecutando.

La salida de mi máquina de pruebas dice:

Linux versión 3.13.0-24-generic (buildd@roseapple) (gcc versión 4.8.2 (Ubuntu 4.8.2-19ubuntu1)) #46-Ubuntu SMP Thu Apr 10 19:08:14 UTC 2014 (Ubuntu 3.13.0-24.46-generic 3.13.9)

Lo que esto me dice es que mi máquina de prueba está ejecutando el kernel 3.13 de Linux que fue compilado por Ubuntu el 10 de abril de 2014.

Las siguientes 80 a 100 líneas son detalles de bajo nivel sobre el BIOS, la CPU y la memoria. La siguiente línea importante es el resumen de la memoria del sistema. Siempre comienza con «Memory:». En mi máquina de prueba, la salida es:

>.

El número después de la barra oblicua es la cantidad total de memoria del sistema accesible al núcleo de Linux, en este caso 1,5 GB. En este punto, Linux casi ha terminado de mirar el procesador y la memoria, y pronto dirigirá su atención al resto de la máquina incluyendo el vídeo, los puertos USB, los discos duros y así sucesivamente.

Detección de hardware

La salida del kernel es también una gran manera de descubrir cómo Linux está interactuando con el hardware de su PC. Por ejemplo, para descubrir qué discos duros reconoce el núcleo, puede buscar en los mensajes la palabra clave «sda». Para hacer esto, use «grep» de esta manera:

dmesg | grep sda

Usando dmesg en Linux

«sda» es el nombre dado al primer disco duro SATA, «sdb» es el segundo disco duro SATA y así sucesivamente. Si no encuentra sus discos en «sda», «sdb», etc., pruebe «hda», «hdb» y así sucesivamente.

Para obtener información sobre la tarjeta de red, busque «eth0», por ejemplo:

dmesg | grep eth0

En mi máquina de prueba, aparece una de las líneas de salida relacionadas con «eth0»:

e1000 0000:00:03.0 eth0: Conexión de red Intel(R) PRO/1000

Esto me dice que mi tarjeta Ethernet es una Intel PRO/1000 (conocida como e1000).

Si inserta una unidad flash USB y desea comprobar si ha sido reconocida por el núcleo y el nombre del dispositivo al que ha sido asignada, puede ver los últimos mensajes del núcleo utilizando la cola:

dmesg | cola -20

Usando dmesg en Linux

El -20 le dice a la cola que muestre las últimas 20 líneas de salida de dmesg. La salida de ejemplo muestra que una unidad flash fabricada por ADATA se insertó en el puerto USB, tiene una capacidad de 8 GB y que se le ha asignado el nombre de dispositivo sdd.

dmesg puede ser una herramienta muy útil para los administradores de sistemas. Inténtelo y vea lo que puede aprender sobre su sistema. Si tiene alguna pregunta, por favor hágala en la sección de comentarios, y veremos si podemos ayudarle.

Rate this post

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *