Selles artiklis selgitame PCI, PCIe ja käsu lspci põhitõdesid teabe kuvamiseks teie süsteemis.
Mis on PCI?
PCI ehk Peripheral Component Interconnect on liides arvutisüsteemi täiendavate riistvarakomponentide lisamiseks. PCIe või PCI Express on täna kasutatav uuendatud standard. Oletame näiteks, et soovite oma arvutisse lisada Etherneti kaardi, et see saaks Internetti juurde pääseda ja andmeid vahetada. Noh, kaart vajab ülejäänud sisemise süsteemiga suhtlemiseks protokolli, PCI võib olla standardne liides, mida kasutatakse selle kaardi lisamiseks teie süsteemi. Kerneli jaoks on selle kaardi jaoks endiselt vaja draiverit, kuid PCI on pesa ning siin ja liides, mida kasutatakse riistvara standardliidesega süsteemi lisamiseks. PCI linuxi draiveri loomisel järgitakse mõningaid standardseid liideseid, mille näete a PCI Linuxi draiver siin. Allpool olevast struktuurist näete standardmeetodeid, mis tuleb rakendada. Sellised meetodid nagu sond, eemalda, riputama, Jätka, jne.
struct pci_driverstruct list_head sõlm;
const char * nimi;
const struct pci_device_id * id_table;
int (* sond) (struct pci_dev * dev, const struct pci_device_id * id);
void (* eemalda) (struct pci_dev * dev);
int (* peatama) (struct pci_dev * dev, pm_sõnumi_t olek);
int (* jätkata) (struct pci_dev * dev);
void (* väljalülitamine) (struct pci_dev * dev);
int (* sriov_configure) (struct pci_dev * dev, int num_vfs);
const struct pci_error_handlers * err_handler;
const struct atribuudi_grupp ** rühmad;
struct device_driver draiver;
struct pci_dynids dünidid;
;
PCI kiirused ja kasutusalad
PCI 3.0 saab andmeid käitada kuni 1 GB / s sõidurea kohta. Erinevatel seadmetel võib olla rohkem kui üks rada, seega on võimalik, et üksikute seadmete andmeedastuskiirus võib olla mitu gigabaiti. Need numbrid paranevad alati, kui ilmuvad spetsifikatsiooni uued versioonid ja välja tuleb uus riistvara, nii et kontrollige alati, kas leiate uusimat ja kiiremat. Komponentide ja vidinate tüübid, mida saate PCI-liidesesse ühendada, hõlmavad järgmist: WIFI-adapterid, Bluetooth, NVME tahkis-mälukaardid, graafikakaardid ja palju muud.
Lspci käsu uurimine
Olen loonud Ubuntu 19.04 Google'i pilves ja käivitab nüüd lspci käsk ja vaata, mis juhtub.
See, mida näete, on üks rida seadme kohta koos numbrilise koodi ja seadme suulise kirjeldusega. Selles väljundis kuvatakse rea kohta 5 välja: pesa, klass, hankija, seade ja redaktsioon.
Nii et purustades esimese rea, mis meil on:
Pesa: 00:00.0
Klass: Peremees sild
Müüja: Intel Corporation
Seade: 440FX - 82441FX PMC
Redaktsioon: 02
Ja vaadates pesa 00:04.0, see on meie Etherneti kontroller, mis näib olevat virtuaalne seade osana Google'i pilvepõhise juurutamise virtuaalsest maagiast.
Iga PCI-pesa kohta üksikasjalikuma, üksikasjaliku teabe saamiseks käivitage järgmine käsk:
# lspci -vmm
See käsk jaotab iga rea komponentväljadeks ja võimaldab teil analüüsida iga seadet kirjeldavamate siltidega.
Täpsema väljundi saamiseks võite proovida ka valikut -v
# lspci -v
Verbose väljundi jaoks kasutage topelt v või kolmikut v:
# lspci -vvv
Või proovige skripti loetava väljundvormingu valikut -mm.
# lspci -mm
Selleks, et näha, millist kerneli draiverit kasutatakse iga seadme käivitamiseks -k.
Paljud minu seadmed kasutavad virtio-pci draiverit.
Lõpuks näete isegi iga PCI-seadme "konfiguratsiooniruumi standardosa" heksade koma. Selle teabe kasutamiseks peaksite olema tõeline tuumahäkker. -x variant on see, mis annab teile dump väljundi.
# lspci -x
Järeldus
Lspci käsk on tavaline Linuxi käsk, mida saab kasutada PCI-ga ühendatud seadmete kohta teabe kuvamiseks teie süsteemis. See võib olla kasulik teada saadaolevaid riistvara välisseadmeid. Samuti on see ülimalt kasulik arendajatele, seadmete draiverite loojatele, madalama taseme süsteemirahvastele seadmete, draiverite ja süsteemi kohta teabe küsimiseks. Naudi lspci kasutamist.