核心说明
在 Linux 中,/proc/cpuinfo 只显示处理器相关信息,不包含 PCI/PCIe 设备清单。要查看 PCI 设备,应使用 lspci(来自 pciutils),以及可选的 lshw、sysfs 等工具。下面给出在 Linux 与 Windows 上的高效做法与常用命令示例。
Linux 查看 PCI 设备的高效方法
- 安装工具(如未预装):sudo apt-get install pciutils lshw(Debian/Ubuntu);sudo yum install pciutils lshw(CentOS/RHEL)。
- 基本清单与详细信息:
- lspci:列出所有 PCI 设备(地址、厂商、设备名)。
- lspci -v/-vv/-vvv:逐级显示设备详细信息与驱动绑定。
- lspci -nn:同时显示厂商/设备 ID(如 [8086:10fb])。
- lspci -t:以树状展示 PCI 拓扑(总线-设备-功能层级)。
- lspci -xxx:以十六进制显示设备配置空间原始寄存器,便于底层排查。
- lspci -k:显示每个设备使用的内核驱动模块。
- 按地址查看单个设备:lspci -vv -s 00:1f.2(示例地址)。
- 使用 lshw 查看:sudo lshw -class pci(可加 -C network 等类过滤)。
- 通过 sysfs 浏览:ls /sys/bus/pci/devices;cat /sys/bus/pci/devices/0000:00:1f.2/config 查看配置空间。以上命令覆盖从清单、拓扑到驱动与底层寄存器的全链路信息需求。
Windows 查看 PCI 设备的方法
- 设备管理器:右键“此电脑”→“管理”→“设备管理器”,展开“显示适配器/网络适配器/存储控制器”等,查看设备名称与属性。
- PowerShell(推荐):Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match “PCI\VEN” }(按 PCI\VEN 过滤,便于脚本化处理)。
- WMIC(传统方式,部分新系统可能提示弃用):wmic path Win32_PnPEntity get name,deviceid | find “PCI”。
- 系统信息工具:运行 msinfo32,在“组件”→“PCI”查看设备列表与细节。
- 第三方工具:如 SIV(System Information Viewer),可在 “PCI Bus” 页查看 Bus/Device/Function、Vendor/Device、PCIe 能力与 BAR 等,适合需要快速总览与导出信息的场景。
如何确认 CPU 与 PCIe 通道或链路状态
- Linux:
- 查看设备协商的 速度与宽度:lspci -vv | grep -i “speed\|width”(关注 LnkCap/LnkSta 字段,如 Speed 8GT/s、Width x16)。
- 查看网卡对应的 PCIe 通道/BDF:ethtool eth0 输出中的 Bus-info(如 01:00.0),再用 lspci -vv -s 01:00.0 查看链路详情。
- Windows:
- 在设备属性的“详细信息”页选择“硬件 Ids”,可见 VEN_XXXX&DEV_XXXX 等信息;或使用 PowerShell/WMI 查询 Win32_PnPEntity 获取 BusNumber/DeviceNumber/FunctionNumber 与设备描述,用于定位与排障。