Herramientas para examinar el sustento físico en Linux

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org

Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.

Introducción

Conocer las herramientas para examinar los componentes del sustento físico (hardware) resulta indispensable para realizar diagnósticos acertados, optimizar el rendimiento del sistema y tomar decisiones informadas sobre actualizaciones o configuraciones. Este manual presenta una guía práctica y pedagógica de los mandatos esenciales que todo administrador de sistemas Linux debe dominar, con un enfoque especial en la preparación para certificaciones profesionales.

Comenzaremos con herramientas específicas para cada componente (lscpu, lsmem, lsmod, lspci, lsusb) y culminaremos con utilidades de síntesis (lshw e inxi) que ofrecen una visión integral del sistema.

Equipamiento lógico necesario

Los paquetes kmod (que contiene lsmod), pciutils (lspci), usbutils (lsusb) y util-linux (que incluye lscpu y lsmem) forman parte de la base de cualquier instalación estándar de GNU/Linux. Para garantizar que estén presentes y actualizados en distribuciones basadas en Red Hat Enterprise Linux como AlmaLinux, Rocky Linux o ALDOS, ejecute el siguiente mandato:

sudo dnf install kmod pciutils usbutils util-linux

La herramienta lshw ofrece un panorama completo y suele venir preinstalada en ALDOS. En instalaciones mínimas de otros sistemas, puede añadirse con sudo dnf install lshw. El paquete inxi es una adición valiosa para informes rápidos y puede instalarse cuando se requiera.

Procedimientos

El orden de estudio sigue una lógica de diagnóstico: desde el procesador y la memoria, pasando por los módulos del núcleo (kernel), hasta los buses de expansión y una vista unificada final.

Uso de lscpu

El mandato lscpu presenta de manera clara y organizada la información sobre la arquitectura de la(s) CPU(s) del sistema, que de otro modo se tendría que interpretar desde /proc/cpuinfo. Es el punto de partida ideal para conocer las capacidades de procesamiento.

Al ejecutarlo sin opciones, ofrece un resumen conciso:

$ lscpu
Arquitectura:            x86_64
CPU(s):                  8
Lista de la(s) CPU(s) en línea: 0-7
Modelo:                  23
Nombre del modelo:       AMD Ryzen 5 2400G with Radeon Vega Graphics
Virtualización:          AMD-V
Caché L1d:               128 KiB
Caché L3:                4 MiB
...

Para obtener una vista aún más detallada y legible, especialmente en sistemas con múltiples procesadores, la opción --extended es de gran utilidad. Un caso de uso práctico es verificar rápidamente el soporte para virtualización (línea Virtualización) o revisar el estado de las mitigaciones de seguridad frente a vulnerabilidades como Spectre o Meltdown, información crucial para la configuración de servidores.

La consulta del manual completo con man 1 lscpu siempre es recomendable para explorar todas sus capacidades.

Uso de lsmem

Tras examinar la CPU, el siguiente componente crítico es la memoria RAM. El mandato lsmem, también parte del paquete util-linux, proporciona un informe claro sobre la disposición y el estado de los bloques de memoria física en el sistema. Esta información es valiosa para verificar la cantidad total de memoria reconocida, identificar bloques que puedan estar fuera de línea y planificar operaciones en sistemas que admiten hotplug de memoria.

Al ejecutar lsmem, se lista cada rango de memoria contigua, mostrando detalles clave en columnas:

$ lsmem
RANGE                                  SIZE    STATE   REMOVABLE BLOCK
0x0000000000000000-0x000000005fffffff  1.5G   en línea        si   0-11
0x0000000100000000-0x000000081fffffff 28.5G   en línea        si  32-259

Tamaño del bloque de memoria:         128M
Memoria total en línea:              30.0G
Memoria total fuera de línea:         0.0B

Análisis de la salida:

Un caso de uso práctico es ejecutar lsmem tras añadir módulos de RAM a un servidor, para verificar que el sistema los reconoce correctamente y que su estado es en línea. Asimismo, el indicador REMOVABLE ayuda a los administradores a planificar mantenimientos sin apagado del sistema.

Uso de lsmod

El mandato lsmod ofrece una visión instantánea de los módulos del núcleo de Linux (kernel) que están actualmente cargados en memoria. Prescinde de argumentos y presenta la información de /proc/modules en un formato de tabla legible, siendo fundamental para diagnosticar conflictos de controladores, verificar que un módulo necesario se haya cargado o identificar dependencias entre ellos.

