In Linux, is there a way to find out which PCI card is plugged into which PCI slot?

为君一笑 提交于 2020-01-01 08:11:11

问题


In Linux, is there a way to find out which PCI card is plugged into which PCI slot?

/sys/bus/pci/devices/ contains many devices (bridges, CPU channels, etc.) that are not cards and I was not able to find any information about slot-card mappings in the device directories.


回答1:


You can use

dmidecode –t slot

to find all available pci slots than you can run

lspci -s <slot number>

command to list device connected to specified slot. You must take bus address from first command and use this address as parameter in second command.




回答2:


Nebojsa's answer is good, but here's a little more information and an answer to magmabyte's comment.

dmidecode gives you the number of slots, however, those slots are not the only things using the PCI bridge which is why you see many more devices than slots.

Secondly, you may see multiple "devices" per slot, but they are likely just multiple ports on the same card. To give you an example using network interface cards (NICs):

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 indicates that this server has three slots (and it does). Slot 1 has the 10Gb NIC above (you can see that it has 2 ports), slot 2 has a fibre channel card (which also happens to have 2 ports), and finally slot 3 is empty.

There are three physical slots in the server, one is empty, two are filled with multi port cards (an HBA and a NIC).

To answer your question in the comment, the 3 slots you have are the ones indicated by dmidecode and they are likely populated with multi port interface cards.



来源:https://stackoverflow.com/questions/25908782/in-linux-is-there-a-way-to-find-out-which-pci-card-is-plugged-into-which-pci-sl

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!