在Linux中,有没有办法找出哪个PCI卡插入哪个PCI插槽?

在Linux中,有没有办法找出哪个PCI卡插入哪个PCI插槽?

/ sys / bus / pci / devices /包含许多不是卡的设备(网桥,CPU通道等),我无法在设备目录中find有关插槽映射的任何信息。

您可以使用

dmidecode –t slot 

找到所有可用的PCI插槽比你可以运行

 lspci -s <slot number> 

命令列出连接到指定插槽的设备。 您必须从第一个命令中获取总线地址,并在第二个命令中使用此地址作为参数。

Nebojsa的答案是好的,但是这里有更多的信息和magmabyte的评论的答案。

dmidecode给你的插槽数,但是,这些插槽不是唯一的东西使用PCI桥,这就是为什么你看到更多的设备比插槽。

其次,您可能会看到每个插槽有多个“设备”,但它们可能只是同一个卡上的多个端口。 给你一个使用网络接口卡(NIC)的例子:

 megaman@someserver $ lspci | grep 10Gb 07:00.0 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02) 07:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02) 

dmidecode表示这台服务器有三个插槽(和它)。 插槽1有上面的10Gb网卡(可以看到它有2个端口),插槽2有一个光纤通道卡(也恰好有2个端口),最后插槽3是空的。

服务器有三个物理插槽,一个是空的,两个是多端口卡(一个HBA和一个NIC)。

在评论中回答你的问题,你有3个插槽是由dmidecode指示的,他们很可能填充多端口接口卡。