升級變更 Mellanox ConnectX-2 的韌體 Firmware

為了升級家中的網路,特別找了幾片便宜的二手10Gb網路卡, 其中有採用 SFP+連接的Mellanox ConnectX-2 , 這款網路卡稍有年紀, 韌體已經不再更新, 其中它採用iPXE修改而來的FlexBoot更是缺少許多功能, 特別花了點時間更新它的韌體。如果拿到手可以用, 不用什麼特別的功能, 如 PXE網路開機或是Windows Server RMDA等功能, 當然就不用花時間升級。

更新官方韌體
到手的幾張卡, 有一張版本較舊就升級吧!

**** 警告 : 以下的操作不小心會讓卡不正常, 有任何問題請找專業人士處理, 筆者概不負責 ****

升級方式如下:
a.自官方網站下載最新版韌體與工具程式

MNPA19-XSR/XTR Firmware — http://www.mellanox.com/page/firmware_table_ConnectX2EN
Firmware 更新程式 MFT — http://www.mellanox.com/page/management_tools
請依照自己的環境選擇, 個人是使用 Ubuntu Linux, 因此選擇 DEB 封裝下載再安裝, 以下的命令也是以 Linux 環境為主, Windows的命令也差不多.

b.執行工具程式升級
安裝好MFT之後, 先執行 MST 服務, 不論查詢或是更新韌體, 此程式一定要先執行
sudo mst start
出現以下畫面表示成功
Starting MST (Mellanox Software Tools) driver set
Loading MST PCI module – Success
Loading MST PCI configuration module – Success

查詢網卡系統裝置名稱
sudo mst status
MST modules:
————
MST PCI module loaded
MST PCI configuration module loaded

MST devices:
————
/dev/mst/mt26448_pciconf0 – PCI configuration cycles access.
domain:bus:dev.fn=0000:01:00.0 addr.reg=88 data.reg=92
Chip revision is: B0
/dev/mst/mt26448_pci_cr0 – PCI direct access.
domain:bus:dev.fn=0000:01:00.0 bar=0xf7200000 size=0x100000
Chip revision is: B0

可以看到這片卡在系統中的資訊, 最重要就是 device 名稱, 即 /dev/mst/mt26448_ 開頭, 若系統中有多張卡時才會分辨。

查詢網路卡的相關資訊
sudo flint -d /dev/mst/mt26448_pci_cr0 query
Image type: FS2
FW Version: 2.9.1200
Rom Info: type=PXE version=3.3.400 proto=VPI
Device ID: 26448
Description: Port1 Port2
MACs: 0002c952xxxx 0002c952xxxx
VSD:
PSID: MT_0F60110010

可以看到Firmware 版本(FW Version), PXE ROM版本(Rom Info), 以及 PSID (MT_0F60110010表示Mellanox自有品牌的ConnectX-2)

如果要更新或回復 Firmware 執行以下命令 (fw-ConnectX2-rel-2_9_1200-MNPA19_A1-A3-FlexBoot-3.3.400.bin為 Firmware檔案, 也是官方最新的一版)
sudo flint -d /dev/mst/mt26448_pciconf0 -i fw-ConnectX2-rel-2_9_1200-MNPA19_A1-A3-FlexBoot-3.3.400.bin burn

更新後可再用
sudo flint -d /dev/mst/mt26448_pci_cr0 query查詢看看

用HP驅動程式中升級韌體支援Windows Server RDMA
*請不要使用HP韌體,刷完後可能重開幾次網卡就進入Recovery mode 無法救回*
原本網卡上的韌體並不支援Windows Server RDMA功能, 傳輸性能受限, 還好國外有神人找到更新的版本可以更新使用。
先到以下網站下載程式
Hewlett Packard Enterprise 支援中心

建議在沒有安裝過 Mellanox 驅動程式的電腦中執行, 若是使用Windows 10內建驅動程式, 執行後會被取代但網路變無法使用. 若安裝過Mellanox官方驅動程式, 安裝程式則無法執行.
執行程式後先留在安裝畫面, 然後到暫存目錄(通常是 Users->帳號名->AppData->Local->Temp->{4XXXX….)中找到二個檔案
fw-ConnectX2-rel.mlx
MNPA19_A1-A2.ini

複製到別的地方後就可以結束安裝程式, 再將二個檔案儲存至有網卡的伺服器中

到伺服器上先用工具程式合併二個檔案成一個 firmware 檔案
sudo mlxburn -fw ./fw-ConnectX2-rel.mlx -conf ./MNPA19_A1-A2.ini -wrimage firmware_image.bin

再將它寫入網卡中
sudo flint -d /dev/mst/mt26448_pci_cr0 -i firmware_image.bin burn
Current FW version on flash: 2.9.1200
New FW version: 2.10.0720
Burning FS2 FW image without signatures - OK
Restoring signature - OK

成功後韌體便會更新至 2.10.0720
sudo flint -d /dev/mst/mt26448_pci_cr0 query
Image type: FS2
FW Version: 2.10.0720
FW Version(Running): 2.9.1200
FW Release Date: 12.3.2012
Rom Info: N/A (-E- Cannot get ROM version. Signature not found.)
Device ID: 26448
Description: Port1 Port2
MACs: 0002c952xxxx 0002c952xxxx
VSD:
PSID: MT_0F60110010

升級FlexBoot

最新版韌體中包含 3.3.400 的FlexBoot, 在官網上可以找到 3.4.000版本, 不過還是比較舊版的iPXE, 執行現有的網路開機選單會有問題, 做為伺服器用網路開機的機會不大, 不一定要更新, 但是如果想要用 PXE網路開機, 建議更新

下載最新版的iPXE
git clone git://git.ipxe.org/ipxe.git
b.編譯專用的 ROM版(Linux系統請安裝必要程式gcc/make/lzma等), 請先確認網路卡的VID:DID, ConnectX-2為 15b3:6750
查詢 VID/DID 可用
sudo lspci -nn
找到網卡相關資訊
01:00.0 Ethernet controller [0200]: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] [15b3:6750] (rev b0)
[15b3:6750]即是網卡的 VID(15b3)與DID(6750)

接下來便是編譯iPXE ROM
cd ipxe/src
make bin/15b36750.mrom

沒問題的話便會在 ipxe/src/bin 目錄中產生 ROM檔[15b36750.mrom]

c.使用工具程式燒錄, 請在 ROM檔的目錄中執行, 不然就要在命令中寫上完整路徑
sudo flint -d /dev/mst/mt26448_pci_cr0 --allow_rom_change brom ./15b36750.mrom

再查詢網卡資訊
sudo flint -d /dev/mst/mt26448_pci_cr0 query
Image type: FS2
FW Version: 2.10.0720
FW Release Date: 12.3.2012
Rom Info: N/A (-E- Cannot get ROM version. Signature not found.)
Device ID: 26448
Description: Port1 Port2
MACs: 0002c952XXXX 0002c952XXXX
VSD:
PSID: MT_0F60110010

由於是自己編譯的 PXE ROM, 因此看不到版本名稱與簽署資訊

重新開機並選擇網路開機看是否正常
開機時可以看到PXE ROM已經成 iPXE, 而不是 FastBoot

可看到Server提供的開機選單表示執行無誤

Leave a comment

Your email address will not be published.


*


這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料