Om LSPCI -kommandoen på Linux

Om LSPCI -kommandoen på Linux
LSPCI Kommando er et verktøy på Linux -systemer som brukes til å finne ut informasjon om PCI -bussene og enhetene som er koblet til PCI -undersystemet. Du kan forstå betydningen av kommandoen ved å vurdere ordet LSPCI i to deler. Den første delen LS, er standardverktøyet som brukes på Linux for oppføring av informasjon om filene i filsystemet. PCI er den andre delen av kommandoen, slik at du naturlig kan se kommandoen LSPCI vil liste opp informasjon om PCI -undersystemet på samme måte som ls vil liste opp informasjon om filsystemet.

I denne artikkelen vil vi forklare det grunnleggende om PCI, PCIE og LSPCI -kommandoen for å vise informasjon om systemet ditt.

Hva er PCI?

PCI, eller perifer komponent -sammenkobling er et grensesnitt for å legge til ytterligere maskinvarekomponenter i et datasystem. PCIE eller PCI Express er den oppdaterte standarden som brukes i dag. La oss for eksempel si at du vil legge til et Ethernet -kort på datamaskinen din, slik at det får tilgang til Internett og utvekslingsdata. Vel, kortet trenger en protokoll for å kommunisere med resten av det interne systemet, PCI kan være standardgrensesnittet som brukes til å legge dette kortet til systemet ditt. Du trenger fortsatt en driver for dette kortet for at kjernen skal bruke det, men PCI er sporet, og buss og grensesnitt som vil bli brukt til å legge til maskinvaren i systemet med et standardgrensesnitt. Opprettelse av en PCI Linux -driver vil følge noen standardgrensesnitt du kan se dokumentasjon for å lage en PCI Linux -driver her. Du kan se fra strukturen under standardmetodene som må implementeres. Metoder som sonde, fjerne, utsette, gjenoppta, etc.

struct pci_driver
struct list_head node;
const char *navn;
const struct pci_device_id *id_table;
int ( *sonde) (struct pci_dev *dev, const struct pci_device_id *id);
tomrom ( *fjerne) (struct pci_dev *dev);
int ( *suspence) (struct pci_dev *dev, pm_message_t state);
int ( *gjenoppta) (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 attributt_group ** grupper;
struct enhet_driver driver;
struct pci_dynids dynider;
;

PCI hastigheter og bruk

PCI 3.0 kan kjøre data opp til 1 GB/sek per bane. Ulike enheter kan ha mer enn en bane, så det er mulig at individuelle enheter kan ha multi-gigabyte med dataoverføringshastighet. Disse tallene forbedres alltid etter hvert som nye versjoner av spesifikasjonen kommer ut og ny maskinvare kommer ut, så sjekk alltid for det siste og raskeste du kan finne. Typer komponenter og dingser som du kan kjøpe den pluggen inn i et PCI -grensesnitt inkluderer: WiFi -adaptere, Bluetooth, NVME Solid State lagringskort, grafikkort og mer.

Utforske LSPCI -kommandoen

Jeg har laget en Ubuntu 19.04 forekomst på Google Cloud og vil nå kjøre LSPCI kommando og se hva som skjer.

Det du ser er en linje per enhet med en numerisk kode og en muntlig beskrivelse av enheten. Det er faktisk 5 felt som vises i denne utgangen per linje: spor, klasse, leverandør, enhet og revisjon.

Så bryter ned den første linjen hva vi har:

Spor: 00:00.0
Klasse: Vertsbro
Leverandør: Intel Corporation
Enhet: 440FX - 82441FX PMC
Revisjon: 02

Og ser på spilleautomat 00:04.0 Det er vår Ethernet -kontroller, som ser ut til å være en virtuell enhet som en del av den virtuelle magien i Googles skyutplassering.

For å få mer detaljert, ordentlig informasjon om hvert PCI -spor, kjør følgende kommando:

# LSPCI -Vmm

Denne kommandoen vil dele opp hver linje i komponentfeltene og la deg analysere hver enhet med mer beskrivende etiketter.

Du kan også prøve -v -alternativet for mer ordentlig utgang

# lspci -v

Og bruk dobbelt V eller tripple V for Verby Verbose output:

# LSPCI -VVV

Eller prøv -MM -alternativet for skriptleserbar utgangsformat.

# LSPCI -MM

For å se hvilken kjernedriver som brukes til hvert enhetskjør -alternativ.

Mange av enhetene mine bruker Virtio-PCI-driveren.

Til slutt kan du til og med se en heksadesimal dump av "standarddelen av konfigurasjonsrommet" for hver PCI -enhet. Du bør være en ekte kjernehacker for å finne ut hvordan du bruker den informasjonen. -X -alternativet er det som gir deg dumputgangen.

# lspci -x

Konklusjon

LSPCI -kommandoen er en standard Linux -kommando som kan brukes til å liste opp informasjon om PCI -tilkoblede enheter på systemet ditt. Dette kan være nyttig å vite hvilke periferiutstyr for maskinvare. Det er også super nyttig for utviklere, enhetsdriverskapere, systemer på lavt nivå for å spørre om informasjon om enhetene, driverne og systemet. Kos deg med å bruke LSPCI.