ConnectX-6 Dx(MT2892/MT4125)的固件自动化更新主要有5 条技术路径,从"全自动零干预"到"手动精确控制"各有适用场景。以下按自动化程度从高到低排列,并给出可直接执行的命令和脚本。
五种自动化更新方式对比
| 方式 | 自动化程度 | 是否需要指定固件文件 | 支持在线下载 | 支持 OEM 卡 | 适用场景 |
|---|---|---|---|---|---|
| ① mlxfwmanager --online | ⭐⭐⭐⭐⭐ 全自动 | ❌ 自动匹配 | ✅ 自动从 NVIDIA 服务器拉取 | ⚠️ 仅标准卡(PSID 以 MT_ 开头) | 单节点/批量节点无人值守 |
| ② mlxup --online | ⭐⭐⭐⭐⭐ 全自动 | ❌ 自动匹配 | ✅ 自动从 NVIDIA 服务器拉取 | ⚠️ 仅标准卡 | 最简操作,无需 MFT 安装 |
| ③ mlnx-fw-updater (开机触发) | ⭐⭐⭐⭐☆ 半自动 | ❌ 自动匹配 | ✅ 依赖已下载的 MFA 包 | ⚠️ 仅标准卡 | 集群统一部署,开机自检更新 |
| ④ mlnxofedinstall --fw-update | ⭐⭐⭐☆☆ 安装时联动 | ❌ 自动匹配 | ✅ 使用 ISO 内嵌固件 | ⚠️ 仅标准卡 | 驱动+固件一起升级 |
| ⑤ mstflint burn + mlxfwreset | ⭐⭐☆☆☆ 手动 | ✅ 必须指定 .bin | ❌ 离线 | ✅ 标准卡+OEM卡(需 --allow_psid_change) | 精确控制版本、OEM 卡、救砖 |
方式 ①:mlxfwmanager --online(推荐,MFT 环境)
这是 MFT 套件提供的官方全自动路径,适合已安装 MFT 的服务器。
# 1. 启动 MST 服务sudomst start# 2. 查询当前固件状态(确认设备名)sudomlxfwmanager--query# 3. 在线自动更新(全自动匹配、下载、烧录)sudomlxfwmanager--online-u-y# 4. 激活新固件(CX-6 Dx 支持热重置,无需重启)sudomlxfwreset-d/dev/mst/mt4125_pciconf0 reset-y# 5. 验证sudomlxfwmanager--query输出示例:
Device #1: Device Type: ConnectX6DX PSID: MT_0000000353 Versions: Current Available FW 22.30.0001 22.36.1010 Status: Update required ... Device #1: Updating FW ... Done方式 ②:mlxup --online(最轻量,无需安装 MFT)
mlxup是独立二进制,不需要完整 MFT 套件,适合临时使用或容器环境。
# 1. 下载 mlxup(单文件可执行)wgethttps://www.mellanox.com/downloads/firmware/mlxup/4.26.0/mlxupchmod+x mlxup# 2. 查询sudo./mlxup--query# 3. 在线全自动更新所有 Mellanox 卡sudo./mlxup--online-u-y# 4. 或只更新指定设备(避免误伤其他卡)sudo./mlxup--online-u-y-da1:00.0# 5. 激活(若 mlxup 未自动处理)sudomst startsudomlxfwreset-d/dev/mst/mt4125_pciconf0 reset-y特点:
- 单文件,无依赖
- 自动从
www.mellanox.com拉取匹配固件 - 支持
-D <dir>指定本地固件目录离线更新
方式 ③:mlnx-fw-updater 开机自动更新(集群场景)
MLNX_OFED/DOCA 安装后,系统自带/opt/mellanox/mlnx-fw-updater,可配置为每次开机自动检查并更新。
# 1. 启用开机自动更新sudosed-i's/RUN_FW_UPDATER_ONBOOT=no/RUN_FW_UPDATER_ONBOOT=yes/'/etc/infiniband/openib.conf# 2. 手动触发一次(模拟开机行为)sudo/opt/mellanox/mlnx-fw-updater/mlnx-fw-updater.sh# 3. 查看日志sudotail-f/var/log/messages|grepfw_updater配置文件排除特定设备:
# 编辑排除列表(逗号分隔 PCI 地址)echo'EXCLUDE_DEVICES="0000:a1:00.0"'|sudotee-a/opt/mellanox/mlnx-fw-updater/mlnx-fw-updater.conf方式 ④:mlnxofedinstall 联动更新(驱动+固件一起升)
如果你正在升级 MLNX_OFED/DOCA 驱动栈,安装脚本可自动识别并更新固件。
# 标准安装(自动更新固件)sudo./mlnxofedinstall --add-kernel-support# 跳过固件更新(保留旧版本)sudo./mlnxofedinstall --without-fw-update# 指定自定义固件目录(用于内网环境)sudo./mlnxofedinstall --fw-image-dir /path/to/fw-binaries/注意:安装完成后若提示固件已更新,必须重启或执行mlxfwreset才能生效。
方式 ⑤:mstflint burn(精确控制,OEM 卡兼容)
当mlxup/mlxfwmanager提示No matching image found(常见于 OEM 卡,PSID 非 MT_ 开头),必须使用底层烧录工具。
# 1. 备份当前固件(关键!)sudomst startsudomstflint-d/dev/mst/mt4125_pciconf0 ri /backup/cx6dx_orig.bin# 2. 查询 PSID(确认卡的身份)sudomstflint-d/dev/mst/mt4125_pciconf0 query|grepPSID# OEM 卡会显示类似 DEL... / HP_... / IBM...# 3. 烧录指定固件(标准卡)sudomstflint-d/dev/mst/mt4125_pciconf0-ifw-ConnectX6Dx-rel-22_36_1010-MCX623106A-ADA_Ax.bin burn# 4. 跨 PSID 烧录(OEM 卡刷标准固件,风险自负)sudomstflint-d/dev/mst/mt4125_pciconf0\-ifw-ConnectX6Dx-rel-22_36_1010-MCX623106A-ADA_Ax.bin\--allow_psid_changeburn# 5. 激活sudomlxfwreset-d/dev/mst/mt4125_pciconf0 reset-y一键自动化脚本(生产环境可用)
以下脚本整合了查询 → 备份 → 在线更新 → 激活 → 验证全流程,适配 ConnectX-6 Dx:
#!/bin/bashset-eMST_DEV="/dev/mst/mt4125_pciconf0"BACKUP_DIR="/opt/mellanox/fw-backup/$(date+%Y%m%d_%H%M%S)"LOG_FILE="/var/log/cx6dx_fw_update.log"mkdir-p"$BACKUP_DIR"exec>>(tee-a"$LOG_FILE")2>&1echo"=== ConnectX-6 Dx 固件自动更新$(date)==="# 1. 启动 MSTsudomst start# 2. 查询当前状态echo"[1/5] 查询当前固件..."sudomlxfwmanager-d"$MST_DEV"--query|tee"$BACKUP_DIR/fw_status_before.txt"# 3. 备份当前固件echo"[2/5] 备份当前固件..."sudomstflint-d"$MST_DEV"ri"$BACKUP_DIR/orig_fw.bin"sudomstflint-d"$MST_DEV"dc"$BACKUP_DIR/orig_fw.ini"echo" 备份保存至:$BACKUP_DIR"# 4. 在线自动更新echo"[3/5] 在线更新固件..."sudomlxfwmanager--online-u-y-d"$MST_DEV"# 5. 激活(热重置,无需重启)echo"[4/5] 激活新固件..."sudomlxfwreset-d"$MST_DEV"reset-y# 6. 验证echo"[5/5] 验证更新结果..."sudomlxfwmanager-d"$MST_DEV"--query|tee"$BACKUP_DIR/fw_status_after.txt"echo"=== 更新完成$(date)==="关键注意事项(CX-6 Dx 特有风险)
| 风险点 | 说明 | 规避方法 |
|---|---|---|
| Flash Semaphore 争用 | 驱动或另一个进程正在访问 Flash,导致Can not obtain Flash semaphore | 停止所有网卡流量,必要时mlxup --clear-semaphore |
| OEM PSID 不匹配 | Dell/HP/Cisco 定制卡的 PSID 非 MT_ 开头,mlxup无法自动匹配 | 改用mstflint --allow_psid_change或从 OEM 官网下载固件 |
| 固件签名验证 | CX-6 Dx 使用签名固件,非法修改会导致卡变砖 | 只刷官方 .bin,不要尝试自制固件 |
| 激活方式 | CX-6 Dx 支持mlxfwreset热重置;CX-4/5 通常需要冷重启 | 更新后执行mlxfwreset,避免不必要的重启 |
| 双端口卡 | 一个 MST 设备控制两个端口,烧录一次即可 | 不需要分别烧录pciconf0和pciconf0.1 |
总结:如何选择?
| 你的场景 | 推荐方式 | 命令 |
|---|---|---|
| 单台服务器,已装 MFT,标准卡 | mlxfwmanager --online | sudo mlxfwmanager --online -u -y |
| 临时使用,不想装 MFT | mlxup --online | sudo ./mlxup --online -u -y |
| 集群批量部署,开机自检 | mlnx-fw-updater | 修改openib.conf启用RUN_FW_UPDATER_ONBOOT |
| 升级 OFED/DOCA 顺便升固件 | mlnxofedinstall | sudo ./mlnxofedinstall(默认带固件更新) |
| OEM 卡 / 需要指定版本 / 救砖 | mstflint | sudo mstflint -d ... -i ... burn |
如果你告诉我你的卡是标准 NVIDIA 卡还是OEM 定制卡(PSID 是否以MT_开头),以及当前 MFT/OFED 是否已安装,我可以给出最精简的一条命令。