El comando lspci en Linux: dispositivos PCI del sistema

Introducción

En sistemas Linux, el bus PCI (Peripheral Component Interconnect) es la vía principal mediante la cual la placa madre se comunica con dispositivos como tarjetas de red, gráficas, almacenamiento y otros periféricos. Conocer qué dispositivos están conectados y cómo el kernel los reconoce es fundamental para administrar hardware, depurar problemas y optimizar el rendimiento.

¿Qué es lspci?

lspci es una utilidad de línea de comandos que pertenece al paquete pciutils. Su función es listar todos los dispositivos PCI presentes en el sistema, mostrando información como el identificador de proveedor, el identificador de dispositivo, la clase, el controlador en uso y recursos asignados.

Instalación

En la mayoría de distribuciones, pciutils ya está instalado. Si no lo está, se puede instalar con el gestor de paquetes correspondiente:

  • Debian/Ubuntu: sudo apt-get install pciutils
  • Fedora: sudo dnf install pciutils
  • Arch Linux: sudo pacman -S pciutils

Uso básico

Ejecutar lspci sin argumentos muestra una lista resumida:

lspci

Salida de ejemplo:

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)

Cada línea tiene el formato bus:device.function seguido de la descripción del dispositivo.

Opciones más útiles

  • -v o --verbose: muestra información detallada, incluyendo los rangos de memoria y los IRQ asignados.
  • -vv: aumenta aún más el nivel de detalle, mostrando capacidades del dispositivo y configuraciones de enlace.
  • -k: indica el controlador de kernel que está manejando cada dispositivo y los módulos disponibles.
  • -nn: muestra los identificadores de proveedor y dispositivo en formato numérico (ven:dev) además del nombre descriptivo.
  • -t: presenta la jerarquía de los buses PCI en forma de árbol, útil para visualizar relaciones entre puentes y dispositivos.
  • -s <bus>:[<device>][.[<function>]]: filtra la salida a un slot específico.

Ejemplos prácticos

Listar todos los dispositivos con detalle

lspci -v

Ver el controlador usado por la tarjeta de gráfica

lspci -k | grep -A 2 -i VGA

Mostrar solo los dispositivos de red

lspci -nn | grep -i net

Obtener el árbol de buses

lspci -t

Interpretación de la salida

La salida de lspci contiene varios campos:

  • Slot: indica la posición física en el bus (bus:device.function).
  • Clase: describe el tipo de dispositivo (por ejemplo, «Ethernet controller» o «VGA compatible controller»).
  • Proveedor y dispositivo: el ID de cuatro caracteres que identifica al fabricante y al modelo específico.
  • Controlador en uso: gracias a la opción -k, se muestra qué módulo del kernel está gestionando el dispositivo.
  • Recursos: rangos de memoria, puertos de I/O y líneas IRQ asignados.

Entender estos datos ayuda a identificar si un dispositivo está utilizando el controlador correcto, si hay conflictos de recursos o si se necesita cargar un módulo adicional.

Solución de problemas comunes

  • Dispositivo no aparece: puede deberse a que el hardware no está correctamente sentado, a una falta de energía o a que el kernel no soporta ese dispositivo. Verifique la conexión física y pruebe con lspci -nn para ver si el ID aparece.
  • Controlador incorrecto: si lspci -k muestra un módulo genérico o «none», puede ser necesario instalar el driver propietario o actualizar el kernel.
  • Conflicto de IRQ: en sistemas antiguos, varios dispositivos pueden compartir la misma línea IRQ, causando inestabilidad. Use lspci -v para revisar los IRQ y considere reasignarlos en la BIOS o mediante parámetros de kernel.
  • Rendimiento bajo: verifique que el dispositivo esté operando en su ancho de banda máximo (por ejemplo, PCIe x16 vs x1) usando la información de enlace que proporciona lspci -vv.

Conclusión

El comando lspci es una herramienta esencial para cualquier administrador de sistemas Linux que necesite inspeccionar y gestionar el hardware PCI. Con sus diversas opciones, permite desde una vista rápida de los dispositivos instalados hasta un análisis profundo de controladores, recursos y topología de buses. Dominar su uso facilita la diagnóstico de problemas, la planificación de actualizaciones y la optimización del rendimiento del sistema.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol