Linux-Befehle

Über den Befehl lspci unter Linux

Über den Befehl lspci unter Linux
lspci Befehl ist ein Dienstprogramm auf Linux-Systemen, das verwendet wird, um Informationen über die PCI-Busse und -Geräte herauszufinden, die mit dem PCI-Subsystem verbunden sind. Sie können die Bedeutung des Befehls verstehen, indem Sie das Wort betrachten lspci in zwei Teilen.  Der erste Teil ls ist das Standard-Dienstprogramm, das unter Linux verwendet wird, um Informationen über die Dateien im Dateisystem aufzulisten.  Pci ist der zweite Teil des Befehls, sodass Sie den Befehl natürlich sehen können lspci listet Informationen über das PCI-Subsystem auf die gleiche Weise auf wie ls listet Informationen über das Dateisystem auf.

In diesem Artikel erklären wir die Grundlagen von PCI, PCIe und dem lspci-Befehl, um Informationen auf Ihrem System anzuzeigen.

Was ist PCI?

PCI oder Peripheral Component Interconnect ist eine Schnittstelle zum Hinzufügen zusätzlicher Hardwarekomponenten zu einem Computersystem.  PCIe oder PCI-Express ist der aktualisierte Standard, der heute verwendet wird.  Angenommen, Sie möchten Ihrem Computer eine Ethernet-Karte hinzufügen, damit er auf das Internet zugreifen und Daten austauschen kann.  Nun, die Karte benötigt ein Protokoll, um mit dem Rest des internen Systems zu kommunizieren, PCI kann die Standardschnittstelle sein, die verwendet wird, um diese Karte zu Ihrem System hinzuzufügen.  Sie benötigen immer noch einen Treiber für diese Karte, damit der Kernel sie verwenden kann, jedoch ist PCI der Steckplatz und der Bus und die Schnittstelle, die verwendet werden, um die Hardware mit einer Standardschnittstelle in das System einzufügen.  Die Erstellung eines PCI-Linux-Treibers folgt einigen Standardschnittstellen, die Sie in der Dokumentation zum Erstellen eines PCI-Linux-Treiber Hier.  Sie können der Struktur unten entnehmen, welche Standardmethoden implementiert werden müssen.  Methoden wie Sonde, entfernen, aussetzen, fortsetzen, usw.

struct pci_driver
struct list_head        Knoten;
const char              *name;
const struct pci_device_id *id_table;
int (*probe)(struct pci_dev *dev, const struct pci_device_id *id);
void (*entfernen)(struct pci_dev *dev);
int (*suspend)(struct pci_dev *dev, pm_message_t state);
int (*resume)(struct pci_dev *dev);
void (*shutdown)(struct pci_dev *dev);
int (*sriov_configure)(struct pci_dev *dev, int num_vfs);
const struct pci_error_handlers *err_handler;
const struct Attributgruppe **Gruppen;
struct device_driver    Treiber;
struct pci_dynids       dynids;
;

PCI-Geschwindigkeiten und -Verwendungen

PCI 3.0 kann Daten bis zu ausführen 1 GB/Sek. pro Spur.  Verschiedene Geräte können mehr als eine Lane haben, daher ist es möglich, dass einzelne Geräte eine Datenübertragungsrate von mehreren Gigabyte haben.  Diese Zahlen verbessern sich ständig, wenn neue Versionen der Spezifikation und neue Hardware auf den Markt kommen. Schauen Sie also immer nach den neuesten und schnellsten, die Sie finden können.  Zu den Arten von Komponenten und Gadgets, die Sie kaufen können, die an eine PCI-Schnittstelle angeschlossen werden, gehören: WIFI-Adapter, Bluetooth, NVME-Solid-State-Speicherkarten, Grafikkarten und mehr.

Den lspci-Befehl erkunden

Ich habe ein Ubuntu 19 . erstellt.04-Instanz in der Google Cloud und führt jetzt die lspci Befehl und sehen was passiert.

Was Sie sehen, ist eine Zeile pro Gerät mit einem Zahlencode und einer verbalen Beschreibung des Geräts.  In dieser Ausgabe werden pro Zeile tatsächlich 5 Felder angezeigt: Slot, Class, Vendor, Device und Revision.

Also brechen Sie die erste Zeile auf, was wir haben:

SLOT: 00:00.0
Klasse: Host-Bridge
Verkäufer: Intel Corporation
Gerät: 440FX - 82441FX PMC
Revision: 02

Und Blick auf Slot 00:04.0 das ist unser Ethernet-Controller, der als Teil der virtuellen Magie von Googles Cloud-Bereitstellung ein virtuelles Gerät zu sein scheint.

Führen Sie den folgenden Befehl aus, um detailliertere und ausführlichere Informationen zu jedem PCI-Steckplatz zu erhalten:

#lspci -vmm

Dieser Befehl teilt jede Zeile in ihre Komponentenfelder auf und ermöglicht es Ihnen, jedes Gerät mit aussagekräftigeren Bezeichnungen zu analysieren.

Sie können auch die Option -v für eine ausführlichere Ausgabe ausprobieren

# lspci -v

Und verwenden Sie doppeltes v oder dreifaches v für eine verbose Ausgabe:

# lspci -vvv

Oder versuchen Sie es mit der Option -mm für ein skriptlesbares Ausgabeformat.

# lspci -mm

Um zu sehen, welcher Kernel-Treiber für jedes Gerät verwendet wird, führen Sie die Option -k aus.

Viele meiner Geräte verwenden den virtio-pci-Treiber.

Schließlich können Sie für jedes PCI-Gerät sogar einen hexadezimalen Dump des „Standardteils des Konfigurationsraums“ sehen.  Sie sollten ein echter Kernel-Hacker sein, um herauszufinden, wie Sie diese Informationen verwenden können.  -x-Option gibt Ihnen die Dump-Ausgabe.

# lspci -x

Fazit

Der Befehl lspci ist ein Standard-Linux-Befehl, der verwendet werden kann, um Informationen zu den PCI-verbundenen Geräten auf Ihrem System aufzulisten.  Dies kann nützlich sein, um zu wissen, welche Hardware-Peripheriegeräte Sie haben.  Es ist auch sehr nützlich für Entwickler, Gerätetreiber-Ersteller und Systemleute auf niedriger Ebene, um Informationen zu den Geräten, den Treibern und dem System abzufragen.  Viel Spaß mit lspci.

Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...
Installieren Sie den neuesten Dolphin Emulator für Gamecube & Wii unter Linux
Mit dem Dolphin Emulator können Sie Ihre ausgewählten Gamecube- und Wii-Spiele auf Linux-Personalcomputern (PC) spielen. Als frei verfügbarer Open-So...
So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...