Dispositivos PCI en Linux
Nota: Los sistemas FHS Linux [1], disponen de un directorio específico
/proc, que contiene información sobre los procesos y el propio Sistema. En
realidad es un pseudo-sistema de ficheros con información sobre el sistema en ejecución. Por ejemplo, /proc/pci
contiene información sobre los dispositivos PCI conectados.
Como se ha señalado, los dispositivos conectados a la interfaz PCI pueden consultarse en
/proc/pci, para lo que
puede utilizarse el comando siguiente (# es el indicativo del Shell):
# cat /proc/pci
En uno de mis equipos de trabajo se obtiene el siguiente resultado:
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 3).
Master Capable. Latency=64.
Prefetchable 32 bit memory at 0xf0000000 [0xf3ffffff].
Bus 0, device 1, function 0:
PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 3).
Master Capable. Latency=128. Min Gnt=140.
Bus 0, device 2, function 0:
Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 2).
Bus 0, device 2, function 1:
IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 1).
Master Capable. Latency=64.
I/O at 0x10c0 [0x10cf].
Bus 0, device 2, function 2:
USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 1).
IRQ 11.
Master Capable. Latency=64.
I/O at 0x1060 [0x107f].
Bus 0, device 2, function 3:
Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 3).
IRQ 9.
Bus 0, device 3, function 0:
CardBus bridge: Texas Instruments PCI1251B (rev 0).
IRQ 11.
Master Capable. Latency=168. Max Lat=5.
Non-prefetchable 32 bit memory at 0x10000000 [0x10000fff].
Bus 0, device 3, function 1:
CardBus bridge: Texas Instruments PCI1251B (#2) (rev 0).
IRQ 11.
Master Capable. Latency=168. Min Gnt=192.Max Lat=5.
Non-prefetchable 32 bit memory at 0x10001000 [0x10001fff].
Bus 0, device 6, function 0:
Communication controller: Lucent Microelectronics WinModem 56k (rev 1).
IRQ 11.
Master Capable. No bursts. Min Gnt=252.Max Lat=14.
Non-prefetchable 32 bit memory at 0xec000000 [0xec0000ff].
I/O at 0x10f0 [0x10f7].
I/O at 0x1400 [0x14ff].
Bus 0, device 7, function 0:
Multimedia audio controller: ESS Technology ES1969 Solo-1 Audiodrive (rev 2).
IRQ 5.
Master Capable. Latency=64. Min Gnt=2.Max Lat=24.
I/O at 0x1080 [0x10bf].
I/O at 0x10e0 [0x10ef].
I/O at 0x10d0 [0x10df].
I/O at 0x10fc [0x10ff].
I/O at 0x10f8 [0x10fb].
Bus 1, device 0, function 0:
VGA compatible controller: Neomagic Corporation [MagicMedia 256AV] (rev 32).
IRQ 11.
Master Capable. Latency=128. Min Gnt=16.Max Lat=255.
Prefetchable 32 bit memory at 0xf4000000 [0xf4ffffff].
Non-prefetchable 32 bit memory at 0xec400000 [0xec7fffff].
Non-prefetchable 32 bit memory at 0xec100000 [0xec1fffff].
Bus 2, device 0, function 0:
Ethernet controller: PCI device 13d1:ab06 (rev 16).
IRQ 11.
Master Capable. Latency=64. Min Gnt=32.Max Lat=64.
I/O at 0x4000 [0x40ff].
Non-prefetchable 32 bit memory at 0x10800000 [0x108001ff].
Como puede verse, existen 3 buses, numerados del 0 al 2, cada uno de los cuales puede tener distintos dispositivos ("devices").
Para este propósito también puede utilizarse la utilidad lspci
. Un ejecutable situado generalmente
en /sbin. que ofrece múltiples opciones (utilice man lspci
para verlas).
En el sistema anterior produce la siguiente salida [2]:
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:02.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:02.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
00:02.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:03.0 CardBus bridge: Texas Instruments PCI1251B
00:03.1 CardBus bridge: Texas Instruments PCI1251B
00:06.0 Communication controller: Lucent Microelectronics WinModem 56k (rev 01)
00:07.0 Multimedia audio controller: ESS Technology ES1969 Solo-1 Audiodrive (rev 02)
01:00.0 VGA compatible controller: Neomagic Corporation NM2200 [MagicGraph 256AV] (rev 20)
02:00.0 Ethernet controller: Abocom Systems Inc RTL8139 [FE2000VX] CardBus Fast Ethernet Attached Port Adapter (rev 10)
[1] En Linux coexisten distintos estándares cuyo objeto es la descripción de una estructura de directorios ("Filesystem hierarchy"), que permita a usuarios y desarrolladores utilizar situaciones, nombres de directorios y contenidos, que sean predecibles y comunes entre las distintas distribuciones. Uno de estos es el conocido como FHS "Filesystems Hierarchy Standar" www.pathname.com/fhs/2.2/.
[2] La opción lspci -v
proporciona información más
detallada. En realidad ambas funciones proporcionan la misma información
básica, aunque con algunas diferencias. Para ver el máximo de detalle
utilice la opción lspci -vv
.