Supermicro
是否可以使用 Mellanox 的更新韌體更新 Supermicro ConnectX-3 韌體?
我有一台裝有X9DRT-HIBFF主機板的 Supermicro 伺服器。
它具有基於 Mellanox 的 ConnectX-3 晶片組的板載 Infiniband。
Supermicro 提供韌體版本 2.10.0700,不幸的是它不支持 SR-IOV,它太舊了。儘管晶片組和 BIOS 確實支持這一點。
Mellanox 的較新韌體支持此功能。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 板上嗎?如果是這樣,我將如何選擇刻錄哪一個?
查看此韌體表,相應的韌體連結到一個略有不同的 ZIP 文件。這些描述幾乎都與相同的供應商元件 ID 4099 相同。它們之間的唯一區別是名稱和 PSID。我的 PSID 是:SM_2191000001000 這與預期的任何一個都不同,因為它來自 Supermicro。
- 下載韌體並解壓
- 從 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
- 從目前韌體中提取生成新韌體所需的 ini 文件。這將包括正確的 PSID。
mstflint -d $PCIBUS dc > myinifile.ini
將 $PCIBUS 變數更改為您的卡所連接的 PCI 匯流排(即 04.00.0)
- 在下面添加“sriov_en = true”行
$$ HCA $$ini 文件的部分 5. 像這樣生成你的韌體(我為 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
- 在卡中安裝新韌體
mlxfwmanager -u -d $PCIBUS -i fw-ConnectX2-rel-sriov-enabled.bin -f