Pci
辨識提供網路介面的 PCI 設備
我可以使用以下方法獲取提供網路介面的設備的供應商和設備 ID
/sys/class/net/
:$ cat /sys/class/net/p4p2/device/vendor /sys/class/net/p4p2/device/device 0x15b3 0x1013
然後我可以
lspci
向我展示有關該設備的資訊:$ lspci -d 0x15b3:0x1013 82:00.0 Infiniband controller: Mellanox Technologies MT27700 Family [ConnectX-4] 82:00.1 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
所以它是雙埠。在這種情況下,我碰巧知道該設備
p4p2
是乙太網端,但是是否有/sys/class/net/<dev>
將其連結到82:00.1
條目的資訊?或者其他不需要的方式sudo
?
嘗試
realpath /sys/class/net/<dev>
或realpath /sys/class/net/<dev>/device
。這些應該是指向 的符號連結
/sys/devices/...
,並且目標路徑應該包括 PCI ID。如果您只需要 PCI ID 部分,請嘗試:
basename $(realpath /sys/class/net/<dev>/device)
關於 Mellanox HCA
lspci
如果不sudo
使用您的 pci 地址,您可以探勘的資訊不多:
sudo lspci -s 82:00.0 -vvv
將為您提供 HCA 元件號、序列號、PCI 匯流排寬度等等大多數與驅動程序相關的資訊位於
/sys/bus/pci/devices/<pci_addr>/infiniband>
您還可以使用lshca實用程序。它向您展示了很多有用的資訊
來自Wiki的範例:
#lshca --------------------------------------------------------------------------------------------------- Dev #1 Desc: Mellanox Technologies MT27800 Family [ConnectX-5] PN: MCX556A-ECAT rev. A3 PSID: MT_0000000008 SN: MT............. FW: 16.28.2006 Tempr: 45 --------------------------------------------------------------------------------------------------- PCI_addr | RDMA | Net | Numa | IpStat | Link | Rate | LnkCapWidth | LnkStaWidth | HCA_Type --------------------------------------------------------------------------------------------------- 0000:81:00.0 | mlx5_2 | ib2 | 1 | up_ip4 | IB | 100 | x16 G3 | x8 >!< | MT4119 0000:81:00.1 | mlx5_3 | p2p2 | 1 | up_ip46 | Eth | 100 | x16 G3 | x8 >!< | MT4119 ---------------------------------------------------------------------------------------------------
免責聲明,我是
lshca
作者