在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
指示的,他们很可能填充多端口接口卡。