Diagnostico de Hardware en Linux

Comandos o herramientas de diagnostico de hardware en Linux

Las fallas relacionadas con el hardware en la mayoría de casos suelen pasar desapercibidas cuando trabajamos con GNU/Linux. Pero cuando se manifiestan de forma evidente, se torna dispendioso dar con su causa. En esta ocasión veremos una colección de comandos o herramientas con los que podemos realizar un diagnostico de hardware en Linux.En Linux tenemos al homólogo de la pantalla azul de Windows, llamado ‘Kernel Panic‘, y casi siempre es solucionable si analizamos con detalle los logs del sistema. De todas formas debemos ser preventivos, revisando periódicamente el hardware, al menos en un primer nivel con los comandos. También tenemos comandos para instalar drivers en este sistema operativo.

Diagnostico de hardware en Linux – Memoria RAM


El sistema Sysfs exporta información sobre los dispositivos y sus controladores hacia el espacio del usuario. Con el comando edac-utils podemos visualizar esa información para conocer el estado de la memorias RAM. Instalamos edac-utils:

sudo apt install edac-utils

Verificamos las memorias

sudo edac-util -v

EDAC significa «Detección y corrección de errores» y comprende una serie de módulos de kernel de Linux, que utilizan las funciones de detección de errores del hardware de la computadora.

¿Por qué necesitamos a EDAC?

La mayoría de los servidores y algunas estaciones de trabajo profesionales utilizan memoria ECC (Error Correcting Code). Estas memorias tienen la capacidad física de detectar y, a veces, reparar errores de bits sobre la marcha.

EDAC es el encargado de «escuchar» esos eventos y registrarlos en Linux:

CE (Corrected Error): El bit falló, pero el hardware lo reparó automáticamente. EDAC lo anota para que sepas que ese módulo de RAM está empezando a morir.

UE (Uncorrected Error): El error fue demasiado grave para repararlo. Esto suele provocar un Kernel Panic inmediato para evitar que se guarden datos corruptos en el disco.

Así luce una memoria RAM con el chip ECC:

Es posible que experimente daños en los datos de PCI (por ejemplo, sus datos se corrompen mientras viajan hacia/desde su NIC/adaptador de almacenamiento, mientras está en el bus PCI), y no lo sabe, ya que la mayoría de los sistemas no comprueban los dispositivos PCI para detectar errores de paridad (algunos pueden desencadenar un NMI, pero no tiene más información sobre lo que causó el NMI).

Si tiene memoria ECC, y está experimentando errores ECC corregibles, probablemente no sabrá nada al respecto. Con los módulos EDAC instalados en su sistema, conocerá los módulos de memoria defectuosos antes de que los errores no sean corregibles, y tenga datos potencialmente corruptos. Otra forma de comprobar EDAC en Linux es: dmesg | grep EDAC.

Verificar la capacidad máxima de memoria que soporta el sistema


Instalamos dmidecode

sudo apt install dmidecod

Consultamos información de los módulos de memoria (aquí también podemos saber si es DDR3, DDR4, DDR5):

sudo dmidecode -t memory

Averiguamos solo la capacidad máxima permitida por el hardware

sudo dmidecode -t 16

Siempre podemos ver los datos acerca del tipo y capacidad de memoria, en un formato más resumido con el siguiente comando:

sudo lshw -short -C memory

Con el siguiente comando podemos ver la velocidad nominal del módulo de RAM, y la velocidad a la que el sistema lo definió:

sudo dmidecode --type memory | grep -E "Speed|Configured Clock Speed"

Ahí podemos ver la info de dos memorias RAM, y podemos ver que una de ellas puede trabajar a 3200 MT/s, pero el chipset la definió en 2400 MT/s porque trabaja junto con otra que solo alcanza hasta 2400 MT/s.

El diagnostico de la memoria RAM pueden ser algo extenso, por eso en el siguiente artículo podemos ampliar más sobre el tema.

Probar la memoria RAM en Linux

Visualizar la temperatura de la CPU y el disco duro


Instalamos lm-sensors y hddtemp. El primero es para CPU y Memoria. El segundo para discos duros y unidades de estado sólido de conexión SATA. Pasamos entonces a visualizar la temperaturas para CPU y memoria RAM:

watch -n 2 sensors

La instalación de hddtemp podemos hacerla de la siguiente manera:

sudo apt update
wget http://archive.ubuntu.com/ubuntu/pool/universe/h/hddtemp/hddtemp_0.3-beta15-53_amd64.deb 
sudo apt install ./hddtemp_0.3-beta15-53_amd64.deb

Entonces validamos la temperatura de nuestros discos duros, ó sólidos, así:

sudo hddtemp /dev/sda

