lspci -k command is a powerful Linux utility used to list all PCI buses and devices
connected to the system. It actively displays which kernel driver is handling each piece of hardware.
If there are any devices without a "Kernel Driver in use:" line, or, nothing listed after it on the
line. Your Linux system hasn't loaded a driver for that device.
lspci: Lists all PCI (Peripherial Component Interconnect) buses and devices attached
to your motherboard (such as GPUs, audio cards, and network adapters).
-k: Shows which Kernel driver is handling the device, and which kernel modules are
available for it.
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
Subsystem: Dell Device 0428
Kernel modules: intel_agp
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
Subsystem: Dell Device 0428
Kernel Driver in use: i915
Kernel modules: i915
00:16.0 Commuunication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
Subsystem: Dell Device 0428
Kernel Driver in use: mei_me
Kernel modules: mei_me
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 05)
Subsystem: Dell Device 0428
Kernel Driver in use: ehci-pci
Kernel modules: ehci-pci
...
...
...
3f:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
Subsystem: Dell Device 8086
3f:02.1 Host bridge: Intel Corporation Core 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
Subsystem: Dell Device 8086
3f:02.2 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
Subsystem: Dell Device 8086
3f:02.3 Host bridge: Intel Corporation Core Processor Reserved (rev 02)
Subsystem: Dell Device 8086
The -k flag tells lspci to show
both the kernel drivers managing the hardware and the kernel modules available for use. When you run the
command in your terminal, it generates output grouped by the PCI slot address (e.g., 3f:02.0), followed by:
lspci -nnk |grep -iA3 "network"
lspci -tv
lsusb