How do I identify PCIe network, storage and GPU devices and their Linux drivers?
lspci shows devices on the PCI bus and can report the kernel driver bound to them. Use numeric vendor/device identifiers when a human-readable name is ambiguous. Seeing a device on the bus does not prove that its driver is healthy or that the application can use it.
Before you start
- pciutils is installed and PCI inventory inspection is authorised.
Instructions
1. Read devices and bound drivers
The normal inventory is sufficient for most identification tasks. Avoid unnecessary raw configuration-space dumps on production hardware.
lspci -nnk-nn includes numeric identifiers and -k reports kernel driver/module information. Compare the relevant NIC, controller or GPU with the ordered hardware.
2. Inspect one known device
Copy the exact bus address from the inventory when narrowing the output. The sample address must be replaced with the intended device.
lspci -s 03:00.0 -nnkThe driver in use is different from the list of potentially compatible modules. Confirm OS and vendor support before installing or replacing a driver.
Check the result
- The hardware identity, bus address and bound driver are known, and the device’s own operational tool confirms the required function.
Troubleshooting
- The device appears without a driver
- Check supported kernel/driver versions, firmware settings and whether passthrough intentionally reserves the device.
- The device is missing entirely
- Check physical inventory, firmware enablement and provider console evidence before attempting disruptive bus rescans.
Official references
Use the documentation for your installed version when a flag, service name or platform feature differs.
