省流
如果你会刷 Mellanox 固件,就是直接从官网 ATTO Networking Suite 中提取FastFrame N322固件 fw_FFN322_xx.xxxx.bin 或者 云盘 。然后直接 flint 配 --allow_psid_change 强刷就行了。
正文
前言
macOS 从 Ventura 起自带 AppleEthernetMLX5,所有的MLX5(也就是大于 ConnectX-4 Lx )的卡插上去就能。但这个原生驱动把 MTU 卡在 ~2034。
但是 ATTO 在售的同样 CX4/CX5 的卡搭配 ATTO 自己的驱动是能支持巨帧(MTU 9000)的。考虑到CX4/5一堆卡都是一个芯片通刷固件,所以思路就很直接:让公版卡用 ATTO 固件以及 ATTO 的 macOS 驱动就认它。
核心
从安装包里的驱动扒开看 Info.plist(kext 和 dext 内容一致):
IOPCISecondaryMatch = "0x00AF117C 0x00B0117C 0x00B1117C 0x00B2117C 0x00B4117C 0x40B7117C 0x40B8117C"IOPCITunnelCompatible = trueIOPCISecondaryMatch 匹配的就是 PCI subsystem id(设备号 + 厂商号)。0x00B4117C 就是 N322——subsystem device 0x00B4、subsystem vendor 0x117C(ATTO)。它不看主 device id、也不看 MAC,只认这个 subsystem id。顺带 IOPCITunnelCompatible = true,说明走雷电隧道也照绑,雷电坞里没问题。
所以只要让公版卡的 subsystem id 变成 117c:00b4 就行。所以思路是要不 patch 一下公版固件,要不直接刷 ATTO 的 N322 固件。
考虑到 Mellanox 这个卡可以随便刷固件,并且很好救卡,那肯定是直接日一下 ATTO 的 NS322固件
关于 MAC 的一个坑:网上 ConnectX-3 时代的教程会说刷完 MAC 变
00:00:00:00:00:00,因为老驱动从固件镜像之外读 MAC。CX-4 没这问题——ATTO 的 CX-4 固件镜像里根本没带 MAC,走标准 FS3 device-data,刷的时候原 MAC 自动保留。
刷固件
准备
- 一台 Linux(Windows也差不多),装好 MFT(
mst/flint/mlxconfig),把公版卡插上 - 任意 ConnectX-4 Lx
掏固件
去官网下 ATTO Networking Suite 的 Linux 包,解开后,固件在 firmware/ 目录。.bin 的是 ConnectX-4 代(FS3 镜像),.pkg 的是 CX-5/6 代:
或者 云盘
fw_FFN322_32.1010.bin # FastFrame N322,双口 25G x8 ← 要的就是它fw_TLNS3252_32.1010.bin # ThunderLink NS3252,雷电款 x4刷之前确认固件跟卡对得上:
flint -i fw_FFN322_32.1010.bin q # PSID = ATT000000007flint -i fw_FFN322_32.1010.bin dc | grep -iE 'prs_name|subsystem|sub_vendor'# prs_name = cx4-lx_MCX4121A_2p_x8_25g.prs ← 跟公版 MCX4121A 同一份# sub_vendor_id = 0x117C# subsystem_id = 0x00B4prs_name 一致是关键,说明这份固件就是给这块硬件做的。
刷
先备份再刷:
mst startmst status # ConnectX-4 Lx → /dev/mst/mt4117_pciconf0DEV=/dev/mst/mt4117_pciconf0
flint -d $DEV ri backup_orig.bin # 整镜像备份,务必留好flint -d $DEV q full | tee orig_ids.txt # 记下 GUID / MAC
flint -d $DEV -i fw_FFN322_32.1010.bin --allow_psid_change burn# PSID 从 MT_... 变成 ATT...,所以必须 --allow_psid_change# 失败安全模式会自动保留 GUID/MAC;若提示 ROM 不符,再加 --allow_rom_change验证
flint -d $DEV q | grep PSID # PSID: ATT000000007 ✓刷完需要 Reset ,需要重启或者用mlxfwreset -d /dev/mst/mt4117_pciconf0 reset 直接重置
mlxconfig -d /dev/mst/mt4117_pciconf0 query可以看到描述就是 ATTO N322
Device #1:----------
Device type: ConnectX4LXName: MCX4121A-ATTO_AxDescription: ATTO FastFrame N322 network interface card(ConnectX-4 Lx EN); 25GbE dual-port SFP28; PCIe3.0 x8; ROHS R6Device: /dev/mst/mt4117_pciconf0上 macOS
把卡接到 Mac(我走雷电坞),装上 ATTO Networking Suite 的驱动 (记得同意ATTO加载系统)。在 系统信息.app 的以太网里检查一下ATTOFastFrame3 加载、Jumbo Frame 就能开了。

