lspci(8) – Linux-Manpage

Name

lspci – Liste aller PCI-Geräte

Zusammenfassung

lspci

Beschreibung

lspci ist ein Dienstprogramm zum Anzeigen von Informationen zu PCI-Bussen im system und an sie angeschlossene Geräte.

Standardmäßig wird eine kurze Liste der Geräte angezeigt. Verwenden Sie die unten beschriebenen Optionen, um entweder eine ausführlichere Ausgabe oder eine Ausgabe zum Parsen durch andere Programme anzufordern.

Wenn Sie Fehler in PCI-Gerätetreibern oder in lspci selbst melden möchten, geben Sie bitte die Ausgabe von „lspci -vvx“ oder noch besser „lspci -vvxxx“ an (mögliche Einschränkungen siehe unten).

Einige Teile der Ausgabe, insbesondere in den sehr ausführlichen Modi, sind wahrscheinlich nur für erfahrene PCI-Hacker verständlich. Für genaue Definitionen der Parameter konsultieren Sie bitte entweder die PCI-Spezifikationen oder den Header.h und /usr/include/linux/pci.h Include-Dateien.

Der Zugriff auf einige Teile des PCI-Konfigurationsbereichs ist auf vielen Betriebssystemen auf root beschränkt, sodass die für Normalbenutzer verfügbaren Funktionen von lspci begrenzt sind. lspci versucht jedoch sein Bestes, um so viel wie möglich anzuzeigen und alle anderen Informationen mit <Zugriff verweigert> Text zu markieren.

Optionen

Grundlegende Anzeigemodi

-m

Sichern Sie PCI-Gerätedaten in einer abwärtskompatiblen, maschinenlesbaren Form. Siehe unten für Details.

-mm

Dump PCI-Gerätedaten in einer maschinenlesbaren Form für die einfache Analyse durch Skripte. Siehe unten für Details.

-t

Zeigt ein baumartiges Diagramm, das alle Busse, Brücken, Geräte und Verbindungen zwischen ihnen enthält.

Anzeigeoptionen

-v

Seien Sie ausführlich und zeigen Sie detaillierte Informationen zu allen Geräten an.

-vv

Seien Sie sehr ausführlich und zeigen Sie weitere Details an. Diese Ebene enthält alles, was als nützlich erachtet wird.

-vvv

Seien Sie noch ausführlicher und zeigen Sie alles an, was wir analysieren können, auch wenn es überhaupt nicht interessant aussieht (z. B. undefinierte Speicherbereiche).

-k

Zeigt Kernel-Treiber, die jedes Gerät handhaben, und auch Kernel-Module, die es handhaben können. Standardmäßig aktiviert, wenn -v im normalen Modus vonausgabe. (Funktioniert derzeit nur unter Linux mit Kernel 2.6 oder neuer.)

-x

Hexadezimaler Dump des Standardteils des Konfigurationsraums (die ersten 64 Bytes oder 128 Bytes für CardBus-Bridges).

-xxx

Zeigt einen hexadezimalen Dump des gesamten PCI-Konfigurationsraums an. Es ist nur für Root verfügbar, da mehrere PCI-Geräte abstürzen, wenn Sie versuchen, einige Teile des Konfigurationsbereichs zu lesen (dieses Verhalten verstößt wahrscheinlich nicht gegen den PCI-Standard, ist aber zumindest sehr dumm). Solche Geräte sind jedoch selten, also brauchen SieSorgen Sie sich viel.

-xxxx

Zeigt einen hexadezimalen Speicherauszug des erweiterten (4096 Byte) PCI-Konfigurationsraums an, der auf PCI-X 2.0- und PCI Express-Bussen verfügbar ist.

-b

Buszentrierte Ansicht. Zeigt alle IRQ-Nummern und Adressen an, wie sie von den Karten auf dem PCI-Bus gesehen werden, anstatt wie sie vom Kernel gesehen werden.

-D

Zeigt immer PCI-Domänennummern an. Standardmäßig unterdrückt lspci sie auf Computern, die nur Domäne 0 haben.

Optionen zum Steuern der Auflösung von IDs in Namen

-n

Zeigen Sie PCI-Hersteller- und Gerätecodes als Nummern an, anstatt sie in der PCI-ID-Liste nachzuschlagen.

-nn

Zeigt PCI-Hersteller- und Gerätecodes sowohl als Nummern als auch als Namen an.

-q

Verwenden Sie DNS, um die zentrale PCI-ID-Datenbank abzufragen, wenn ein Gerät im lokalen PCI nicht gefunden wird.ids-Datei. Wenn die DNS-Abfrage erfolgreich ist, wird das Ergebnis in ~/ zwischengespeichert.pciids-cache und es wird in nachfolgenden Läufen erkannt, auch wenn -q nicht mehr angegeben wird. Bitte verwenden Sie diesen Schalter nur in automatisierten Skripten mit Vorsicht, um eine Überlastung der Datenbankserver zu vermeiden.

