ヤフオクやebayで安価に買える高速なNIC、Mellanox connectXシリーズ。
SFP+(10Gbps)やQSFP+(40Gbps)が4000円弱で購入できる。すごい。
さらに一般的な10GbpsのRJ45よりも省電力(6W弱、15W前後が多いRJ45の約半分)。
今回は正規品のファームウェアアップデートに加え、更新の止まったOEM用ファームウェア(Dell、HP、IBM)のアップデート法をメモ。
#1. 正規品のアップデート(一般的な方法)
##1.1 ファームウェア用ソフトの入手とインストール
https://jp.mellanox.com/page/management_tools
OS等を選んでファームウェアの書き込みソフトをダウンロードする。
windowsの場合は.exeファイルの実行し、✕のついている項目も含め、全項目をインストールする。Linuxの場合は解凍したフォルダで下記を実行。
./install
##1.2 ファームウェアの入手
NICに合わせて選択する必要がある。
https://jp.mellanox.com/page/firmware_download
OEM版のアーカイブ(IBM)
https://jp.mellanox.com/page/firmware_table_IBM_archive?ssn=ricrc9ac56alf8lpf6c3ab1551
今回はConnectx3 Proの最新版にした。
mt4099_pci_cr0 -i fw-ConnectX3Pro-rel-2_42_5000-MCX353A-FCC_Ax-FlexBoot-3.4.752.bin
解凍して生成先のフォルダに移動。
##3. NICの名称確認とファームウェアの更新
管理者権限でコマンドプロンプトやbashなどCLI環境で下記を入力する。
(mst startはwindowsだと不要)
mst start
mst status
例
この場合、NICの名前は下記になる。尚、WindowsでLinux形式のフルパス表記でも問題なく動く。
Windows: mt4099_pci_cr0
Linux: /dev/mst/mt4099_pci_cr0
ファームウェアを解凍したフォルダへ移動して下記コマンドでファームウェアのアップデートを実施する。
flint -d NICの名前 -i ファームウェアのファイル burn
例
flint -d mt4099_pci_cr0 -i fw-ConnectX3Pro-rel-2_42_5000-MCX353A-FCC_Ax-FlexBoot-3.4.752.bin burn
ファームウェアの種類が間違っている場合はPSIDのエラーが出る。
この場合、ファームウェアを適切な物に変更する必要がある。
##参考
https://jp.mellanox.com/page/firmware_NIC_FW_update
- ※ ただし、中古安価にで流れているConnectXのOEM版(Dell、HP、IBM等)はこの方式で適用可能なファームウェアの更新が途中で止まっている。そこで、別な方法でファームの書き換えを行う。
#2. OEM製品のアップデート(Dell、HP、IBM等)
##2.1 ファームウェア書き込みソフトの入手
https://jp.mellanox.com/page/management_tools
OS等を選んでファームウェアの書き込みソフトをダウンロードする。
windowsの場合は.exeファイルの実行、Linuxの場合は解凍したフォルダで下記を実行。
./install
##2.2 共通ファームの入手(2.40.5030)
通常版(直リンク)
http://content.mellanox.com/firmware/ConnectX3-rel-2_40_5030.tgz
Pro版(直リンク)
http://content.mellanox.com/firmware/ConnectX3Pro-rel-2_40_5030.tgz
ボードの種類(通常版またはPro版)に相当する方を選択、ダウンロードして解凍後、解凍先へ移動する。
##2.3 バックアップと書き込み
###2.3.1 デバイス名の取得
mst status
例
この場合、NICの名前は下記になる。尚、WindowsでLinux形式のフルパス表記でも問題なく動く。
Windows: mt4099_pci_cr0
Linux: /dev/mst/mt4099_pci_cr0
以下、適宜NICの名前は書き換えて使用すること。
###2.3.2 ファームウェアと設定のバックアップ
flint -d mt4099_pci_cr0 ri orig_firmware.bin
flint -d mt4099_pci_cr0 dc orig_firmware.ini
###2.3.3 修正ファームウェアの作成と修正ファームのチェック
通常版 fw-ConnectX3-rel.mlx
Pro版 fw-ConnectX3-relPro.mlx
mlxburn -fw fw-ConnectX3-rel.mlx -conf orig_firmware.ini -wrimage newFW.bin
flint -i newFW.bin verify
###2.3.4 ファームウェアの書き込み
flint -d mt4099_pci_cr0 -i newFW.bin -allow_psid_change burn
終わったら再起動。
###2.3.4 現在のセッティングや状況の確認
mlxconfig -d mt4099_pci_cr0 query
mlxburn -d mt4099_pci_cr0 -vpd
これで、2.40.5030までバージョンが上がる。
修正ファームウェアを作る際、orig_firmware.iniのPSIDを相当する製品のPSIDに書き換えれば、最新版へのファーム書き換えも可能になる(確認済み)。
#例 IBMのOEM製品でPSIDを変更
#修正前
[ADAPTER]
PSID = IBM1100110019
#修正後
[ADAPTER]
PSID = MT_1100120019
#####カードの対応表
Mellanox版の名称
http://www.vgi.co.jp/prod/Mellanox/connectx.html
PSIDは下記で調べる
https://jp.mellanox.com/page/firmware_table_ConnectX3IB
##参考
https://forums.servethehome.com/index.php?threads/dell-mellanox-connectx-3-to-arista-7050-no-link.18369/#post-178015