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
-vo--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 -nnpara ver si el ID aparece. - Controlador incorrecto: si
lspci -kmuestra 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 -vpara 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.