-qq

Wie -q, aber der lokale Cache wird zurückgesetzt.

-Q

Fragt die zentrale Datenbank auch nach Einträgen ab, die lokal erkannt werden. Verwenden Sie diese Option, wenn Sie vermuten, dass der angezeigte Eintrag falsch ist.

Optionen zur Auswahl der Geräte

-s :]<[>]:]] Nur Geräte in der angegebenen Domäne anzeigen (falls Ihr Computer über mehrere Host-Bridges verfügt, können diese entweder einen gemeinsamen Busnummernraum verwenden oder jede von ihnen kann eine eigene PCI-Domäne adressieren; Domänen sind von 0 bis ffff nummeriert), Bus (0 bis ff), Steckplatz (0 bis 1f) und Funktion (0 bis 7). Jede Komponente der deviceaddress kann weggelassen oder auf „*“ gesetzt werden, was „beliebiger Wert“ bedeutet. Alle Zahlen sind hexadezimal. Z. B., „0:“ bedeutet alle geräte auf bus 0, „0“ bedeutet alle funktionen ofdevice 0 auf jedem bus, „0,3“ wählt dritte funktion von gerät 0 auf alle busse und „.4“ zeigt nur die vierte Funktion jedes Gerätes. -d: Nur Geräte mit der angegebenen Hersteller- und Geräte-ID anzeigen. Beide IDs werden hexadezimal angegeben und können weggelassen oder als „*“ angegeben werden.

Andere Optionen

-i <Datei> Verwenden Sie <Datei> als PCI-ID-Liste anstelle von /usr/share/hwdata/pci.IDS. -p <file> Verwenden Sie <file> als Karte der PCI-IDs, die von Kernelmodulen verarbeitet werden. Standardmäßig verwendet lspci /lib/modules/kernel_version/modules .pcimap. Gilt nur für Linux-Systeme mit aktuellen Modul-Tools. -M

Rufen Sie den Bus-Mapping-Modus auf, der einen gründlichen Scan aller PCI-Geräte durchführt, einschließlich derjenigen, die sich hinter falsch konfigurierten Brücken usw. befinden. Diese Option gibt Aussagekräftigergebnisse nur mit einem direkten Hardwarezugriffsmodus, der normalerweise Root-Rechte erfordert. Bitte beachten Sie, dass der Bus-Mapper nur die PCI-Domäne 0 scannt.

–version Zeigt die LSPCI-Version an. Diese Option sollte Stand-alone verwendet werden.

PCI-Zugriffsoptionen

Die PCI-Dienstprogramme verwenden die PCI-Bibliothek, um mit PCI-Geräten zu kommunizieren (siehe pcilib(7) für Details). Sie können die folgenden Optionen verwenden, um sein Verhalten zu beeinflussen:-A <Methode> Die Bibliothek unterstützt eine Vielzahl von Methoden für den Zugriff auf die PCI-Hardware. Standardmäßig wird die erste verfügbare Zugriffsmethode verwendet, Sie können diese Option jedoch auch verwendenübertragen Sie diese Entscheidung. Eine Liste der verfügbaren Methoden und deren Beschreibungen finden Sie unter -A help. -O <param>=<value> Das Verhalten der Bibliothek wird durch mehrere benannte Parameter gesteuert. Mit dieser Option können Sie den Wert eines beliebigen Parameters festlegen. Verwenden Sie -O Hilfe füreine Liste bekannter Parameter und ihrer Standardwerte. -H1

Verwenden Sie den direkten Hardwarezugriff über den Intel-Konfigurationsmechanismus 1. (Dies ist eine Abkürzung für -A intel-conf1.)

-H2

Verwenden Sie den direkten Hardwarezugriff über den Intel-Konfigurationsmechanismus 2. (Dies ist eine Abkürzung für -A intel-conf2.)

-F <file> Anstatt auf echte Hardware zuzugreifen, lesen Sie die Liste der Geräte und Werte ihrer Konfigurationsregister aus der angegebenen Datei, die durch einen früheren Lauf von lspci -x erstellt wurde. Dies ist sehr nützlich für die Analyse von vom Benutzer bereitgestellten Fehlerberichten, da Sie die Hardwarekonfiguration auf beliebige Weise anzeigen können, ohne den Benutzer mit Anfragen nach weiteren Dumps zu stören. -G

Debug-Level der Bibliothek erhöhen.

Maschinenlesbare Ausgabe

