Wenn Sie Linux auf einem Desktop oder Server ausführen, müssen Sie manchmal die Hardware in diesem System identifizieren. Ein hierfür verwendeter Befehl ist lspci
. Es zeigt alle an den PCI-Bus angeschlossenen Geräte an. Es wird vom pciutils-Paket bereitgestellt und ist für eine breite Palette von Linux- und BSD-basierten Betriebssystemen verfügbar.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Grundlegende Verwendung
Die Informationen, die angezeigt werden, wenn ein normaler Benutzer lspci
ausführt kann aufgrund von Zugriffsberechtigungen eingeschränkt sein. Ausführen des Befehls mit sudo
liefert ein vollständiges Bild.
Ausführen von 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, also hat es 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 eines -v
Option erhöht die Ausführlichkeit oder den Detaillierungsgrad für jedes Gerät. Sie können -vv
verwenden oder -vvv
für noch mehr Gerätedetails. Auf dieser Ebene lspci
zeigt verschiedene Subsysteme und Speicheradressen, Interrupt Request (IRQ)-Nummern und andere Fähigkeiten für alle Geräte an. Die Ausgabe ist extrem lang. Probieren Sie es auf Ihrem System aus.
Suchen mit grep
Manchmal möchten Sie Ihre Suche eingrenzen. Beispielsweise enthält die RPM Fusion-Website Anweisungen zum Installieren von Nvidia-Grafiktreibern. Sie beginnen mit der Identifizierung Ihrer Grafikkarte mit 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)
Das grep
obige 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 grep
nicht erfordert . Angenommen, ich möchte feststellen, ob andere Nvidia-Geräte vorhanden sind. Es ist notwendig, ein wenig mehr zu wissen. Ich verwende den -nn
Option zur Anzeige von Anbieter- und Geräte-ID-Nummern. Auf meinem Media Center-PC zeigt diese Option meine VGA-Karte, Hersteller-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 die Hersteller- und Geräte-ID. Die Ausgabe gibt an, dass die Hersteller-ID für ein Gerät der Nvidia Corporation 10de ist .
Das -d
Option zeigt alle Geräte von einem bestimmten Anbieter, Gerät oder einer Klassen-ID an. Hier sind alle Nvidia-Geräte in meinem System (wobei -nn
beibehalten wird um die Anbieter-IDs einzuschließen):
$ 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 können Sie erkennen, dass ich neben einer Grafikkarte auch ein Nvidia-Audiogerät habe. Sie sind eigentlich beide Teil derselben Nvidia GeForce GTX 650 Karte, aber das ist trotzdem ein gutes Beispiel.
Kernel-Module
Zusammen mit PCI-Hardwaregeräten lspci
kann mit dem -k
anzeigen, welche Kernel-Treibermodule geladen sind Möglichkeit. Ich füge diese Option zu meinem lspci
hinzu Befehle, um verschiedene Informationen über meine Nvidia-Geräte 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
Zwei zusätzliche Zeilen werden angezeigt:Kernel driver in use und Kernel-Module . Die zweite listet die Module auf, die zur Unterstützung des Geräts verfügbar sind.
Auf dem Laufenden bleiben
Ständig kommen neue Geräte und Anbieter auf den Markt. Wenn Sie ein Gerät sehen, das als unbekannt aufgeführt ist , ist Ihre PCI-Geräte-ID-Datenbank möglicherweise veraltet. Es gibt zwei Möglichkeiten, dies zu überprüfen. Das -Q
Option verwendet DNS, um die zentrale Datenbank abzufragen. Dies erfordert natürlich eine Netzwerkverbindung.
$ sudo lspci -Q
Sie können auch Ihre lokale PCI-ID-Datenbank aktualisieren, indem Sie den Befehl update-pciids
ausführen .
$ 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, die zum Abfragen der Hardware und Software auf Ihrem System nützlich sind. Erfahren Sie mehr über Hardware unter Linux in meinem Artikel über USB-Geräte:Mit diesem USB-ID-Repository mehr Geräte unter Linux erkennen.