是否可以使用Mellanox的新固件更新Supermicro ConnectX-3固件?

我有安装了X9DRT-HIBFF主板的Supermicro服务器。

它具有基于Mellanox ConnectX-3芯片组的板载Infiniband。

Supermicro提供固件版本2.10.0700,不幸的是它不支持SR-IOV,太旧了。 虽然芯片组和BIOS确实支持这一点。

来自Mellanox的较新固件启用此function。 Mellanox本身为一些OEM合作伙伴提供固件,但不提供Supermicro的固件。

ibv_devinfo显示:

$ sudo ibv_devinfo hca_id: mlx4_0 transport: InfiniBand (0) fw_ver: 2.10.700 node_guid: 0025:90ff:ff17:5724 sys_image_guid: 0025:90ff:ff17:5727 vendor_id: 0x02c9 vendor_part_id: 4099 hw_ver: 0x0 board_id: SM_2191000001000 phys_port_cnt: 1 port: 1 state: PORT_DOWN (1) max_mtu: 4096 (5) active_mtu: 4096 (5) sm_lid: 0 port_lid: 0 port_lmc: 0x00 

所以问题是,Mellanox固件可以烧到这个OEM板上吗? 如果是这样,我将如何select哪一个烧?

查看这个固件表 ,相应的固件链接到一个略有不同的ZIP文件。 这些描述几乎都与4099相同的供应商部件ID相同。它们之间的唯一区别是名称和PSID。 我的PSID是:SM_2191000001000这是不同于任何预期的,因为它来自Supermicro。

  1. 下载固件并解压缩

  2. 从Mellanox下载一些工具,并安装相应的deb文件,以获得Ubuntu安装中的“mlxburn”实用程序。

     wget http://www.mellanox.com/downloads/MFT/mft-3.1.0-8.tgz tar xzvf mft-3.1.0-8.tgz cd mft-3.1.0-8/DEBS/ dpkg -i mft-3.1.0-8.amd64.deb 
  3. 从当前固件中提取生成新固件所需的ini文件。 这将包括正确的PSID。

     mstflint -d $PCIBUS dc > myinifile.ini 

将$ PCIBUSvariables更改为您的卡连接的PCI总线(即04.00.0)

  1. 在ini文件的[HCA]部分下添加“sriov_en = true”行

  2. 像这样生成你的固件(我testing了ConnectX2的这个命令):

     mlxburn -fw fw-ConnectX2-rel.mlx -exp_rom FlexBoot-3.4.112/ConnectX_Flexboot_4099_ROM-3.4.112.mrom -conf myinifile.ini -wrimage fw-ConnectX2-rel-sriov-enabled.bin 
  3. 在卡中安装新的固件

      mlxfwmanager -u -d $PCIBUS -i fw-ConnectX2-rel-sriov-enabled.bin -f