找回密码
 加入我们
搜索
      
查看: 1137|回复: 20

[网络] 成功将双口万兆Mellanox CX312C网卡从EMC版固件刷成Mellanox原厂固件

[复制链接]
发表于 2025-10-10 15:40 | 显示全部楼层 |阅读模式
本帖最后由 tedaz 于 2025-10-10 15:40 编辑

第一部分:网卡外观

先上网卡外观:双口SFP+,半高,PCIE 3.0 x8。

电路板分别为2021年49周、2022年13周制造;网卡2022年3月、5月制造。

标签显示CX312C,Mellanox 2x10Gb Ethernet CNA,部件号105-000-855-00,以色列制造。

20251010_095849.jpg

20251010_095916.jpg

20251010_095944.jpg

第二部分:环境

工作环境:超微Supermicro X10SRi-F主板,E5-2697v3,网卡插在CPU PCIE 3.0 x8插槽上。Windows Server 2016。

安装Nvidia的WinMFT_x64_4_22_1_11.exe,这是最后一版完整支持旧网卡ConnectX3Pro的MFT,更新的版本会有些功能无法使用。

所有命令均使用Windows Server 2016命令行运行,需要管理员权限。
(Linux的命令和参数写法略有不同,不要搞混了。)

第三部分:强制刷新固件,从EMC刷为Mellanox

运行命令mst status,网卡设备列表
  1. mst status
  2. MST devices:
  3. ------------
  4.   mt4103_pci_cr0
  5.   mt4103_pciconf0
复制代码

后续命令使用“mt4103_pci_cr0”即可访问这个CX312C网卡。

用mlxfwmanager命令查看固件信息
  1. mlxfwmanager
  2. Querying Mellanox devices firmware ...

  3. Device #1:
  4. ----------

  5.   Device Type:      ConnectX3Pro
  6.   Part Number:      105-000-855-00_Ax
  7.   Description:      Mellanox 2x10Gb Ethernet CAN
  8.   PSID:             EMC0000000002
  9.   PCI Device Name:  mt4103_pci_cr0
  10.   Port1 MAC:        08c0eb0bc690
  11.   Port2 MAC:        08c0eb0bc691
  12.   Versions:         Current        Available
  13.      FW             2.40.5030      N/A
  14.      PXE            3.4.0746       N/A

  15.   Status:           No matching image found
复制代码

可以看到PSID=EMC0000000002,这是EMC的网卡。实测戴尔驱动、戴尔固件无法适配。
而且固件版本只有2.40,低于Nvidia官网的最新版2.42。

从Nvidia官方网站下载ConnectX3Pro的最新固件:fw-ConnectX3Pro-rel-2_42_5000-MCX312C-XCC_Ax-FlexBoot-3.4.752.bin
运行下述flint命令,忽略PSID,强制刷为Mellanox官方最新的2.42固件,并将PSID改为Mellanox。
  1. flint -d /dev/mst/mt4103_pci_cr0 -i  fw-ConnectX3Pro-rel-2_42_5000-MCX312C-XCC_Ax-FlexBoot-3.4.752.bin -allow_psid_change burn
复制代码

snapshot 2025-10-10 12 52 57.png
注意:“-allow_psid_change”将允许刷入任何型号的任何固件,刷写前请备份固件及固件配置,并确保型号正确,否则有变砖风险。
刷新完成后,需要将电脑断电冷启动,以完成网卡固件更新。

重启后,再次验证固件信息:
  1. mlxfwmanager
  2. Querying Mellanox devices firmware ...

  3. Device #1:
  4. ----------

  5.   Device Type:      ConnectX3Pro
  6.   Part Number:      MCX312C-XCC_Ax
  7.   Description:      ConnectX-3 Pro EN NIC; 10GbE; dual-port SFP+; PCIe3.0 x8 8GT/s; RoHS R6; hardware revision C
  8.   PSID:             MT_2340111023
  9.   PCI Device Name:  mt4103_pci_cr0
  10.   Port1 MAC:        08c0eb0bc690
  11.   Port2 MAC:        08c0eb0bc691
  12.   Versions:         Current        Available
  13.      FW             2.42.5000      N/A
  14.      PXE            3.4.0752       N/A

  15.   Status:           No matching image found
复制代码

可以看到PSID已经变更为MT_2340111023,同时描述信息也变成了Mellanox的官方写法。并且mac地址是会被完美保留的,并不会破坏mac地址。

运行flint命令查看网卡信息
  1. flint -d /dev/mst/mt4103_pci_cr0 -qq q
  2. Image type:            FS2
  3. FW Version:            2.42.5000
  4. FW Release Date:       5.9.2017
  5. Product Version:       02.42.50.00
  6. Rom Info:              type=UEFI version=skipped cpu=skipped
  7.                        type=PXE  version=skipped devid=skipped cpu=skipped
  8.                        type=NVMe version=skipped devid=skipped cpu=skipped
  9. Device ID:             4103
  10. Description:           Node             Port1            Port2            Sys image
  11. GUIDs:                 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
  12. MACs:                                       08c0eb0bc690     08c0eb0bc691
  13. VSD:
  14. PSID:                  MT_2340111023
