检测 PCI 与 PCI-E

检测 PCI 与 PCI-E

我可以远程访问计算机,我需要找出计算机的扩展槽类型,是 PCI、PCI-E 还是其他类型。我如何从 shell 执行此操作?有哪些命令可以报告扩展槽的类型和数量?

任何帮助,将不胜感激。

答案1

dmidecode应该显示有关系统上的插槽的信息。

该命令需要以 root 身份运行。

答案2

您也可以尝试lspci -vvv,但我不确定它是否可以在远程机器上运行。

答案3

我想我已经找到了一种仅使用 sysfs 来实现这一点的本机方法,尽管考虑到 Linux 的性质,我无法 100% 保证这一点...
(注意:这是为了测试特定的设备而不是插槽)

我将重点关注 PCI(e) 设备层次结构,但您也可以通过/sys/bus/pci/drivers/*您打算验证的其他位置访问此类设备。

据我目前发现,我的所有 PCIe 设备似乎都有该link目录:
/sys/devices/pci0000:00/<devicepath>/link/
而到目前为止,我的所有 PCI 设备都没有该目录的踪迹。

简单运行test <devicepath>/link/似乎足以告诉您设备是 PCIe 还是 PCI。

$ test -d "/sys/devices/pci0000:00/0000:00:00.2/link" && echo true
true
if test -d "/sys/devices/pci0000:00/0000:00:00.2/link"; then
    # device is PCIe
else
    # device is PCI
fi

相关内容