Uso del comando dmesg con ejemplos

Uso del comando dmesg con ejemplos, en sistemas basados en Linux / Unix.

Al iniciar un sistema Linux, el kernel identifica los dispositivos de hardware disponibles en el sistema. A medida que el kernel los va detectando e identificando, se generan unos registros que se escriben en un buffer (en anillo) del Kernel. Este buffer en anillo, también conocido como buffer cíclico o circular, es específico para manejar el registro interno del Kernel.

Saber leer este registro es importante, pues más de una vez puede salvar tu sistema. Recuerda que como en cualquier registro, en este también se guardan los errores. Con el comando dmesg no solo podrás ver todo el registro, sino que además podrás identificar de manera simple los errores por tipo, algo especialmente útil para nosotros. Vemos cómo se trabaja con este comando.

Uso de dmesg

Uso de dmesg

 

Uso del comando dmesg con ejemplos

Su forma de uso simple, imprime el buffer al completo.

dmesg

Ejemplo de salida.

sergio@sololinux:~$ dmesg
[    0.000000] Linux version 5.4.0-81-generic (buildd@lgw01-amd64-051) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021 (Ubuntu 5.4.0-81.91~18.04.1-generic 5.4.128)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-81-generic root=UUID=77674f63-7f05-4b96-a2aa-125cd616afcb ro fsck.mode=force fsck.repair=yes
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai  
[    0.000000] x86/fpu: x87 FPU will use FXSAVE
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000006efff] usable
[    0.000000] BIOS-e820: [mem 0x000000000006f000-0x000000000006ffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x0000000000070000-0x000000000008ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x000000007a40efff] usable
[    0.000000] BIOS-e820: [mem 0x000000007a40f000-0x000000007aebefff] reserved
[    0.000000] BIOS-e820: [mem 0x000000007aebf000-0x000000007bfbefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007bfbf000-0x000000007bffefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007bfff000-0x000000007bffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000e00f8000-0x00000000e00f8fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffa00000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000017fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] e820: update [mem 0x742f7018-0x74307057] usable ==> usable
[    0.000000] e820: update [mem 0x742f7018-0x74307057] usable ==> usable
[    0.000000] extended physical RAM map:
[    0.000000] reserve setup_data: [mem 0x0000000000000000-0x000000000006efff] usable
[    0.000000] reserve setup_data: [mem 0x000000000006f000-0x000000000006ffff] ACPI NVS
                     etc........etc.............................

Si prefieres imprimir sin formato…

dmesg -r

Imagen de ejemplo.

Salida de dmesg sin formato

Salida de dmesg sin formato

 

Cuando tienes errores, lo recomendable es que apliques los filtros que vienen incorporados con el comando. Así podrás identificar el error, de forma sencilla y rápida. Los filtros disponibles son los siguientes:

  • emerg – Error que impide el funcionamiento del sistema correctamente.
  • alert – Error que requiere intervención inmediata.
  • crit – Sistema bajo condiciones críticas.
  • err – Sistema bajo condiciones de error.
  • warn – Advertencias del sistema.
  • debug – Advertencias de depuración.
  • notice – Condiciones normales, pero debes prestar atención al aviso.
  • info – Información general.

Estos filtros de mensajes, los debes usar con esta sintaxis…

dmesg --level=alert,[filtro]

Ejemplos de uso.

dmesg --level=alert,emerg

##

dmesg --level=alert,alert

##

dmesg --level=alert,err

##

dmesg --level=alert,crit

##

dmesg --level=alert,warn

##

dmesg --level=alert,debug

##

dmesg --level=alert,notice

##

dmesg --level=alert,info

Imagen con ejemplos de uso, en el que podemos observar una serie de errores y alertas. Tendremos que revisar que sucede, aunque en realidad es una vieja tarjeta SD (no me preocupa mucho).

Ejemplos de dmesg con filtros

Ejemplos de dmesg con filtros

 

También tienes la opción de imprimir el buffer y, posteriormente borrar el ciclo del anillo.

dmesg -c

Ejemplo…

sergio@sololinux:~$ dmesg -c
[12501.582069] usb 1-4: USB disconnect, device number 10
[12503.462291] usb 1-4: new high-speed USB device number 11 using xhci_hcd
[12503.622454] usb 1-4: New USB device found, idVendor=0bda, idProduct=0177, bcdDevice=77.11
[12503.622463] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12503.622469] usb 1-4: Product: USB2.0-CRW
[12503.622475] usb 1-4: Manufacturer: Generic
[12503.622479] usb 1-4: SerialNumber: 20121112761000000
[12503.630446] ums-realtek 1-4:1.0: USB Mass Storage device detected
[12503.635461] scsi host2: usb-storage 1-4:1.0
[12504.652987] scsi 2:0:0:0: Direct-Access     Generic- SD/MMC/MS PRO    1.00 PQ: 0 ANSI: 4
[12504.654874] scsi 2:0:0:0: Attached scsi generic sg1 type 0
[12505.743088] sd 2:0:0:0: [sdb] 1950720 512-byte logical blocks: (999 MB/953 MiB)
[12505.743424] sd 2:0:0:0: [sdb] Write Protect is off
[12505.743427] sd 2:0:0:0: [sdb] Mode Sense: 2f 00 00 00
[12505.743759] sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[12505.763833]  sdb: sdb1
[12505.765578] sd 2:0:0:0: [sdb] Attached SCSI removable disk
dmesg: fallo al leer el «buffer» del núcleo: Operación no permitida
sergio@sololinux:~$

 

Ahora especificamos el dispositivo del cual quieres ver los mensajes, en nuestro caso USB.

dmesg | grep -i usb
Avisos de los dispositivos USB

Avisos de los dispositivos USB

 

Si tienes problemas con el anillo, puedes probar a reducir o aumentar su tamaño.

dmesg -s 1024

 

Es evidente, que este comando tiene muchas más opciones y filtros. Si quieres aprender más sobre él, revisa su manual integrado en consola.

man dmesg

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido