lspci

lspci, lista los dispositivos PCI.

lspci [opciones]

lspci es un utilitario para mostrar la información acerca de los buses PCI en el sistema y los dispositivos conectados a ellos.

Por omisión muestra una lista breve de dispositivos. Use las opciones para pedir ya sea una salida con más detalles o una salida para que sea interpretada por otro programa.

Si va a reportar bugs acerca de los manejadores de dispositivos PCI o sobre el propio lspci, incluya la salida de "lspci -vvx" o mejor "lspci -vvxxx".

Algunas partes de la salida, especialmente en los modos altamente verboso son probablemente legibles sólo para hackers PCI experimentados. Para las definiciones exactas acerca de los campos, por favor consulte las especificaciones PCI o los archivos de encabezados header.h y /usr/include/linux/pci.h.

El acceso a algunas parte del espacio de configuración PCI está restringido a root en muchos sistemas operativos incluyendo Fedora, el resto está disopnible a los usuarios regulares. lspci hace su mejor esfuerzo y cuando no puede, marca la salida con el texto <access denied>.

Algunos ejemplos de uso rápido

Vistazo general

$ lspci
Contraseña: 
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
05:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)
06:00.0 Ethernet controller: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) (rev 01)

Detalles como usuario regular

$ lspci -s 06:00.0 -v
06:00.0 Ethernet controller: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) (rev 01)
    Subsystem: AMBIT Microsystem Corp. AR5BXB63 802.11bg NIC
    Flags: bus master, fast devsel, latency 0, IRQ 19
    Memory at 94100000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: <access denied>
    Kernel driver in use: ath5k
    Kernel modules: ath5k

Detalles como root

$ su -c "lspci -s 06:00.0 -v" 
Contraseña: 
06:00.0 Ethernet controller: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) (rev 01)
    Subsystem: AMBIT Microsystem Corp. AR5BXB63 802.11bg NIC
    Flags: bus master, fast devsel, latency 0, IRQ 19
    Memory at 94100000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: [40] Power Management version 2
    Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
    Capabilities: [60] Express Legacy Endpoint, MSI 00
    Capabilities: [90] MSI-X: Enable- Count=1 Masked-
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Virtual Channel
    Kernel driver in use: ath5k
    Kernel modules: ath5k

Detalles para pedir soporte

$ su -c "lspci -s 06:00.0 -nn -v" 
Contraseña: 
06:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR242x / AR542x Wireless Network Adapter (PCI-Express) [168c:001c] (rev 01)
    Subsystem: AMBIT Microsystem Corp. AR5BXB63 802.11bg NIC [1468:0428]
    Flags: bus master, fast devsel, latency 0, IRQ 19
    Memory at 94100000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: [40] Power Management version 2
    Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
    Capabilities: [60] Express Legacy Endpoint, MSI 00
    Capabilities: [90] MSI-X: Enable- Count=1 Masked-
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Virtual Channel
    Kernel driver in use: ath5k
    Kernel modules: ath5k

Opciones lspci

Modos básicos de mostrar
  • -m, volca los datos de dispositivo PCI en forma legible por máquina compatible hacia atrás.
  • -mm, volca los datos de dispositivo PCI en forma legible para fácil interpretación por scripts.
  • -t, muestra un diagrama tipo árbol con todos los buses, puentes, dispositivos y conexiones entre ellos.
Opciones para mostrar
  • -v, verboso y mostrar información acerca de todos los dispotivos.
  • -vv, muy verboso y mostrar más detalles. Este nivel incluye todo lo considerado útil.
  • -vvv, aún más verboso y mostrar todo lo que se sea capaz de interpretar, incluso si no luce interesante para nada (ej. regiones de memoria indefinidas).
  • -k, mostrar los manejadores kernel manejando cada dispositivo y los módulos capaces de manejarlo. Esto está habilitado por omisión cuando se usa -v en el modo normal de salida.
  • -x, muestra el volcado en forma hexadecimal de la parte estandar del espacio de configuración (los primeros 64 bytes o 128 bytes para puentes CardBus).
  • -xxx, muestra el volcado en forma hexadecimal de todo el espacio de configuración PCI. Sólo está disponible para root ya que mucho dispositivos se cuelgan cuando se trata de leer algunas partes del espacio de configuración.
  • -xxxx, muestra el volcado en forma hexadecimal del espacio de configuración extendido PCI (4096-byte) disponible en PCI-X 2.0 y buses PCI Express.
  • -b, vista Bus céntrica. Muestra todos los números IRQ y direcciones como las ven las tarjetas en el bus PCI en vez de como las ve el kernel.
  • ⁻D, siempre muestra los números de dominio PCI. Por omisión lspci los suprime en máquina que sólo tiene el dominio 0.
Opciones para controlar la resolución de IDs a nombres
  • -n, muestra los códigos PCI vendor y device como números en vez de buscarlos en la lista PCI ID.
  • -nn, muestra los códigos PCI vendo y device tanto como números como nombres.
  • -q, usar DNS para consultar la base de datos centra PCI ID por si un dispotivo no se encuentra en el archivo local pci.ids. Si la consulta DNS es exitosa, el resultado se pone en cache en ~/.pciids-cache y es reconocido para corridas posteriores, incluso si no se incluye -q.
  • -qq, igual a -q pero reinicia el cache local.
  • -Q, consulta la base de datos central incluso para entradas que son reconocidas localmente. Use esta opción si sospecha que lo que ve está mal.
Opciones para selección de dispositivos
  • -s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]]
    • Muestra sólo los dispositivos en el dominio especificado (en algunos casos su máquina tiene varios puentes (host bridges), ellos bien pueden compartir un número de bus común o cada uno tener su propio dominio PCI.
    • Los dominios son números del 0 al ffff, bus (0 al ff), slot (0 al 1f) y función (0 al 7).
    • Cada componente de la dirección de dispositivo puede ser omitido o puesto a "*", ambos casos significa "cualquier valor".
    • Todos los números son hexadecimales. Ej., "0:" significa todos los dispositivos en el bus 0, "0" significa todas las funciones del dispositivo 0 en cualquier bus, "0.3" selecciona la tercera función del dispositivo 0 en todos los buses y ".4" muestra sólo la cuarta función de cada dispositivo.
  • -d [<vendor>]:[<device>]
    • Muestra sólo los dispositivos con vendor y device ID especificado. TAmbos IDs provistos son en hexadecimal y pueden ser omitidos o ser "*", ambos significando "cualquier valor".
Otras opciones
  • -i <file>, usa <file> como la lista PCI ID en vez de /usr/share/hwdata/pci.ids.
  • -p <file>, usa <file> como el mapa de PCI IDs manejado por los módulos kernel. Por omisión lspci usa /lib/modules/kernel_version/modules.pcimap. Sólo aplica a los sistemas Linux con herramientas de módulos recientes.
  • -M, invoca el modo de mapeo bus que realiza un barrido completo de todos los dispositivos PCI incluyendo aquellos mal configurados. Esta opción ofrece resultados significativos sólo cuando se tiene modo de acceso directo al hardware que usualmente requiere privilegios root. Por favor note que el mapeo de bus sólo verifica el dominio 0 PCI.
  • --version, muestra la versión de lspci.