En la salida del comando podemos ver que nuestro sistema está instalado en una unidad de estado sólido, de marca Crucial y de modelo CT1000MX500SSD1. El valor de la temperatura obtenida está muy bien, aunque su ficha técnica dice que el rango de temperatura en operación es de 0 a 70°.

Tenemos otro sistema instalado en otra unidad de estado solido marca ADATA, miremos:


En este caso sí me preocupa la temperatura obtenida, porque el sistema donde está funcionando es una laptop que lleva 30 minutos encendida sin ninguna trabajo realizado (ahora podemos ir entendiendo por qué ADATA es una marca poco recomendable).

También podemos instalar psensor para obtener un gráfico histórico de la temperatura de los dispositivos detectados.

Con el paquete xsensors podemos tener una vista gráfica de la temperatura de los dispositivos detectados.

sudo apt install xsensors

Consideremos una buena idea ejecutar el comando sudo sensors-detect para detectar y activar más sensores.

Diagnostico de hardware en Linux – Disco duro y memoria USB


Listamos los discos conectados en nuestro sistema

lsblk -fm
fdisk -l
lsblk | grep -v '^loop'

Podemos hacer la comprobación del estado de los discos duros  con la herramienta smartmontools. Esta herramienta puede decirnos cualitativamente si podemos estar tranquilos con nuestro disco duro, o si debemos comenzar a buscarle reemplazo.

Instalamos smartmontools:

sudo apt install smartmontools

Verificar si el disco soporta SMART

sudo smartctl -s on /dev/sda

Verificar antigüedad (en horas) del disco duro

smartctl -A /dev/sdc | grep Power_On_Hours

En la salida del anterior comando debemos enfocarnos en el último campo, ahí es donde obtenemos las horas trabajadas del disco.

Ver si el disco pasa o no pasa la prueba de estado

smartctl -H /dev/sdb

En mi caso la información que tengo en el disco sdb se encuentra en peligro de perdida.

 Prueba corta y prueba extensa:

smartctl --test=short /dev/sda
smartctl --test=long /dev/sda

Ver los resultados en forma detallada:

smartctl -a /dev/sda

Para configurar el servicio en el inicio del sistema y que nos alerte vía email, debemos abrir el archivo /etc/default/smartmontools y descomentar la línea start_smartd=yes.

Luego abrimos el archivo /etc/smartd.conf y adicionamos la siguiente línea:

/dev/sda -H -d ata -m tu_buzon@mail.com

Podemos adicionar “-M test” al final de la línea para que SmartMonTools nos envíe un correo de prueba cada vez que reiniciemos el sistema. Reiniciamos a smarmontools:

sudo /etc/init.d/smartmontools restart

Podemos instalar la versión gráfica de esta utilidad, con el comando sudo apt install gsmartcontrol.

Diagnóstico de Hardware en Linux

Como se puede observar en la imagen, el rojo nos índica un posible riesgo en uno de los discos.

Visualizar el uso del disco

Con los siguientes comandos podemos visualizar el porcentaje de uso del disco, tanto en espacio ocupado, como en inodos usados, respectivamente:

df -h
df -i

Puede que tengas suficiente espacio libre en disco, pero si tienes el 100% de inodos ocupados, tendrás problemas con el funcionamiento de algunas cosas en Linux.

Buscar y reparar sectores fectuosos y detectar y aislar sectores defectuosos

fsck /dev/sda1 -y
badblocks /dev/mi_disco

La recomendación es primero buscar y reparar sectores defectuosos (puede que haya sectores irreparables). Después, buscar bloques defectuosos, marcarlos y aislarlos para que el sistema evite usarlos (se recomienda tener un backup de la información antes de ejecutar estos comandos).

Si creemos que tenemos algún problema con la memoria USB en cuanto a su velocidad y originalidad, podemos revisar el siguiente trabajo al respecto..

Transferencia de archivos a memoria USB muy lenta en Ubuntu

Diagnostico de hardware en Linux – Tarjeta de red (NIC)


Los siguientes comandos no nos dicen si la tarjeta de red esta defectuosa, pero sí nos ayuda a inferir algún problema relacionado con ella:

watch -n 1 -t -d "ethtool -S eth0 | grep -v \"x_queue_\|x_pb_\""
watch -n 1 -t -d "ethtool --statistics eth0 | grep -i \"drop\|discard\|buffer\|fifo\""
watch -n 1 -t -d cat /proc/net/softnet_stat
sudo ethtool -S eth0 | grep -E "rx_errors|rx_missed_errors|rx_fifo_errors|tx_errors"

Con estos comandos podemos visualizar si nuestra tarjeta de red presenta una excesiva pérdida de paquetes, así podremos acercarnos a alguna posible causa relacionada con  bajo rendimiento de nuestras conexiones.

