Wenn Sie Linux auf einem Desktop oder Server ausführen, müssen Sie manchmal die Hardware in diesem System identifizieren. Ein dafür verwendeter Befehl ist lspci
. Es funktioniert, indem es alle an den PCI-Bus angeschlossenen Geräte anzeigt. Es wird vom pciutils-Paket bereitgestellt und ist für eine Vielzahl von Linux- und BSD-basierten Betriebssystemen verfügbar.
Grundlegende Verwendung
Die Informationen, die angezeigt werden, wenn ein normaler Benutzer ausgeführt wird lspci
kann aufgrund von Zugriffsberechtigungen eingeschränkt sein. Ausführen des Befehls mit sudo
liefert ein vollständiges Bild.
Laufen lspci
selbst listet die PCI-Busse und ihre angeschlossenen Geräte auf. Hier ist ein Beispiel von meinem Media Center-PC. Es ist ein AMD Phenom CPU-basiertes System, daher verfügt es über einen AMD-Chipsatz. Es hat auch einen Atheros-Wireless-Controller und eine Nvidia-Grafikkarte. Alle Hardwaregeräte werden mit Details wie Hersteller, Name und Modellnummer aufgelistet:
$ sudo lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780 PCI to PCI bridge (ext gfx port 0)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 0)
00:05.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 1)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 3c)
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)
02:00.0 Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) (rev 01)
Ausführliche Ausgabe
Hinzufügen von a -v
Option erhöht die Ausführlichkeit oder den Detaillierungsgrad für jedes Gerät. Sie können verwenden -vv
oder -vvv
für noch mehr Gerätedetails. Auf diesem Level, lspci
zeigt verschiedene Subsysteme und Speicheradressen, Interrupt Request (IRQ)-Nummern und andere Funktionen für alle Geräte an. Die Ausgabe ist extrem lang. Probieren Sie es auf Ihrem System aus.
Suche mit grep
Manchmal möchten Sie Ihre Suche eingrenzen. Auf der RPM Fusion-Website finden Sie beispielsweise Anweisungen zum Installieren von Nvidia-Grafiktreibern. Sie beginnen mit der Identifizierung Ihrer Grafikkarte mit dem grep
Befehl. Das bekomme ich auf meinem Laptop:
$ sudo lspci | grep -e VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
$ sudo lspci | grep -e 3D
01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce MX130] (rev a2)
Die grep
Die obigen Befehle zeigen ein VGA-Gerät auf meinem Media Center-PC, aber kein 3D-Gerät.
$ sudo lspci | grep -e VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
$ sudo lspci | grep -e 3D
$
Suche nach Anbieter-ID
Es gibt einen anderen Weg, der nicht erfordert grep
. Angenommen, ich möchte feststellen, ob noch andere Nvidia-Geräte vorhanden sind. Es ist notwendig, ein wenig mehr zu wissen. Ich verwende das -nn
Option zum Anzeigen von Hersteller- und Geräte-ID-Nummern. Auf meinem Media Center-PC zeigt diese Option meine VGA-Karte, Anbieter-ID und Geräte-ID an:
$ sudo lspci -nn | grep -e VGA
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
Die Klammern mit den durch Doppelpunkte getrennten Zahlen nach dem Gerätenamen zeigen den Hersteller und die Geräte-ID an. Die Ausgabe zeigt an, dass die Hersteller-ID für ein von der Nvidia Corporation hergestelltes Gerät 10de.
Die -d
-Option zeigt alle Geräte eines angegebenen Herstellers, Gerätes oder einer Klassen-ID an. Hier sind alle Nvidia-Geräte in meinem System (beibehalten der -nn
um die Vendor-IDs aufzunehmen):
$ sudo lspci -nn -d 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GK107 HDMI Audio Controller [10de:0e1b] (rev a1)
An der Ausgabe kann man erkennen, dass ich neben einer Grafikkarte ein Nvidia Audiogerät habe. Sie sind eigentlich beide Teil desselben Nvidia GeForce GTX 650 Karte, aber dies ist trotzdem ein gutes Beispiel.
Kernel-Module
Zusammen mit PCI-Hardwaregeräten, lspci
kann zeigen, welche Kernel-Treibermodule mit dem geladen werden -k
Möglichkeit. Ich füge diese Option zu meinem hinzu lspci
Befehle, um verschiedene Informationen zu meinen Nvidia-Geräten anzuzeigen.
$ sudo lspci -nn -k -d 10de:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107 [GeForce GTX 650] [10de:0fc6] (rev a1)
Subsystem: eVga.com. Corp. GK107 [GeForce GTX 650] [3842:2650]
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation GK107 HDMI Audio Controller [10de:0e1b] (rev a1)
Subsystem: eVga.com. Corp. GK107 HDMI Audio Controller [3842:2650]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
Es werden zwei zusätzliche Zeilen angezeigt: Kernel-Treiber im Einsatz und Kernel-Module. Der zweite listet die verfügbaren Module auf, um das Gerät zu unterstützen.
Auf dem Laufenden gehalten werden
Ständig kommen neue Geräte und Anbieter auf den Markt. Wenn ein Gerät als . aufgeführt ist Unbekannt, ist Ihre PCI-Geräte-ID-Datenbank möglicherweise veraltet. Es gibt zwei Möglichkeiten, dies zu überprüfen. Die -Q
Option verwendet DNS, um die zentrale Datenbank abzufragen. Dies erfordert natürlich eine Netzwerkverbindung.
$ sudo lspci -Q
Sie können Ihre lokale PCI-ID-Datenbank auch aktualisieren, indem Sie den Befehl ausführen update-pciids
.
$ sudo update-pciids
Downloaded daily snapshot dated 2021-08-22 03:15:01
Erfahren Sie mehr über Ihre Hardware
Natürlich, lspci
ist nur einer von vielen für Linux verfügbaren Befehlen, der zum Abfragen der Hardware und Software auf Ihrem System nützlich ist. Erfahren Sie mehr über Hardware unter Linux in meinem Artikel über USB-Geräte: Mehr Geräte unter Linux mit diesem USB-ID-Repository erkennen.