![检测 PCI 与 PCI-E](https://linux22.com/image/1349946/%E6%A3%80%E6%B5%8B%20PCI%20%E4%B8%8E%20PCI-E.png)
我可以远程访问计算机,我需要找出计算机的扩展槽类型,是 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