发布于2026-07-03 阅读(0)
扫一扫,手机访问
在Linux中查询硬件信息时,一个常见的误区是:有人以为 /proc/cpuinfo 能同时显示PCI/PCIe设备清单。其实不然——这个文件只记录处理器相关信息,PCI设备需要专门的工具来查看。最直接的方式就是使用 lspci(来自 pciutils 包),再配合 lshw、sysfs 等工具,就能实现完整的设备浏览。今天就来系统地梳理一下,Linux和Windows上查看PCI设备的高效做法和常用命令。

第一步当然是装工具。如果系统没预装,Debian/Ubuntu 用户执行 sudo apt-get install pciutils lshw,CentOS/RHEL 用户则用 sudo yum install pciutils lshw。搞定之后,一系列强大命令就等着你了。
先来看看最基础的操作:
lspci,输出包含了设备的地址、厂商和名称。这是最常用的入门命令。lspci -v(或 -vv、-vvv)可以逐级显示设备更详细的信息,包括驱动绑定情况。等级越高,信息越冗长,但也越有价值。lspci -nn 会在设备名称后附加类似 [8086:10fb] 这样的ID,方便在线查询或脚本处理。lspci -t 会以树状结构展示PCI总线层级,比如哪个桥接器挂载了哪些设备。这对于理解物理连接关系非常直观。lspci -xxx 可以十六进制形式输出设备配置空间的原始寄存器内容,适合做底层排障时使用。lspci -k 直接显示每个设备绑定的内核驱动模块。比如想确认网卡用的是哪个驱动,这个命令一步到位。如果只想看某个特定设备,比如地址是 00:1f.2 的控制器,可以这样:lspci -vv -s 00:1f.2。通过 -s 参数指定地址,能避免输出被其他信息淹没。
除了 lspci,还有两个好工具:
sudo lshw -class pci 可以输出结构化的PCI设备信息。如果需要特定类别(比如网络设备),还可以加过滤参数,例如 -C network。输出比 lspci 更人性化,适合阅读。ls /sys/bus/pci/devices 列出所有设备,然后用 cat /sys/bus/pci/devices/0000:00:1f.2/config 查看配置空间。这种方法对脚本编程非常友好。以上命令基本覆盖了从清单、拓扑到驱动与底层寄存器的全链路信息需求。
Windows 用户当然可以用图形化工具——最直接的就是 设备管理器:右键“此电脑”→“管理”→“设备管理器”,然后逐一展开“显示适配器”、“网络适配器”、“存储控制器”等节点。对大多数日常排查来说,这已经足够了。
如果需要脚本化或更精细的控制,PowerShell 是推荐的工具。一个常用的命令是:
Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match "PCI\VEN" }
这条命令会把所有PCI设备都过滤出来,输出包含设备描述和实例ID。如果你需要进一步解析 VEN_XXXX&DEV_XXXX 这样的硬件ID,PowerShell 还能轻松处理。
传统方法也有——WMIC。虽然部分新系统可能会提示弃用,但 wmic path Win32_PnPEntity get name,deviceid | find "PCI" 仍然能工作,对写批处理脚本的老手来说可能更顺手。
另外,系统自带的 系统信息工具(运行 msinfo32),在“组件”→“PCI”节点下能看到设备列表和细节。虽然数据不如设备管理器或PowerShell那样可操作性强,但用于快速总览没有问题。
如果觉得内置工具不够直观,第三方工具 如 SIV(System Information Viewer)值得一试。它可以在 “PCI Bus” 页面以表格形式展示 Bus/Device/Function、Vendor/Device ID、PCIe 能力与 BAR 地址等信息,适合需要快速总览和导出数据的场景。
配置完了设备清单,有时还需要确认CPU与PCIe设备之间的链路协商状态——比如显卡或NVMe SSD是否跑在预期的速度上。
在 Linux 下,一条命令就能搞定:
lspci -vv | grep -i "speed\|width"
重点关注输出中的 LnkCap(Capability,设备支持的上限)和 LnkSta(Status,当前实际协商状态)这两个字段。比如 Speed 8GT/s 和 Width x16 表明链路工作在 PCIe 3.0 x16 的模式下。如果LnkSta显示的数值低于预期,那可能就是硬件或驱动层面的信号问题。
如果想查某张网卡的PCIe链路状态,先用 ethtool eth0 查看 Bus-info 字段(如 01:00.0),再把这个地址带入 lspci -vv -s 01:00.0 即可。
在 Windows 下,最朴素的方法是到设备管理器里找到目标设备,右键进入属性 → “详细信息”页面,下拉选择“硬件 Ids”,你能看到类似 PCI\VEN_8086&DEV_XXXX 的信息。如果需要更结构化的数据(比如BusNumber、DeviceNumber),可以通过 PowerShell 或 WMI 查询 Win32_PnPEntity 来获取。这对故障排查或设备定位都非常实用。
从工具链到链路状态,这里列出的方法基本涵盖了日常和深度排障场景。无论你是Linux运维老手还是Windows系统工程师,这套路线图应该能帮你更高效地看清PCIe设备的全景。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8