Su ejecución devuelve una lista de tres columnas:

$ lsmod
Module                  Size  Used by
tcp_lp                 20480  0
rfcomm                 90112  4
nft_fib_inet           16384  1
nft_ct                 20480  9
vfio_pci               73728  0
vfio_virqfd            16384  1 vfio_pci
...

Interpretación de las columnas:

  1. Module: Nombre del módulo del núcleo.
  2. Size: Tamaño del módulo en memoria, en bytes.
  3. Used by: Número de módulos o procesos que dependen de éste. Si el número es mayor que 0, la lista de dependientes se muestra a continuación en la misma línea. Por ejemplo, vfio_virqfd 16384 1 vfio_pci indica que el módulo vfio_virqfd está siendo utilizado por vfio_pci.

Un caso de uso esencial es verificar si el controlador correcto para un dispositivo de red o almacenamiento está activo. Si un módulo esperado está ausente en la lista, puede cargarse manualmente con modprobe. Para obtener detalles exhaustivos de un módulo específico (como su descripción o parámetros), se utiliza modinfo <nombre_del_módulo>.

Uso de lspci

Este mandato es la herramienta principal para inspeccionar todos los dispositivos conectados a los buses PCI y PCI Express en el sistema. Su salida es el primer paso para identificar tarjetas de red, gráficas, controladores de almacenamiento y otros componentes críticos, así como para diagnosticar problemas de reconocimiento de hardware.

Ejecutado sin opciones, lspci proporciona una lista breve de cada dispositivo:

$ lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Root Complex
00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0]
01:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 xHCI Compliant Host Controller (rev 01)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)

La información se estructura como BUS:DEVICE.FUNCIÓN Clase: Fabricante Detalles. Para tareas de diagnóstico, las siguientes opciones son indispensables:

Un caso de uso práctico y común es identificar el controlador de la tarjeta de red. Se puede combinar grep con la opción -k:

$ lspci -k | grep -A2 -i ethernet
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
        Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet
        Kernel driver in use: r8169

La salida anterior confirma el modelo del controlador y además revela el módulo del núcleo (r8169) que lo gestiona, información directa para la resolución de problemas de conectividad.

Caso práctico: Identificar una tarjeta gráfica NVIDIA

Para usuarios de tarjetas NVIDIA, identificar el modelo exacto es el primer paso para instalar el controlador propietario correcto. El mandato lspci es fundamental para esta tarea.

$ lspci -v | grep -A1 -i "vga\|3d"
01:00.0 VGA compatible controller: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device 3883

La línea muestra el fabricante (NVIDIA Corporation) y el nombre comercial (GeForce RTX 3060 Lite Hash Rate), dato principal para buscar el controlador en el sitio web de NVIDIA.

Para obtener los identificadores PCI numéricos (útiles cuando el nombre textual falta), use:

$ lspci -nn | grep -i "030[02]"
03:00.0 0300: 10de:2503 (rev a1)

El código 10de:2503 identifica de manera inequívoca a NVIDIA y el modelo específico (en este caso, un chip GA106 correspondiente a una GeForce RTX 3060). Con el nombre del modelo (ej: GeForce RTX 3060), se debe consultar la tabla oficial de soporte de NVIDIA para encontrar la versión recomendada del controlador para ese producto y el sistema operativo.

Para formatos de salida legibles por máquinas o para consultar el manual completo, se emplean lspci -mm y man 8 lspci, respectivamente.

Uso de lsusb

Se trata de un programa que muestra la lista de ranuras USB y los dispositivos conectadas a éstas.

Ejecute lo siguiente:

lsusb

La salida será similar a la siguiente:

Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 003: ID 04d9:1702 Holtek Semiconductor, Inc. Keyboard LKS02
Bus 001 Device 002: ID 1bcf:0005 Sunplus Innovation Technology Inc. Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Ejecute lo siguiente para ver la lista de ranuras USB y los dispositivos conectadas a éstas en un diagrama jerárquico:

lsusb -t

La salida será similar a la siguiente:

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 4: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 4: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 4: Dev 2, If 2, Class=Audio, Driver=snd-usb-audio, 480M
    |__ Port 4: Dev 2, If 3, Class=Audio, Driver=snd-usb-audio, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 3: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 6: Dev 5, If 0, Class=Vendor Specific Class, Driver=ch341, 12M

Ejecute lo siguiente para ver una muy extensa salida detallada:

lsusb -v