复制代码

可以看到GUID全部变成“f”了,如果希望美观,可以用下面的办法来更新GUID。

运行flint命令更新GUID,使得GUID跟mac地址一致
  1. flint -d /dev/mst/mt4103_pci_cr0 -guid 00008c0eb0bc690 sg
复制代码

这样更新后,GUID就有信息了。

如果需要修改mac地址,可以运行下面的命令
  1. flint -d /dev/mst/mt25418_pci_cr0 -mac 02c90abcdef0 sg
复制代码

此命令可以将网卡地址改为02c90abcdef0。
flint命令还有很多参数,可以修改很多信息和功能,有兴趣可以阅读flint命令的帮助信息。

第四部分:禁用CX312C的启动、PXE功能并删除Boot ROM
运行下面四条mlxconfig 命令,禁用端口1、端口的网卡引导功能
  1. mlxconfig -d /dev/mst/mt4103_pci_cr0 set BOOT_OPTION_ROM_EN_P1=false
  2. mlxconfig -d /dev/mst/mt4103_pci_cr0 set BOOT_OPTION_ROM_EN_P2=false
  3. mlxconfig -d /dev/mst/mt4103_pci_cr0 set LEGACY_BOOT_PROTOCOL_P1=0
  4. mlxconfig -d /dev/mst/mt4103_pci_cr0 set LEGACY_BOOT_PROTOCOL_P2=0
复制代码

运行flint命令删除boot rom。这样开机时就不会提示网卡rom的信息拖慢启动速度了。
反正用不到LC双纤网卡的网络引导功能,直接将boot rom删除可以加快启动速度。
这个命令是安全的,不会影响网卡的正常功能。
  1. flint -d /dev/mst/mt4103_pci_cr0 --allow_rom_change drom
复制代码

第五部分:备份EMC原厂固件(可选)
运行flint命令备份网卡的EMC原厂固件
  1. flint -d /dev/mst/mt4103_pci_cr0 ri orig_firmware.bin
复制代码


运行flint命令备份网卡的固件中的配置信息
  1. flint -d /dev/mst/mt4103_pci_cr0 dc orig_firmware.ini
复制代码

运行flint命令,刷回原厂固件
  1. flint -d /dev/mst/mt4103_pci_cr0 -i orig_firmware.bin -allow_psid_change burn
复制代码

番外
实际上还可以自己用Nvidia固件,加上备份出来的ini文件,来自己定制一个EMC版的固件,这样可以在EMC没有提供更新固件,但Nvidia提供更新固件的时候,用来升级网卡并保留EMC信息。
先从Nvidia官网下载ConnectX3Pro-rel-2_40_5030.tgz,解压得到fw-ConnectX3pro-rel.mlx。
然后运行mlxburn来使用Nvidia固件制作EMC固件:
  1. mlxburn -fw fw-ConnectX3pro-rel.mlx -conf orig_firmware.ini -wrimage newFW.bin
复制代码

运行flint命令,验证生成的固件
  1. flint -i newFW.bin verify
复制代码

运行flint命令,刷新自己制作的EMC版固件
  1. flint -d /dev/mst/mt4103_pci_cr0 -i newFW.bin -allow_psid_change burn
复制代码


最后,感谢Mellanox倒闭破产,感谢Nvidia收购Mellanox,感谢10G、40G/56G标准彻底被淘汰……
让我们现在可以在家里用十几元、几十元人民币体验10G、40G/56G光纤网络。

评分

参与人数 1邪恶指数 +5 收起 理由
猪圈 + 5

查看全部评分

发表于 2025-10-10 21:05 | 显示全部楼层
造福小白~
发表于 2025-10-10 22:23 | 显示全部楼层
专业,到现在,还没有体验过万兆速度的飘过
发表于 2025-10-10 22:29 | 显示全部楼层
新房准备装修,感谢大佬!
发表于 2025-10-10 22:38 | 显示全部楼层
这个牌子的卡和X520 X540之类的有什么区别啊?
 楼主| 发表于 2025-10-10 23:16 | 显示全部楼层
增强还是恢复 发表于 2025-10-10 22:38
这个牌子的卡和X520 X540之类的有什么区别啊?

最主要是便宜,非常的便宜,而且存世量极大。CX312C已经降到几十元了。

所有mellanox配合廉价的mikrotik交换机(比如CRS305,CRS309)就可以直接开启RoCE/RDMA。

mellanox的网卡都可以随便刷固件,oem版刷通用版,通用版刷oem版;甚至以太网和IB也可以互刷。

