V tomto článku vysvětlíme základy rozhraní PCI, PCIe a příkazu lspci pro zobrazení informací o vašem systému.
Co je to PCI?
PCI nebo Peripheral Component Interconnect je rozhraní pro přidání dalších hardwarových komponent do počítačového systému. PCIe nebo PCI Express je aktualizovaný standard, který se dnes používá. Řekněme například, že chcete do počítače přidat ethernetovou kartu, aby měla přístup k internetu a mohla si vyměňovat data. Karta potřebuje ke komunikaci se zbytkem interního systému protokol, PCI může být standardní rozhraní používané k přidání této karty do vašeho systému. Pro tuto kartu stále potřebujete ovladač, aby ji jádro mohlo používat, ale PCI je slot a sběrnice a rozhraní, které budou použity k přidání hardwaru do systému se standardním rozhraním. Vytvoření ovladače PCI linux bude následovat některá standardní rozhraní, která jsou uvedena v dokumentaci k vytvoření Ovladač PCI linux tady. Ze struktury níže můžete vidět standardní metody, které musí být implementovány. Metody jako sonda, odstranit, pozastavit, životopis, atd.
struct pci_driveruzel struktury list_head;
const char * jméno;
const struct pci_device_id * id_table;
int (* sonda) (struct pci_dev * dev, const struct pci_device_id * id);
void (* remove) (struct pci_dev * dev);
int (* pozastavit) (struktura pci_dev * dev, stav pm_message_t);
int (* resume) (struct pci_dev * dev);
void (* shutdown) (struct pci_dev * dev);
int (* sriov_configure) (struktura pci_dev * dev, int num_vfs);
const struktura pci_error_handlers * err_handler;
const struct atribut_skupina ** skupiny;
ovladač struct device_driver;
struct pci_dynids dynidy;
;
Rychlosti a použití PCI
PCI 3.0 může spouštět data až 1 GB / s na linku. Různá zařízení mohou mít více než jeden pruh, takže je možné, že jednotlivá zařízení mohou mít rychlost přenosu dat více gigabajtů. Tato čísla se neustále zlepšují, protože vycházejí nové verze specifikace a vychází nový hardware, takže vždy zkontrolujte nejnovější a nejrychlejší, které najdete. Mezi typy komponent a gadgetů, které si můžete zakoupit a které lze zapojit do rozhraní PCI, patří: WIFI adaptéry, Bluetooth, NVME Solid State Storage karty, grafické karty a další.
Zkoumání příkazu lspci
Vytvořil jsem Ubuntu 19.04 instance v cloudu Google a nyní spustí lspci příkaz a uvidíme, co se stane.
Uvidíte jeden řádek na zařízení s číselným kódem a slovním popisem zařízení. Ve skutečnosti je na tomto výstupu zobrazeno 5 polí na řádek: Slot, Class, Vendor, Device a Revision.
Takže rozbití prvního řádku, co máme:
SLOT: 00:00.0
Třída: Hostitelský most
Prodejce: Intel Corporation
Přístroj: 440FX - 82441FX PMC
Revize: 02
A při pohledu na Slot 00:04.0, to je náš ethernetový řadič, který se jeví jako virtuální zařízení jako součást virtuální magie nasazení cloudu Google.
Chcete-li získat podrobnější a podrobné informace o každém slotu PCI, spusťte následující příkaz:
# lspci -vmm
Tento příkaz rozdělí každý řádek na pole jeho komponenty a umožní vám analyzovat každé zařízení s popisnějšími popisky.
Můžete také zkusit volbu -v pro podrobnější výstup
# lspci -v
A použijte double v nebo tripple v pro verby podrobný výstup:
# lspci -vvv
Nebo zkuste volbu -mm pro výstupní formát čitelný skriptem.
# lspci -mm
Chcete-li zjistit, který ovladač jádra se používá pro každou možnost zařízení, spusťte volbu -k.
Mnoho mých zařízení používá ovladač virtio-pci.
Nakonec můžete dokonce vidět hexadecimální výpis „standardní části konfiguračního prostoru“ pro každé zařízení PCI. Měli byste být skutečným hackerem jádra, abyste zjistili, jak tyto informace použít. -x je to, co vám dává výstup výpisu.
# lspci -x
Závěr
Příkaz lspci je standardní příkaz systému Linux, který lze použít k výpisu informací o zařízeních připojených k PCI ve vašem systému. To může být užitečné vědět, jaké hardwarové periferie máte. Je také velmi užitečný pro vývojáře, tvůrce ovladačů zařízení, nízkoúrovňové systémové uživatele a dotazující se na informace o zařízeních, ovladačích a systému. Užijte si používání lspci.