GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden Sie lspci unter Linux, um Ihre Hardware anzuzeigen

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.


Linux
  1. Verwenden Sie das Linux-Terminal, um durch Ihren Computer zu navigieren

  2. Verwenden Sie das Linux-Terminal, um zu sehen, welche Dateien sich auf Ihrem Computer befinden

  3. Verwenden Sie den Alpine-E-Mail-Client in Ihrem Linux-Terminal

  4. Wie sieht der Außerbetriebnahmeprozess Ihrer Linux-Serverhardware aus?

  5. So verwenden Sie OpenSSH, um eine Verbindung zu Ihrem Linux-Server herzustellen

Verwenden Sie ein Linux-Terminal auf Ihrem Android-Telefon

Verwenden Sie den Fluxbox-Linux-Desktop als Fenstermanager

So nutzen Sie Ihr Linux-Terminal praktisch (vier Beispiele)

So nutzen Sie Ihr Linux-Terminal praktisch (Teil 2)

Wie Sie Red Hat Insights verwenden, um Ihre Linux-Systeme zu warten

So installieren und verwenden Sie Docker in Ihrem Linux-System