
下面是使用 mlxup 给 CX5 556AMCX556A-ECAT/EDATConnectX-5 VPI 卡更新固件的完整流程为例。如果遇到mlxup: command not found是因为 mlxup 不随系统自带——它是一个独立单文件二进制需要单独下载不依赖 MLNX_OFED也不依赖 mst 驱动。1. 下载并安装 mlxupwgethttps://content.mellanox.com/tools/mlxup/mlxupchmodx mlxupsudomvmlxup /usr/local/bin/验证mlxup-v2. 查询当前设备与固件状态sudomlxup--query典型输出ConnectX-5Device Type: ConnectX5 Part Number: MCX556A-ECAT Description: ConnectX-5 VPI adapter card, EDR IB (100Gb/s) and 100GbE, dual-port QSFP28 PSID: MT_0000000008 PCI Device Name: 0000:65:00.0 Versions: Current Available FW 16.32.1010 16.35.xxxx Status: Update required关键检查点是 PSID零售版 MCX556A-ECAT 的 PSID 通常是MT_0000000008mlxup 可以直接找到匹配的官方固件如果是 OEM 卡例如 HPE 定制PSID 类似HPE0000000009mlxup 会显示No matching image found此时需要用 MFT/flint 加-allow_psid_change强刷零售固件见第 5 步的备选方案。3. 更新固件方式 A联网自动更新机器能访问 NVIDIA 服务器时最省事sudomlxup它会列出所有 Mellanox 设备提示Perform FW update? [y/N]输入y即开始烧录日志保存在/var/log/mlxup/下。方式 B使用本地固件文件内网/离线机器先到 NVIDIA 官网固件页面network.nvidia.com → Support → Firmware Download按 PSID 下载 ConnectX-5 的固件.binVPI 卡选 fw-ConnectX5 系列执行sudomlxup-d/dev/mst/mt4119_pciconf0-i./fw-ConnectX5-rel-16_xx_xxxx-MCX556A-ECAT_Ax-UEFI-xx.binmt4119即 ConnectX-5 的设备名不指定-d时 mlxup 会对所有检测到的卡操作。4. 使新固件生效烧录完成后固件不会立即生效需要复位。两种做法# 方式一热复位推荐不必整机重启需要已装 MFT 工具sudomlxfwreset-d/dev/mst/mt4119_pciconf0 reset-y# 方式二直接重启机器sudoreboot注意CX5 的热复位要求驱动处于可复位状态端口无正在进行的 RDMA 流量若mlxfwreset提示复位级别不被支持或失败就只能**冷启动关机断电再开机**才最保险普通 reboot 在部分主板上也能完成固件重载。复位后验证sudomlxup--query# Current 应与 Available 一致# 或用 flint 查看详细版本flint-d/dev/mst/mt4119_pciconf0 q5. 备选方案MFT/flintmlxup 找不到匹配固件时sudomst startsudomst status# 确认设备节点名sudoflint-d/dev/mst/mt4119_pciconf0-ifw.bin burn# OEM 卡改刷零售固件时追加# sudo flint -d /dev/mst/mt4119_pciconf0 -i fw.bin -allow_psid_change burnsudomlxfwreset-d/dev/mst/mt4119_pciconf0 reset-y注意事项烧录过程中切勿断电或重启否则可能变砖CX5 有双镜像恢复机制但恢复流程麻烦如果机器上有两张 CX5mlxup默认会逐一列出并更新注意核对 PCI 地址与 PSID 再确认固件升级与 MLNX_OFED 驱动版本无强绑定但建议升级后顺手把驱动也更新到匹配的 LTS 版本。