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.

So verwenden Sie Xdotool zum Stimulieren von Mausklicks und Tastenanschlägen in Linux
Xdotool ist ein kostenloses Open-Source-Befehlszeilentool zum Simulieren von Mausklicks und Tastenanschlägen. Dieser Artikel enthält eine kurze Anleit...
Top 5 ergonomische Computermaus-Produkte für Linux
Verursacht längere Computernutzung Schmerzen im Handgelenk oder in den Fingern?? Leiden Sie unter steifen Gelenken und müssen ständig die Hände schütt...
So ändern Sie die Maus- und Touchpad-Einstellungen mit Xinput in Linux
Die meisten Linux-Distributionen werden standardmäßig mit der Bibliothek „libinput“ ausgeliefert, um Eingabeereignisse auf einem System zu verarbeiten...