Nome
lspci – elenco di tutti i dispositivi PCI
Sinossi
lspci
Descrizione
lspci è un programma di utilità per la visualizzazione di informazioni sul bus PCI nel sistema e dei dispositivi ad essi collegati.
Per impostazione predefinita, mostra un breve elenco di dispositivi. Utilizzare le opzioni descritte di seguito per richiedere un output più dettagliato o un output destinato all’analisi di altri programmi.
Se hai intenzione di segnalare bug nei driver di periferica PCI o nello stesso lspci, includi l’output di “lspci-vvx” o ancora meglio “lspci-vvxxx”(tuttavia, vedi sotto per eventuali avvertimenti).
Alcune parti dell’output, specialmente nelle modalità altamente prolisse, sono probabilmente intelligibili solo agli hacker PCI esperti. Per le definizioni esatte dei campi, consultare le specifiche PCI o l’intestazione.h e / usr / includere / linux / pci.h includi file.
L’accesso ad alcune parti dello spazio di configurazione PCI è limitato a root su molti sistemi operativi, quindi le funzionalità di lspci disponibili per gli utenti normali sono limitate. Tuttavia, lspci fa del suo meglio per visualizzare quanto più disponibile e contrassegnare tutte le altre informazioni con <accesso negato>testo.
Opzioni
Modalità di visualizzazione di base
– m
Scarica i dati del dispositivo PCI in una forma leggibile a macchina compatibile con le versioni precedenti. Vedi sotto per i dettagli.
-mm
Scarica i dati del dispositivo PCI in una forma leggibile dalla macchina per una facile analisi da parte degli script. Vedi sotto per i dettagli.
-t
Mostra un diagramma ad albero contenente tutti i bus, ponti, dispositivi e connessioni tra di loro.
Opzioni di visualizzazione
– v
Essere dettagliato e visualizzare informazioni dettagliate su tutti i dispositivi.
-vv
Essere molto prolisso e visualizzare maggiori dettagli. Questo livello include tutto ciò che è ritenuto utile.
-vvv
Sii ancora più prolisso e mostra tutto ciò che siamo in grado di analizzare, anche se non sembra affatto interessante (ad esempio, regioni di memoria indefinite).
-k
Mostra i driver del kernel che gestiscono ogni dispositivo e anche i moduli del kernel in grado di gestirlo. Attivato per impostazione predefinita quando-v è dato nella modalità normale ofoutput. (Attualmente funziona solo su Linux con kernel 2.6 o più recente.)
-x
Mostra il dump esadecimale della parte standard dello spazio di configurazione (i primi 64 byte o 128 byte per i ponti CardBus).
-xxx
Mostra il dump esadecimale dell’intero spazio di configurazione PCI. È disponibile solo per il root poiché diversi dispositivi PCI si bloccano quando si tenta di leggere alcune parti dello spazio di configurazione (questo comportamento probabilmente non viola lo standard PCI, ma è almeno molto stupido). Tuttavia, tali dispositivi sono rari, quindi non è necessariopreoccuparsi molto.
-xxxx
Mostra il dump esadecimale dello spazio di configurazione PCI esteso (4096 byte) disponibile sui bus PCI-X 2.0 e PCI Express.
-b
Vista centrata sul bus. Mostra tutti i numeri e gli indirizzi IRQ come visto dalle schede sul bus PCI invece che come visto dal kernel.
-D
Mostra sempre i numeri di dominio PCI. Per impostazione predefinita, lspci li sopprime su macchine che hanno solo il dominio 0.
Opzioni per controllare la risoluzione degli ID ai nomi
– n
Mostra i codici del fornitore e del dispositivo PCI come numeri invece di cercarli nell’elenco degli ID PCI.
-nn
Mostra i codici del fornitore e del dispositivo PCI sia come numeri che come nomi.
-q
Utilizzare DNS per interrogare il database ID PCI centrale se un dispositivo non viene trovato nel pci locale.file ids. Se la query DNS ha esito positivo, il risultato viene memorizzato nella cache in~/.pciids-cache e viene riconosciuto nelle esecuzioni successive anche se-q non viene più fornito. Utilizzare questo switch solo all’interno di script automatizzati con cautela per evitare di sovraccaricare i server del database.
Come-q, ma la cache locale viene ripristinata.
-Q
Interrogare il database centrale anche per le voci riconosciute localmente. Utilizzare questa opzione se si sospetta che la voce visualizzata sia errata.
Opzioni per la selezione dei dispositivi
– s :]< bus >]:]] Mostra solo i dispositivi nel dominio specificato (nel caso in cui la tua macchina abbia diversi bridge host, possono condividere uno spazio numero bus comune o ognuno di essi può indirizzare un dominio PCI a sé stante; i domini sono numerati da 0 a ffff), bus (da 0 a ff), slot (da 0 a 1f) e funzione (da 0 a 7). Ogni componente di deviceaddress può essere omesso o impostato su “*”, che significa “qualsiasi valore”. Tutti i numeri sono esadecimali. Ad esempio, “0:” indica tutti i dispositivi sul bus 0, “0” indica tutte le funzioni del dispositivo 0 su qualsiasi bus, “0.3” seleziona la terza funzione del dispositivo 0 su tutti i bus e “.4 ” mostra solo la quarta funzione di ogni dispositivo. – d: Mostra solo i dispositivi con fornitore specificato e ID dispositivo. Entrambi gli ID sono dati in esadecimale e possono essere omessi o dati come”*”, entrambi che significano”anyvalue”.
Altre opzioni
– i < file>Usa < file> come elenco ID PCI invece di /usr/share/hwdata/pci.ID. – p< file >Usa< file > come mappa degli ID PCI gestiti dai moduli del kernel. Per impostazione predefinita, lspci utilizza / lib / modules/kernel_version / modules.pcimap. Appliesonly a sistemi Linux con strumenti di modulo abbastanza recenti. – M
Richiamare la modalità di mappatura bus che esegue una scansione approfondita di tutti i dispositivi PCI, compresi quelli dietro ponti mal configurati, ecc. Questa opzione dà significativorisultati solo con una modalità di accesso hardware diretto, che di solito richiede i privilegi di root. Si noti che il bus mapper esegue solo la scansione del dominio PCI 0.
version la versione mostra la versione lspci. Questa opzione dovrebbe essere utilizzata stand-alone.
Opzioni di accesso PCI
Le utility PCI utilizzano la libreria PCI per parlare con i dispositivi PCI (vedere pcilib (7) per i dettagli). È possibile utilizzare le seguenti opzioni per influenzare il suocomportamento:- A< metodo > La libreria supporta una varietà di metodi per accedere all’hardware PCI. Per impostazione predefinita, utilizza il primo metodo di accesso disponibile, ma è possibile utilizzare questa opzione tooverride questa decisione. Vedere-Una guida per un elenco dei metodi disponibili e le loro descrizioni. – O < param> = < valore > Il comportamento della libreria è controllato da diversi parametri denominati. Questa opzione consente di impostare il valore di uno qualsiasi dei parametri. Usa-O help perun elenco di parametri noti e dei loro valori predefiniti. – H1
Utilizzare l’accesso diretto all’hardware tramite il meccanismo di configurazione Intel 1. (Questa è una scorciatoia per-Un intel-conf1.)
-H2
Utilizzare l’accesso diretto all’hardware tramite il meccanismo di configurazione Intel 2. (Questa è una scorciatoia per-Un intel-conf2.)
-F <file> Invece di accedere hardware reale, leggere l’elenco dei dispositivi e dei valori della loro registri di configurazione dal file prodotto da una prima run oflspci -x. Questo è molto utile per l’analisi fornita dall’utente, segnalazioni di bug, perché è possibile visualizzare la configurazione hardware in qualsiasi modo si desidera withoutdisturbing l’utente con richieste di ulteriori discariche. – G
Aumentare il livello di debug della libreria.
Output leggibile dalla macchina
Se si intende elaborare automaticamente l’output di lspci, utilizzare uno dei formati di output leggibili dalla macchina (- m,- vm,- vmm)descritti in questa sezione. È probabile che tutti gli altri formati cambino tra le versioni di lspci.
Tutti i numeri sono sempre stampati in esadecimale. Se si desidera elaborare ID numerici invece di nomi, aggiungere l’opzione-n.
Formato semplice (- m)
Nel formato semplice, ogni dispositivo è descritto su una singola riga, che viene formattata come parametri adatti per il passaggio a uno script di shell, cioè, valuesseparated da spazi bianchi, citato e sfuggito se necessario. Alcuni degli argomenti sono posizionali: slot, classe, nome fornitore, nome dispositivo, nome fornitore sottosistema e nome sottosistema (gli ultimi due sono vuoti se il dispositivo non ha sottosistema); gli argomenti rimanenti sono option-like: -rrev
Numero di revisione.
– pprogif Interfaccia di programmazione. L’ordine relativo degli argomenti e delle opzioni posizionali non è definito. Nuove opzioni possono essere aggiunte nelle versioni future, ma avranno sempre un singleargument non separato dall’opzione da qualsiasi spazio, quindi possono essere facilmente ignorati se non riconosciuti.
Verbose format (-vmm)
L’output verbose è una sequenza di record separati da righe vuote. Ogni record descrive un singolo dispositivo da una sequenza di linee, ogni riga contenente asingle ‘tag: value’ coppia. Il tag e il valore sono separati da un singolo carattere di tabulazione. Né i record né le righe all’interno di arecord sono in un ordine particolare. I tag sono case-sensitive.
Sono definiti i seguenti tag:
Slot
Il nome dello slot in cui risiede il dispositivo (bus:device.funzione). Questo tag è sempre il primo di un record.
Classe
Nome della classe.
Fornitore
Nome del fornitore.
Dispositivo
Nome del dispositivo.
SVendor Nome del fornitore del sottosistema (opzionale). SDevice Nome del sottosistema (opzionale). PhySlot Lo slot fisico in cui risiede il dispositivo (opzionale, solo Linux). Rev
Numero di revisione (opzionale).
ProgIf
Interfaccia di programmazione (opzionale).
Driver
Driver del kernel che attualmente gestisce il dispositivo (opzionale, solo Linux).
Modulo
Modulo Kernel che segnala che è in grado di gestire il dispositivo (opzionale, solo Linux).
Nuovi tag possono essere aggiunti nelle versioni future, quindi dovresti ignorare silenziosamente tutti i tag che non riconosci.
Retrocompatibile verbose format (- vm)
In questa modalità, lspci cerca di essere perfettamente compatibile con le sue vecchie versioni. È quasi lo stesso del normale formato dettagliato, ma il tag dispositivo è utilizzato sia per lo slot che per il nome del dispositivo, quindi si verifica due volte in un singolo record. Si prega di evitare di utilizzare questo formato in qualsiasi nuovo codice.
File
/usr/condividi/dati hw/pci.ids
Un elenco di tutti gli ID PCI noti (fornitori, dispositivi, classi e sottoclassi). Mantenuto a http://pciids.sourceforge.net/, utilizzare l’utilità update-pciids per scaricare la versione più recente. /usr / condividere/dati hw / pci.ID.gz Se lspci è compilato con il supporto per la compressione, questo file viene provato prima di pci.ID. ~/.pciids-cache Tutti gli ID trovati nella modalità query DNS vengono memorizzati nella cache in questo file.
Bug
A volte, lspci non è in grado di decodificare completamente i registri di configurazione. Questo di solito accade quando non era disponibile abbastanza documentazione per gli autori. In questi casi, stampa almeno il <?> segna per segnalare che c’è potenzialmente qualcosa di più da dire. Se conosci i dettagli, le patch saranno ovviamente benvenute.
L’accesso allo spazio di configurazione esteso è attualmente supportato solo dal back-end linux_sysfs.
Vedi anche
setpci(8), update-pciids(8), pcilib(7)
Autore
Le utility PCI sono gestite da Martin Mares <[email protected]>.