![如何在 Linux shell 中检查空闲 PCI 插槽的 PCI 类型和版本](https://linux22.com/image/761280/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20shell%20%E4%B8%AD%E6%A3%80%E6%9F%A5%E7%A9%BA%E9%97%B2%20PCI%20%E6%8F%92%E6%A7%BD%E7%9A%84%20PCI%20%E7%B1%BB%E5%9E%8B%E5%92%8C%E7%89%88%E6%9C%AC.png)
我知道如何检查我的服务器上有多少个 PCI 插槽尚未使用,方法是使用dmidecode
并查找Available
插槽:
# dmidecode
[...]
Handle 0x0014, DMI type 9, 13 bytes
System Slot Information
Designation: PCI1
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 2
Characteristics:
5.0 V is provided
PME signal is supported
lspci -vvv
并且我还知道如何通过使用和查找LnkCap
数据来检查服务器中所有插槽 (可用和已使用) 的 PCI 类型和版本:
# lspci -vvv
[...]
00:1f.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge (prog-if 00 [Normal decode])
[...]
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ...
其中 2.5GT/s 的速度和 1x 表明它是 PCI-e 1x 插槽。这很好,但我如何关联这些输出以推断 PCI 类型和版本是什么自由的我的服务器中是否有插槽?
我最初尝试假设Handle
数字与输出dmidecode
中的第一列值匹配lspci
,但事实并非如此。有什么想法吗?
编辑
根据 Mark Wagner 的评论,lspci
和之间的数字dmidecode
不匹配,因为lspci
显示的是桥接器的信息,而不是插槽的信息,并且lspci
没有显示任何未使用的插槽的信息。这意味着lspci
对我而言没有用,我的问题仍然相同,但答案可能不会使用lspci
。
答案1
您可以将 dmidecode 与 slot 选项一起使用,如下所示:
$ sudo dmidecode -t slot |grep -A 4 -B 5 可用
句柄 0x0900,DMI 类型 9,17 个字节 系统插槽信息 标识:PCI1 类型:x8 PCI Express 3 x16 当前使用情况:可用 长度:长 ID:1 特性:提供 3.3 V
如果你想检查哪一个正在使用是同一件事:
$ sudo dmidecode -t slot |grep -A 4 -B 5 “正在使用”
句柄 0x0901,DMI 类型 9,17 个字节 系统插槽信息 标识:PCI2 类型:x16 PCI Express 3 当前使用情况:使用中 长度:长 ID:2 特性:提供 3.3 V