首发于KCORES
家用万兆网络指南 6 - 比网线还便宜的双口万兆网卡. 如何给Mellanox网卡刷固件或备份固件

家用万兆网络指南 6 - 比网线还便宜的双口万兆网卡. 如何给Mellanox网卡刷固件或备份固件


看到这玩意没有?25块万兆网卡,而且还能魔改成双口。

这个武林绝学就在这里:

https://www.bilibili.com/video/av96911112www.bilibili.com

这是老铁 @awpak78 的视频. 以下是需要给网卡刷驱动和固件的教程. @awpak78 没有填坑, 于是我来填了.

这个视频中还需要转接卡,转接卡PCB已经开源:

https://github.com/KCORES/OCP2PCIegithub.com

自己定做PCB很简单嘉利创5源PCB打样了解一下. 其余的插座等某宝也有卖.

那些说我带货的,请自重,我要是带货,我发个25块的二手洋垃圾?然后赚几块钱?有这个时间我对着深田咏美搓个火球不好么。

以下是正文,同样适用于你平时操作Mellanox的其他网卡.


驱动, 网卡固件, 刷固件工具

网卡驱动是给操作系统用的, 固件是给网卡用的, 刷固件工具是给网卡刷固件用的. 你都需要.

装网卡驱动

首先装驱动, Windows 下的 Mellanox 网卡的驱动叫 WinOF (适用于 ConnectX3及以下, 如果你魔改OCP卡, 就是这个), WinOF2(ConnextX4及以上). 下载地址在: winof download.

见下图, 拉到网页底下就有这个选项, 选择你的操作系统和操作系统版本. 然后右侧下载. (上面的 Archive Version 还有历史版本, 方便win7啥的用.)


注意你的windows10版本, 如果不确定是1909, 那么右键点击开始菜单windows图标, 选择 系统(Y), 查看你的 windows 10 的子版本. 比如我这就还是1803.


安装驱动一路 Next 即可.

关于安装WinOF2出现故障

注意如果安装WinOF2出现 "MainEngineThread is returning 1603" 错误, 需要停止 windows 的 WMI 服务再试一试.

然后再次安装试一试. 如果还不行, 恭喜你, 重装系统吧.

下载网卡固件

如果你是魔改OCP卡, 单口变双口的, 下载地址在 connectx3en firmware downloads. 如果你是别的Mellanox卡, 请到这里自行选择 firmware-downloads

OCP卡单口变双口(这里注意看你买到的卡型号后缀是XCGN还是XCCN, 以及是312还是342, 我发现大部分老铁买到的都是342,而我那张卡是312. 需要选择正确的刷. 刷卡有风险, 评论区有老铁已经有刷故障的例子了. 请谨慎选择 )选择见下图:


刷固件工具 Flint

刷卡工具这里下载. 固件套件的名称叫 MFT(Mellanox Firmware Tools ), windows 下叫 WinMFT, 下载地址在firmware-tools. 网页下面有选项, 直接选你要的系统和版本就行. (上面的 Archive Version 还有历史版本.)


查看设备名称

用管理员打开命令提示符. 然后输入 mst status -v

c:\>mst status -v
MST devices:
------------
  mt4099_pci_cr0         bus:dev.fn=02:00.0
  mt4099_pciconf0        bus:dev.fn=02:00.0

mt4099_pci_cr0 即当前设备名称. 如果你插了不止一个Mellanox网卡, 可以看上面的bus编号. 如果还是不懂, 那就把其他卡拔掉, 只留一个.

查看当前固件

命令是 flint.bat -d {设备名称} q

例如:

c:\>flint.bat -d mt4099_pci_cr0 q
Image type:            FS2
FW Version:            2.42.5000
FW Release Date:       5.9.2017
Product Version:       02.42.50.00
Rom Info:              type=PXE version=3.4.752
Device ID:             4099
Description:           Node             Port1            Port2            Sys image
GUIDs:                 0002c90300f37bb0 0002c90300f37bb1 0002c90300f37bb2 0002c90300f37bb3
MACs:                                       0002c9f37bb0     0002c9f37bb1
VSD:
PSID:                  MT_1100120019

可以看到固件版本是 2.42.5000, PSID是 MT_1100120019, PSID (Parameter Set ID) 简单来讲可以看作是特定版本的固件签名.

关于PSID的详细信息可以看 Mellanox 的官方文档: Assigning+PSID

如何备份固件

刷新的固件之前备份下总是稳妥的.

备份的命令是flint.bat -d {设备名称} ri {备份出来的固件的文件名称}

c:\>flint.bat -d mt4099_pci_cr0 ri MT_1100120019.bin

对, 没有显示就是备份完成了, 打开文件夹看看应该出现了新文件.

如何刷固件

刷固件的命令是:

flint.bat -d {设备名称} -i {固件文件} b

如果需要强制刷不同型号的固件, 还需要在 b 前面加上 --allow_psid_change, 即:

flint.bat -d {设备名称} -i {固件文件} --allow_psid_change b

如果是魔改OCP卡, 固件文件就是你刚下载那个 fw-ConnectX3-rel-2_42_5000-MCX312A-XCB_A2-A6-FlexBoot-3.4.752.bin.zip, 记得解压缩.

c:\>flint.bat -d mt4099_pci_cr0 -i fw-ConnectX3-rel-2_42_5000-MCX312A-XCB_A2-A6-FlexBoot-3.4.752.bin --allow_psid_change b

    Current FW version on flash: 2.42.5000
    New FW version:              2.42.5000

    Note: The new FW version is the same as the current FW version on flash.

Do you want to continue? (y/n) [n] : y

    You are about tu replace current PSID on FLASH -"MT_1270110023" with a different PSID - "MT_1680110023".
    Note: It is highly recommended not to change the PSID.

Do you want to continue? (y/n) [n] : y

Burning FS2 FW image without signatures - 100%

Burning FS2 FW image without signatures - OK
Restoring signature                     - OK

如果刷不同的固件会提示你有风险(一次版本, 一次PSID都有提示), 需要按y继续. 如果确认继续, 按y即可.

好了, 这就彻底刷完了.

然后重启你的电脑, 试一试你的魔改卡是不是已经可以用了.

编辑于 04-11

文章被以下专栏收录