Wenn Sie die Ausgabe von lspci automatisch verarbeiten möchten, verwenden Sie bitte eines der in diesem Abschnitt beschriebenen maschinenlesbaren Ausgabeformate (-m, -vm, -vmm). Alle anderen Formate ändern sich wahrscheinlich zwischen den Versionen von lspci.

Alle Zahlen werden immer hexadezimal gedruckt. Wenn Sie numerische IDs anstelle von Namen verarbeiten möchten, fügen Sie bitte den Schalter -n hinzu.

Einfaches Format (-m)

Im einfachen Format wird jedes Gerät in einer einzigen Zeile beschrieben, die als Parameter formatiert ist, die für die Übergabe an ein Shell-Skript geeignet sind, d. H., valueseparated durch Whitespaces, Anführungszeichen und Escapezeichen, falls erforderlich. Einige der Argumente sind positionsbezogen: Steckplatz, Klasse, Herstellername, Gerätename, Subsystemherstellername und Subsystemname (die letzten beiden sind leer, wenn das Gerät kein Subsystem hat); Die restlichen Argumente sind optionsbezogen: -rrev

Revisionsnummer.

-pprogif Programmierschnittstelle. Die relative Reihenfolge von Positionsargumenten und Optionen ist nicht definiert. Neue Optionen können in zukünftigen Versionen hinzugefügt werden, aber sie haben immer ein singleargument, das nicht durch Leerzeichen von der Option getrennt ist, sodass sie leicht ignoriert werden können, wenn sie nicht erkannt werden.

Ausführliches Format (-vmm)

Die ausführliche Ausgabe ist eine Folge von Datensätzen, die durch Leerzeilen getrennt sind. Jeder Datensatz beschreibt ein einzelnes Gerät durch eine Folge von Zeilen, wobei jede Zeile ein einzelnes ‚Tag: value‘ -Paar enthält. Das Tag und der Wert werden durch ein einzelnes Tabulatorzeichen getrennt. Weder die Datensätze noch die Zeilen in arecord sind in einer bestimmten Reihenfolge. Tags sind case-sensitive.

Die folgenden Tags sind definiert:

Slot

Der Name des Slots, in dem sich das Gerät befindet (bus:device.Funktion). Dieses Tag ist immer das erste in einem Datensatz.

Klasse

Name der Klasse.

Lieferant

Name des Lieferanten.

Gerät

Name des Geräts.

SVendor Name des Subsystemherstellers (optional). sDEVICE Name des Subsystems (optional). PhySlot Der physische Steckplatz, in dem sich das Gerät befindet (optional, nur Linux). Rev

Revisionsnummer (optional).

ProgIf

Programmierschnittstelle (optional).

Treiber

Kernel-Treiber, der derzeit das Gerät verarbeitet (optional, nur Linux).

Modul

Kernelmodul, das meldet, dass es in der Lage ist, das Gerät zu handhaben (optional, nur Linux).

Neue Tags können in zukünftigen Versionen hinzugefügt werden, daher sollten Sie alle Tags, die Sie nicht erkennen, stillschweigend ignorieren.

Abwärtskompatibles ausführliches Format (-vm)

In diesem Modus versucht lspci, perfekt mit seinen alten Versionen kompatibel zu sein. Es ist fast das gleiche wie das reguläre ausführliche Format, aber das Geräte-Tag wird sowohl für den Steckplatz als auch für den Gerätenamen verwendet, sodass es zweimal in einem einzelnen Datensatz vorkommt. Bitte vermeiden Sie die Verwendung dieses Formats in einem neuen Code.

Dateien

/usr/share/hwdata/pci.ids

Eine Liste aller bekannten PCI-IDs (Hersteller, Geräte, Klassen und Unterklassen). Verwenden Sie das Dienstprogramm update-pciids, das bei http://pciids.sourceforge.net/ verwaltet wird, um die neueste Version herunterzuladen. /usr/teilen/hwdata/pci.IDS.gz Wenn lspci mit Unterstützung für die Komprimierung kompiliert wird, wird diese Datei vor pci versucht.IDS. ~/.pciids-cache Alle im DNS-Abfragemodus gefundenen IDs werden in dieser Datei zwischengespeichert.

Fehler

Manchmal kann lspci die Konfigurationsregister nicht vollständig dekodieren. Dies geschieht normalerweise, wenn den Autoren nicht genügend Dokumentation zur Verfügung stand. In solchen Fällen druckt es zumindest die <?> markieren, um zu signalisieren, dass es möglicherweise noch etwas zu sagen gibt. Wenn Sie die Details kennen, sind Patches natürlich willkommen.

Der Zugriff auf den erweiterten Konfigurationsbereich wird derzeit nur vom linux_sysfs-Backend unterstützt.

Siehe auch

setpci(8), update-pciids(8), pcilib(7)

Autor

Die PCI Utilities werden von Martin Mares betreut <[email protected] >.



+