识别提供网络接口的 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

答案1

尝试realpath /sys/class/net/<dev>realpath /sys/class/net/<dev>/device

这些应该是指向 的符号链接/sys/devices/...,并且目标路径应包含 PCI ID。

如果您只需要 PCI ID 部分,请尝试:

basename $(realpath /sys/class/net/<dev>/device)

答案2

关于 Mellanox HCA

lspci如果不sudo
使用 PCI 地址,您无法挖掘太多信息:sudo lspci -s 82:00.0 -vvv将为您提供 HCA 部件号、序列号、PCI 总线宽度等等

大多数驱动程序相关信息位于/sys/bus/pci/devices/<pci_addr>/infiniband>

您还可以使用利什卡公用事业。它向您展示了很多有用的信息

示例来自维基百科:

#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作者

相关内容