Pci

辨識提供網路介面的 PCI 設備

  • April 10, 2021

我可以使用以下方法獲取提供網路介面的設備的供應商和設備 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作者

引用自:https://unix.stackexchange.com/questions/607818