Mostrar la salida de lo anterior sería desperdiciar espacio en este documento.

Otras opciones de lsusb se describen a detalle en el manual correspondiente al ejecutar lo siguiente:

man 8 lsusb

Uso de lshw (List Hardware)

Cuando se requiere una visión integral y jerárquica de todo el sustento físico del sistema, lshw es la herramienta designada. Consolida en un solo informe la información que otros mandatos muestran por separado, organizando los componentes en una estructura de árbol que refleja las conexiones reales del sistema (ej: CPU, memoria, buses, dispositivos conectados).

En distribuciones como ALDOS, lshw suele venir preinstalado. En instalaciones mínimas de otras basadas en RHEL (AlmaLinux, Rocky Linux), puede instalarse con facilidad:

sudo dnf install lshw

Dado que lshw necesita acceder a información privilegiada del sistema, se ejecuta habitualmente con sudo. Para obtener un listado conciso y fácil de leer que muestre la clase, descripción y nombre lógico de cada componente, utilice la opción -short:

sudo lshw -short
HUTIL            NOMBRE        CLASE          DESCRIPCIÓN
===========================================================
                            system          Computer
/0                          bus             Motherboard
/0/0                        memory          64KiB BIOS
/0/4                        processor       AMD Ryzen 5 2400G with Radeon Vega Graphics
/0/4/a                      memory          128KiB L1 cache
/0/4/b                      memory          1MiB L2 cache
/0/4/c                      memory          4MiB L3 cache
/0/2a                       memory          32GiB System memory
/0/2a/0                     memory          16GiB DIMM DDR4 Synchronous 3200 MHz (0,3 ns)
/0/2a/1                     memory          16GiB DIMM DDR4 Synchronous 3200 MHz (0,3 ns)
/0/100                      bridge          Family 17h (Models 00h-0fh) Host Bridge
/0/100/2                    display         Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series]
/0/100/2.1                  multimedia      Raven/Raven2/Fenghuang HDMI/DP Audio Controller
/0/100/14                   bus             FCH SMBus Controller
/0/100/14.3                 bridge          FCH LPC Bridge
/0/100/1f                   storage         FCH SATA Controller [AHCI mode]

Para filtrar la vista y centrarse en componentes específicos, resulta muy útil la opción -class. El siguiente ejemplo muestra sólo los dispositivos de red y almacenamiento:

sudo lshw -class network -class storage

Una de las capacidades más poderosas de lshw es generar un informe HTML detallado, ideal para guardar una instantánea de la configuración del sistema o para solicitar ayuda técnica:

sudo lshw -html > informe-hardware.html

Este mandato creará un archivo informe-hardware.html que puede abrirse en cualquier navegador web, presentando toda la información de manera estructurada y navegable.

Uso de inxi (Herramienta de síntesis)

inxi es una herramienta de diagnóstico de alto nivel, muy popular en la comunidad por su capacidad para generar informes del sistema extremadamente concisos y legibles. Es ideal para obtener una visión rápida del estado del equipo o para compartir información técnica en foros de soporte.

Puede instalarse desde los repositorios estándar en la mayoría de las distribuciones. En ALDOS y derivados de RHEL:

sudo dnf install inxi

Ejecutado sin opciones, inxi ofrece un resumen magistralmente condensado de los componentes más relevantes:

$ inxi
CPU: quad core AMD Ryzen 5 2400G with Radeon Vega Graphics (-MT MCP-)
speed/min/max: 2787/1600/3600 MHz Kernel: 5.10.246-40.aldos.x86_64 x86_64
Up: 13h 23m Mem: 14.06/29.39 GiB (47.8%) Storage: 2.02 TiB (78.5% used)
Procs: 341 Shell: Bash inxi: 3.3.40

En apenas seis líneas se resume: modelo de CPU y velocidad, versión del núcleo (kernel) y arquitectura, tiempo de actividad del sistema, uso de memoria RAM y almacenamiento, número de procesos y el intérprete de mandatos en uso.

Para un informe completo (full), que incluye detalles de la placa base, red, gráficos, sensores y más, se utiliza el parámetro -F:

inxi -F

La salida de este mandato es muy extensa, pero inxi permite filtrarla con precisión para obtener solo la información deseada. Algunos filtros esenciales son:

Su combinación de brevedad por defecto y capacidad de detalle bajo demanda convierte a inxi en una herramienta indispensable para el diagnóstico rápido y la comunicación efectiva de problemas técnicos.