dmesg: algunos comandos prácticos para obtener información y solucionar problemas
El comando de Linux dmesg es una herramienta bastante popular de la que ya hemos hablado en otras ocasiones en LxA. Gracias a ella se pueden recuperar y mostrar mensajes desde el ring buffer o buffer de anillo del kernel Linux. Esos mensajes son muiy interesantes, ya que aportan mucha información sobre el equipo, tanto a nivel de hardware como del sistema.
Toda esa información puede ser valiosa (arranque, memoria, CPU, dispositivos, módulos,…) a la hora de detectar problemas y solucionarlos. Por eso, deberías conocer algunos comandos prácticos que resultan esenciales para comprobar si existe algún problema en tu máquina y que te aporte pistas de cómo atajarlo.
Para poder obtener dicha información, puedes usar los siguientes comandos:
- Para listar todos los controladores cargados en el kernel Linux puedes usar el siguiente comando:
<br data-mce-bogus="1"> dmesg | less<br data-mce-bogus="1">
- Listar todos los dispositivos detectados que se llamen «nombre» (sustituye nombre por lo que necesites, como puede ser sda, gpu, usb, dma, memory…):
dmesg | grep -i nombre
- Visualizar mensajes de error que pueden indicar los problemas que existen en el sistema (también puedes buscar otros niveles de avisos, como info, warning, etc.):
dmesg | grep -i error
- Monitorizar el ring buffer del kernel en tiempo real, para ver lo que está sucediendo ahora (puedes probar a hacer algunas acciones en el sistema para ver que van apareciendo nuevos menajes, por ejemplo conectar y desconectar una memoria USB):
watch "dmesg | tail -20"
- También puedes eliminar el registro del ring buffer para dejarlo limpio. Para ello puedes usar el siguiente comando:
dmesg -C
Si te interesa ver los logs o registros del ring buffer, debes saber que están almacenados en /var/log/dmesg. Y recuerda que éste fichero existirá incluso si estás usando systemd en tu distro, igual que lo está en Sys V init y similares. De hecho, también se encuentra en texto plano, por lo que podrás usar el concatenador (cat) para visualizarlo…