Discovering PCI devices
Many peripherals are attached to a PCI bus. These days, this usually means PCI Express (PCI-e) rather than older PCI or PCI-x buses, but from a software point of view, they are all PCI devices, whichever variant of that bus they are attached to.
The kernel exposes information about them in the /sys/class/pci_bus
hierarchy, but reading those files by hand would be a very time-consuming task, unlike in /proc/cpuinfo
, so in practice, people always use utilities for it. The most popular one is lspci
from the pciutils
package.
Here is a sample output:
$ sudo lspci 00:00.0 Host bridge: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers (rev 01) 00:02.0 VGA compatible controller: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] (rev 01) 00:04.0 Signal processing controller: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant (rev 01) 00:06.0 PCI bridge: Intel Corporation 11th Gen Core Processor PCIe Controller (rev 01...