lspci 命令详解
更新时间:2026-09-17。「一个命令一个文档」系列,属于硬件与内核族。识别服务器上的网卡、RAID/HBA、GPU、NVMe、USB 控制器等 PCI/PCIe 设备型号、槽位和绑定驱动,装机巡检和驱动排查第一步常用它。
一、常用法
bash
lspci # 列出所有 PCI 设备(总线:设备.功能 类名 型号)
lspci -k # 同时显示"正在使用的内核驱动"和可用模块(最常用)
lspci -vvv # 极详细:能力寄存器、LnkSta 速率/宽度、ASPM
lspci -tv # 树状拓扑(看桥/交换芯片下挂关系)
lspci -s 03:00.0 -vvv # 按 BDF 地址精确定位某设备
lspci | grep -i ethernet # 只看网卡(Ethernet/Network/VGA/RAID 分类过滤)输出首列 03:00.0 即 BDF(Bus:Device.Function),是设备在总线上的坐标。
二、典型用途
- 确认网卡型号/驱动:
lspci -k | grep -A3 -i ethernet,看到底是 ixgbe/i40e/mlx5 还是 virtio,再结合 ethtool -i 看驱动版本,判断该用哪个工具/固件。 - 设备没被识别/没驱动:
lspci -k里Kernel driver in use:为空,说明只有设备没有绑定驱动(缺模块/固件),去dmesg、lsmod/modprobe 排查。 - PCIe 链路速率/宽度:
lspci -vvv -s <bdf>看LnkCap(能力)与LnkSta(实际协商),若 25G 网卡跑在 Gen3 x1 等降速状态会成瓶颈。 - NUMA 归属:高性能网卡/RAID 关心设备挂在哪个 NUMA node,配合
cat /sys/bus/pci/devices/<bdf>/numa_node与 numactl 做本地中断/内存亲和(多队列见 RSS)。 - SR-IOV/虚拟化:
lspci -vvv看 SR-IOV 能力与 VF 数量,vfio-pci 直通前置检查。
三、补充与坑
- 型号名来自 pci.ids 数据库;显示成
[8086:158b]说明本地 ID 库过旧,更新pciutils/update-pciids。 - lspci 列 PCIe 设备;USB 设备用
lsusb,块磁盘用 lsblk,CPU 用lscpu。 - 云主机/虚拟机里看到的常是 virtio、Hyper-V、vmxnet3 等虚拟设备,看不到真实物理型号属正常。
相关命令
网卡速率/队列/统计用 ethtool,块设备用 lsblk/blkid,加载驱动用 modprobe,内核日志用 dmesg。
总结
lspci 列出 PCI/PCIe 硬件及 BDF 地址:-k 看型号背后绑定的内核驱动(没驱动时 in use 为空)、-vvv -s bdf 看 LnkSta 实际链路速率/宽度与 SR-IOV、-tv 看拓扑,/sys/.../numa_node 看 NUMA 归属;型号显示成十六进制 ID 就 update-pciids;它管网卡/RAID/GPU 等板卡,USB 用 lsusb、磁盘用 lsblk。