|
Neben den höheren Datenraten unterstützt PCI auch die Hardwareerkennung. Jedes PCI-Gerät enthält einen Code, der seinen Typ, seinen Hersteller und sein Modell angibt. Diese Informationen können über den Befehl lspci abgefragt werden.
lspci [OPTIONEN]
Die Informationen über die PCI-Busse liefert der Kernel über das virtuelle Verzeichnis /proc/bus/pci. Die Schnittstelle existiert seit Kernelversion 2.1.82. Das Verzeichnis enthält für jeden Bus ein Unterverzeichnis mit Informationsdateien für die Geräte und eine Datei /proc/bus/pci/device, die eine Liste aller PCI-Geräte enthält.
enterprise:~ # lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev 02) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] 00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22) 00:04.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 10) 00:04.2 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:04.3 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30) 00:04.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 20) 00:0a.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 01:00.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro] (rev 15)
Am Anfang jeder Zeile ist die PCI-ID angegeben, die die Position des jeweiligen Geräts auf dem PCI-Bus wiedergibt. Hersteller, Typ und Modell der Karte werden in Form von ID-Nummer abgespeichert. Eine Tabelle dieser Nummern und ihrer Zuordnung zu Herstellern, Typen und Modellen befindet sich in der Datei /usr/share/pci.ids.
| Optionen | |
| -b | Darstellung der IRQ und Adressen aus Sicht des PCI-Bus |
| -d [HID]:[GID] | Zeigt nur die Geräte mit angegeben Hersteller- und Geräte-ID. |
| -i DATEI | Benutzt eine andere Datei als PCI-ID-Datenbank. |
| -m | Ausgabe im maschinenlesbaren Format |
| -n | Zeigt nur die Hersteller- und Geräte-Codes an |
| -p DIR | Benutzt ein anderes Verzeichnis für die PCI-Bus-Informationen |
| -s [B:][S][.F] | Zeigt nur die Geräte mit den spezifizierten Bus, Slot und Funktion. Alle Nummern sind hexadezimal. |
| -t | Darstellung in Baumform |
| -v | Ausführlichere Informationen |
| -vv | Sehr ausführliche Informationen |
| -x | Hexadezimaler Dump der 64 Bytes des PCI-Konfigurationsspeichers |
Um ausführlichere Informationen zu bekommen, können Sie den Schalter -v verwenden.
enterprise:~ # lspci -v
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev 02)
Subsystem: Asustek Computer, Inc.: Unknown device 8023
Flags: bus master, medium devsel, latency 0
Memory at e4000000 (32-bit, prefetchable) [size=64M]
Capabilities: [a0] AGP version 2.0
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
(prog-if 00 [Normal decode])
...
Ähnliche Informationen erhalten Sie ebenfalls über eine Schnittstelle aus dem Verzeichnis /proc. Die virtuelle Datei /proc/pci zeigt Ihnen ebenfalls Informationen aus dem PCI-Bus. Diese sind im Gegensatz zu /proc/bus/pci/devices für Menschen lesbar gestaltet.
Für eine bessere Übersicht der PCI-Busse können Sie sich mit dem Schalter -t eine baumartige Struktur der Verbindung anzeigen lassen.
enterprise:~ # lspci -t
-[00]-+-00.0
+-01.0-[01]----00.0
+-04.0
+-04.1
+-04.2
+-04.3
+-04.4
+-04.5
\-0a.0
Das obige Beispiel ist etwas langweilig. Allein vom AGP-Port zweigt ein PCI-Bus ab. Dies ist natürlich die Grafikkarte.
Um die Informationen zu sehen, die die PCI-Geräte zurückgeben ohne die Übersetzung aus der PCI-Geräte-Datenbank zu benutzen, können Sie den Schalter -n verwenden.
enterprise:~ # lspci -n 00:00.0 Class 0600: 1106:0691 (rev 02) 00:01.0 Class 0604: 1106:8598 00:04.0 Class 0601: 1106:0686 (rev 22) 00:04.1 Class 0101: 1106:0571 (rev 10) 00:04.2 Class 0c03: 1106:3038 (rev 10) 00:04.3 Class 0c03: 1106:3038 (rev 10) 00:04.4 Class 0600: 1106:3057 (rev 30) 00:04.5 Class 0401: 1106:3058 (rev 20) 00:0a.0 Class 0200: 8086:1229 (rev 08) 01:00.0 Class 0300: 10de:002d (rev 15)