在这一页, 图 6.1 显示了 PCI 配置示例,具有两条总线。
使用Linux(Ubuntu),是否可以获得实际主板的PCI配置?我的意思是:确定有多少条 PCI 总线,查找是否有 PCI-express 总线和桥接器,这样就可以画出类似于图 6.1 的图。
lspci
给出了 PCI 设备的列表,但似乎没有明确显示连接和总线结构。
答案1
dmidecode
并lshw
共同提供一个合理的图景。dmidecode
,在正确配置的系统上(IE一个具有正确填充的 DMI 表),将列出物理插槽及其特性。例如,在我的系统上,我看到诸如
Handle 0x001C, DMI type 9, 17 bytes
System Slot Information
Designation: SLOT7 PCI-E 2.0 X 1
Type: x1 PCI Express
Current Usage: In Use
Length: Short
ID: 0
Characteristics:
3.3 V is provided
Opening is shared
PME signal is supported
Bus Address: 0000:07:00.0
和
Handle 0x0021, DMI type 9, 17 bytes
System Slot Information
Designation: SLOT1 PCI 33MHz
Type: 32-bit PCI
Current Usage: In Use
Length: Short
ID: 5
Characteristics:
3.3 V is provided
Opening is shared
PME signal is supported
Bus Address: 0000:09:00.0
这些名称可能非常详细;在这个特定的板上,物理插槽和电气功能被正确识别(例如 PCI-E 3.0 X8 (IN X16)
)。
lshw
表示桥连接,其信息可以dmidecode
通过总线地址与 进行匹配。这使得主板托管的桥与适配器托管的桥区分开来。 (例如,我的一个系统在 C226 主板上有两个 PCI 插槽,在主板上使用 PCI 桥;它还有一个 ATTO SCSI PCI Express HBA,它在卡本身的另一个 PCI 桥后面使用两个 PCI 托管芯片的lshw
输出并不容易区分这两种情况,但与dmidecode
的输出结合起来很明显。)