Informazioni sul comando LSPCI su Linux

Informazioni sul comando LSPCI su Linux
LSPCI Il comando è un'utilità sui sistemi Linux utilizzati per scoprire informazioni sui bus e sui dispositivi PCI collegati al sottosistema PCI. Puoi capire il significato del comando considerando la parola LSPCI in due parti. La prima parte LS è l'utilità standard utilizzata su Linux per l'elenco delle informazioni sui file nel filesystem. PCI è la seconda parte del comando, quindi puoi vedere naturalmente il comando LSPCI Elencherà informazioni sul sottosistema PCI allo stesso modo ls Elencherà informazioni sul file system.

In questo articolo spiegheremo le basi di PCI, PCIe e il comando LSPCI per visualizzare informazioni sul sistema.

Cos'è PCI?

L'interconnessione PCI o periferiche dei componenti è un'interfaccia per aggiungere ulteriori componenti hardware a un sistema informatico. PCIE o PCI Express è lo standard aggiornato che viene utilizzato oggi. Ad esempio, supponiamo che tu voglia aggiungere una scheda Ethernet al tuo computer in modo che possa accedere a Internet e scambiare i dati. Bene, la scheda necessita di un protocollo per comunicare con il resto del sistema interno, PCI può essere l'interfaccia standard utilizzata per aggiungere questa scheda al sistema. È ancora necessario un driver per questa scheda affinché il kernel lo utilizzi, tuttavia PCI è lo slot e il bus e l'interfaccia che verranno utilizzati per aggiungere l'hardware nel sistema con un'interfaccia standard. La creazione di un driver PCI Linux seguirà alcune interfacce standard che puoi vedere la documentazione per la creazione di un driver PCI Linux qui. Puoi vedere dalla struttura sotto i metodi standard che devono essere implementati. Metodi come sonda, rimuovere, sospendere, riprendere, eccetera.

struct pci_driver
Struct list_head nodo;
const char *nome;
const struct pci_device_id *id_table;
int ( *sonda) (struct pci_dev *dev, const struct pci_device_id *id);
void ( *rimozione) (struct pci_dev *dev);
int ( *sospendere) (struct pci_dev *dev, pm_message_t stato);
int ( *curriculum) (struct pci_dev *dev);
void ( *arresto) (struct pci_dev *dev);
int ( *sriov_configure) (struct pci_dev *dev, int num_vfs);
const struct pci_error_handlers *err_handler;
const struct attribute_group ** gruppi;
driver Struct Device_Driver;
struct pci_dynids dynids;
;

Velocità e usi PCI

PCI 3.0 può eseguire dati fino a 1 GB/sec per corsia. Dispositivi diversi possono avere più di una corsia, quindi è possibile che i singoli dispositivi possano avere multi-gigabyte di velocità di trasferimento dei dati. Questi numeri migliorano sempre man mano che vengono visualizzate nuove versioni delle specifiche e vengono pubblicate nuove hardware, quindi controlla sempre l'ultimo e il più veloce che puoi trovare. I tipi di componenti e gadget che puoi acquistare quel collegamento a un'interfaccia PCI includono: adattatori WiFi, Bluetooth, schede di archiviazione a stato solido NVME, schede grafiche e altro ancora.

Esplorare il comando LSPCI

Ho creato un Ubuntu 19.04 istanza su Google Cloud e ora eseguirà il LSPCI comanda e guarda cosa succede.

Quello che vedi è una riga per dispositivo con un codice numerico e una descrizione verbale del dispositivo. In realtà ci sono 5 campi visualizzati in questo output per riga: slot, classe, fornitore, dispositivo e revisione.

Quindi abbattere la prima riga quello che abbiamo:

FESSURA: 00:00.0
Classe: Ponte ospite
Fornitore: Intel Corporation
Dispositivo: 440fx - 82441fx PMC
Revisione: 02

E guardando lo slot 00:04.0 Questo è il nostro controller Ethernet, che sembra essere un dispositivo virtuale come parte della magia virtuale della distribuzione del cloud di Google.

Per ottenere informazioni più dettagliate e verbose su ogni slot PCI, eseguire il seguente comando:

# lspci -vmm

Questo comando scomponderà ogni riga nei suoi campi componenti e consentirà di analizzare ciascun dispositivo con etichette più descrittive.

Puoi anche provare l'opzione -v per più output verbosio

# lspci -v

E utilizzare doppio V o TRIPPLE V per l'uscita verbosa Verby:

# lspci -vvv

Oppure prova l'opzione -mm per il formato di output leggibile dallo script.

# lspci -mm

Per vedere quale driver del kernel viene utilizzato per ciascuna opzione di esecuzione del dispositivo.

Molti dei miei dispositivi utilizzano il driver Virtio-PCI.

Infine, puoi anche vedere un dump esadecimale di "la parte standard dello spazio di configurazione" per ciascun dispositivo PCI. Dovresti essere un vero hacker del kernel per capire come utilizzare tali informazioni. -X L'opzione è ciò che ti dà l'output del dump.

# lspci -x

Conclusione

Il comando LSPCI è un comando Linux standard che può essere utilizzato per elencare le informazioni sui dispositivi collegati PCI sul sistema. Questo può essere utile per sapere quali periferiche hardware hai. È anche molto utile per gli sviluppatori, i creatori di driver di dispositivi, la gente del sistema di basso livello per interrogare informazioni sui dispositivi, sui driver e sul sistema. Divertiti a usare LSPCI.