如何在 Linux shell 中检查空闲 PCI 插槽的 PCI 类型和版本

如何在 Linux shell 中检查空闲 PCI 插槽的 PCI 类型和版本

我知道如何检查我的服务器上有多少个 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

相关内容