Lspci

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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

Das könnte Sie auch interessieren

Btrfs Dateisystem
Linux Page Cache