Lspci
lspci ist ein Linux-Befehl der detaillierte Informationen über die PCI-Geräte und -Busse im System ausgibt. Durch zahlreiche Parameter kann die Ausgabe sehr gut angepasst werden um diese zum Beispiel für Scripte oder ähnliches zu verwenden.
Plattformen
Entwickelt wurde lspci für Unix und alle Unix-basierenden Systeme. Das entsprechende Kommando für FreeBSD ist
pciconf -l
lspci Beispielausgabe
Hier eine Beispielausgabe bei Anwendung des Tools ohne Parameter:
tk@ubuntu-14-04:~$ lspci 00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04) 00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04) 00:16.1 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #2 (rev 04) 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04) 00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4) 00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4) 00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4) 00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation C226 Series Chipset Family Server Advanced SKU LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04) 00:1f.6 Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal Management Controller (rev 04) 02:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 03) 03:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30) 04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) 05:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
Wortreiche (verbose) Ausgabe
Die wortreiche (verbose) Ausgabe liefert wertvolle weitere Informationen, z.B. den Linux Kernel Treiber, der für ein bestimmtes PCI Gerät verwendet wird (in diesem Fall der igb Treiber für die abgefragte Netzwerkkarte):
tk@ubuntu:~$ lspci -s 04:00.0 -vvv 04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) Subsystem: Super Micro Computer Inc Device 1533 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 18 Region 0: Memory at f7200000 (32-bit, non-prefetchable) [size=512K] Region 2: I/O ports at d000 [size=32] Region 3: Memory at f7280000 (32-bit, non-prefetchable) [size=16K] Capabilities: <access denied> Kernel driver in use: igb
Wortreiche (verbose) Ausgabe mit root Rechten
Ausgeführt mit root Rechten liefert die verbose Ausgabe noch zahlreiche weitere Informationen, z.B. die MAC Adresse (Device Serial Number) der abgefragten Netzwerkkarte:
tk@ubuntu:~$ sudo lspci -s 04:00.0 -vvv 04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) Subsystem: Super Micro Computer Inc Device 1533 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 18 Region 0: Memory at f7200000 (32-bit, non-prefetchable) [size=512K] Region 2: I/O ports at d000 [size=32] Region 3: Memory at f7280000 (32-bit, non-prefetchable) [size=16K] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME- Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+ Address: 0000000000000000 Data: 0000 Masking: 00000000 Pending: 00000000 Capabilities: [70] MSI-X: Enable+ Count=5 Masked- Vector table: BAR=3 offset=00000000 PBA: BAR=3 offset=00002000 Capabilities: [a0] Express (v2) Endpoint, MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <16us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis- Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [140 v1] Device Serial Number 00-25-90-ff-ff-d4-de-b2 Capabilities: [1a0 v1] Transaction Processing Hints Device specific mode supported Steering table in TPH capability structure Kernel driver in use: igb
Parameter
Dem Befehl können diverse Parameter übergeben werden um die Ausgabe einzuschränken und somit die Übersichtlichkeit zu verbessern. Einige Beispiele hierfür sind:
Parameter | Auswirkung |
---|---|
-m |
gibt PCI-Geräte in einem Rückwärts kompatiblen, von Maschinen lesbaren Code aus |
-mm |
gibt PCI-Geräte in einem einfachen, von Maschinen lesbaren Code aus um zum Beispiel Scripte zu erstellen |
-n |
zeigt die PCI Hersteller- und Gerätecodes als Zahlen an, anstatt in der PCI ID Liste nachzuschlagen. |
-nn |
zeigt die PCI Hersteller- und Gerätecodes durch Zahlen sowie Namen an. |
-s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]] |
zeigt nur Geräte der anführten Domain bzw. Adresse |
-t |
zeigt die Verbindungen der PCI-Geräte, Busse, etc. zueinander als Baumstruktur an |
-v |
gibt detailliertere Informationen aus (Verbose Level 1) |
-vv |
gibt detailliertere Informationen aus (Verbose Level 2) |
-vvv |
gibt detailliertere Informationen aus (Verbose Level 3) |
-k |
zeigt die Kerneltreiber und -module an, die mit den PCI-Devices arbeiten (wird automatisch bei -v ausgegeben) |
Ausgabe
Folgende so genannte Tags oder Eigenschaften können bei der Verwendung von lspci unter anderem ausgegeben werden:
Tag | Beschreibung |
---|---|
Slot | Name des Slots an dem sich das Gerät befindet. Dies ist immer der erste Tag bei einer Ausgabe |
Class | Name der Klasse |
Vendor | Name des Herstellers |
Device | Name des Geräts |
PhySlot | Der Physische Slot an dem sich das Gerät befindet (optional, nur Linux). |
Rev | Revisionsnummer (optional). |
Driver | Kerneltreiber der momentan das Gerät verwaltet (optional, nur Linux). |
Module | Kernelmodul, welches angibt, dass es das Gerät verwalten kann (optional, nur Linux). |
Weitere Informationen
- lspci (en.wikipedia.org)