Si sospechamos que la perdida de paquetes está en la tarjeta de red, podemos validarlo con este otro comando:

sudo netstat -ni

La quinta y novena columna (RX-DRP y TX-DRP) nos muestra los paquetes recibidos por la tarjeta y los paquetes perdidos en ese mismo punto, respectivamente. Si el índice de perdidas supera el 0.2 % entonces el rendimiento de la conexión se verá sumamente afectada a la mitad.

El índice de perdidas lo calculamos así, (RX-DRP / RX-OK) x 100.

También debemos calcularlo para TX-DRP y TX-DRP.

Es parte del día a día encontrarnos con tarjetas de red nuevas con defectos electrónicos. Por ejemplo, en una empresa con firewall y filtrado web con Linux, una tarjeta de red nueva, la TP-Link TG-3468 con chip Realtek RTL8168B, presentaba un 0.38 % de perdidas (RX-DRP), afectandoles el rendimiento de la conexión a Internet en algunos servicios de sincronización.

Diagnóstico de Hardware en Linux

La cambiamos por una TP-LINK TX 201 y solucionado el problema.

Listar dispositivos de radio tales como Bluetooth o Wireless (Wifi), y ver si hay si están bloqueados

sudo rfkill

Consultar datos de fabricante, modelo y otros de las interfaces de red:

lshw -C network

ó

inxi -Nx

Consultar la velocidad establecida en el adaptador de red

ethtool eth0 | grep -i speed

Puede que quieras mejorar tu gestión de la red con estos comandos de Linux.

Comandos Linux para la Gestión de Redes

Comandos para consultar el uso de la GPU


Consultar datos de fabricante, modelo y otros de la GPU:
lspci -vnn | grep VGA -A 12
ó
inxi -G
ó
lshw -C display

Consultar memoria de la GPU

glxinfo -B
ó
sudo glxinfo | egrep -i 'device|memory'

(el comando lo puedes instalar con apt install mesa-utils)

Consultar el uso de la GPU. Comprender el rendimiento del sistema es crucial. cuando se trabaja con aplicaciones con uso intensivo de gráficos. La GPU puede ser un cuello de botella y es esencial monitorear su uso. Una herramienta que puede ayudarnos con esto es intelgpu, bueno, la herramienta depende de si tenemos una Intel o Nvidia. Instalamos entonces a intelgpu.

sudo apt install intel-gpu-tools

Visualizamos el uso de la GPU:

sudo intel_gpu_top

Para NVIDIA
Primer método: Instalamos la aplicación Python, gpustat:

sudo pip install gpustat

Lo ejecutamos

sudo gpustat -cp

Segundo método: Instalamos la aplicación Python, glances:

sudo pip install glances[gpu]
ó
sudo glances (ó sudo glances --meangpu)

Para GPU AMD Radeon
Instalamos radeontop:

sudo apt install radeontop

Lo ejecutamos

sudo radeontop

Actualizar los drivers la tarjeta de gráfica en Ubuntu

Consultamos la marca de nuestra tarjeta gráfica instalada, con el comando sudo lshw -c video:

Diagnóstico de Hardware en Linux

Hemos confirmado que se trata de una Radeon HD 6480G, entonces actualizamos para esa marca:

sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update && sudo apt -y upgrade

     Puede que te interese saber cómo Optimizar tu Máquina Linux     

Optimizar o acelerar tu máquina con Linux

Visualizar información de la MotherBoard y demás Hardware


Visualizamos el modelo de la motherboard

sudo dmidecode -t 2

Visualizamos todos los dispositivos conectados a la motherboard

lshw

Solo los PCI

lspci

Listar dispositivos PCI con sus módulos (drivers)

lspci -k

Solo los USB

lsusb

Lista driver o módulos del Kernel

lsmod

Información general del hardware

hardinfo

También tenemos al System Monitoring Center, que podemos instalar para Ubuntu.

Diagnóstico de Hardware en Linux

Una alternativa gráfica al System Monitoring Center, es Stacer, que más que un software de monitoreo, es un mando para realizar ajustes y limpieza de nuestro sistema. A Stacer lo podemos instalar con el siguiente comando:

sudo apt install stacer

Con el siguiente comando podemos saber la fecha en la que Ubuntu le dará soporte a nuestro hardware:

hwe-support-status --verbose

      Puedes visualizar más comandos, aquí      

Principales comandos de Linux


Valora este artículo

Diagnostico de hardware en Linux
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.
Nombres
Email
Titulo
Calificanos
Contenido

Tome su like

★★★★★
“ La información más real y cercana a la práctica. Muchas gracias.”
- Robert
Comparte esto en
Publicado en GNU Linux.