Dedicated servers · Question & answer

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.

IntermediateLinux on a dedicated server; hardware capabilities depend on the server model
Go to the answer

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.

Remote Linux shell
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.

Remote Linux shell
lspci -s 03:00.0 -nnk

The 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.