Identify PCI hardware with lspci

See every network card, GPU and controller on the PCI bus, with vendor IDs and kernel drivers.

LinuxhardwarepciDiagnosticsLow risk
Run lspci -nn to list all PCI devices with names and numeric IDs, or lspci -v -s 00:1f.0 for full detail on one device.

01Command

Command
$ lspci -nn

02What it does

lspci walks the PCI bus and prints each device: Ethernet controllers, Wi-Fi cards, GPUs, NVMe controllers, USB hosts. The -nn flag adds vendor:device IDs like [8086:15f9], which is exactly what you paste into a search to find the right driver or kernel module. -v (up to -vv) reveals which kernel driver is bound, IRQs and LNKSTA link speed.

03Risk

RiskLow risk
Requirementspciutils package (preinstalled on virtually every distro). Read-only. For names you may want the pci.ids database (package pciutils / hwdata).
!Warning: lspci shows hardware present at boot or scan time — a device disabled in BIOS/UEFI or a hidden laptop GPU will not appear, and thunderbolt hot-plug needs a rescan (echo 1 | sudo tee /sys/bus/pci/rescan). Numeric IDs are more reliable than names when the pci.ids database is outdated.

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

  • lspci(8) - Ubuntu manpage
    Ubuntu Manpages · community · 2026-09-17
    Evidence: Same tool: -nn shows both textual and numeric IDs, -v verbose per-device details including the kernel driver in use.
  • lspci(8) — Debian bookworm
    Debian Manpages · community · 2026-09-17
    Evidence: SYNOPSIS lspci [options] documents -nn (numeric IDs plus names), -s [[domain]:]bus:device.function selection and verbose -v mode.

Last verified: 2026-09-19 · Category: System & Settings

06Related solutions