intel的应该价格要贵一些,温度更高,不支持固件随便刷,不支持RoCE/RDMA,不能以太网IB互刷……
发表于 2025-10-10 23:21 | 显示全部楼层
增强还是恢复 发表于 2025-10-10 22:38
这个牌子的卡和X520 X540之类的有什么区别啊?

X520是pcie2.0的吧
 楼主| 发表于 2025-10-10 23:21 | 显示全部楼层
打开的门 发表于 2025-10-10 22:29
新房准备装修,感谢大佬!

装修的话,可以考虑全屋布线“蝶形光纤”俗称皮线,用四芯蝶形光纤,每个房间穿两根四芯蝶形光纤,再穿一根六类或者非屏蔽超六类。

各个房间均安排一个“光纤终端盒”,很便宜,可以安装在86暗盒上面,直接用LC跳线就可以接网卡或者交换机。

主力交换机可以用CRS309,各个房间可以用CRS305,CRS305支持PoE。这样各个房间都有光纤覆盖,可以光纤直连,也可以万兆交换机连接。很多年都不会过时,可玩性高。

同时,四芯皮线用光纤盒导出成LC接头后,可以直接使用40G网卡。现在40G网卡也已经降到几十元了。40G静音交换机12口的只要2K。

皮线可以玩各种洋垃圾10G、40;也可以玩高级的25G、100G、400G。

点评

就是专业  发表于 2025-10-11 17:48
发表于 2025-10-10 23:27 来自手机 | 显示全部楼层
又学了,奇奇怪怪的新知识
感谢分享
发表于 2025-10-11 00:46 | 显示全部楼层
看了一下,一年多前在小黄鱼淘的10g网卡是mcx311a ,到目前还没往机器里塞
发表于 2025-10-11 00:56 | 显示全部楼层
技术贴
发表于 2025-10-11 08:43 | 显示全部楼层
tedaz 发表于 2025-10-10 23:21
装修的话,可以考虑全屋布线“蝶形光纤”俗称皮线,用四芯蝶形光纤,每个房间穿两根四芯蝶形光纤,再穿一 ...

这方法好啊
 楼主| 发表于 2025-10-11 09:45 来自手机 | 显示全部楼层
jwongsv 发表于 2025-10-11 00:46
看了一下,一年多前在小黄鱼淘的10g网卡是mcx311a ,到目前还没往机器里塞

我之前用的也是cx311a单口,今年由于更多的折腾大文件,把两个宿主换成了cx312a双口,可以一个口给宿主,另一个口给虚拟化,同时访问的性能显著提高了。

关键的,cx312c的功耗和cx311a几乎一样,满配被动dac。
发表于 2025-10-11 09:48 | 显示全部楼层
mcx网卡性价比贼高,好用推荐,比intel的强多了。
 楼主| 发表于 2025-10-11 09:55 来自手机 | 显示全部楼层
ice0291 发表于 2025-10-11 09:48
mcx网卡性价比贼高,好用推荐,比intel的强多了。

mellanox网卡存世量太大,价格崩了。
然后这东西不挑硬件,不挑模块。不挑系统,一直到win11都能正常安装驱动。
发表于 2025-10-11 17:44 | 显示全部楼层
tedaz 发表于 2025-10-11 09:45
我之前用的也是cx311a单口,今年由于更多的折腾大文件,把两个宿主换成了cx312a双口,可以一个口给宿主, ...

请问板载2.5g网卡换成cx311a或者cx312c后,会降低延时性能么??
发表于 2025-10-11 17:55 | 显示全部楼层
tedaz 发表于 2025-10-11 09:55
mellanox网卡存世量太大,价格崩了。
然后这东西不挑硬件,不挑模块。不挑系统,一直到win11都能正常安装 ...

cx3有win11的驱动吗
 楼主| 发表于 2025-10-11 18:23 来自手机 | 显示全部楼层
brucelee1126 发表于 2025-10-11 17:55
cx3有win11的驱动吗

直接装2019驱动,不需要魔改没有警告,一切正常
 楼主| 发表于 2025-10-11 18:24 来自手机 | 显示全部楼层
jwongsv 发表于 2025-10-11 17:44
请问板载2.5g网卡换成cx311a或者cx312c后,会降低延时性能么??

局域网延迟你不会感觉得到的,即使你是顶级游戏高手,也感觉不到局域网的延迟。公网延迟不会被网卡影响。
发表于 2025-10-11 20:40 | 显示全部楼层
tedaz 发表于 2025-10-10 23:21
装修的话,可以考虑全屋布线“蝶形光纤”俗称皮线,用四芯蝶形光纤,每个房间穿两根四芯蝶形光纤,再穿一 ...

豁然开朗!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-10-13 09:38 , Processed in 0.011373 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表