一、问题现象

在使用 Mellanox(迈络思,现 NVIDIA)网卡时,经常需要在主机上执行 flint 命令查询或更新固件,但有时会遇到以下报错:

[root@localhost ~]# flint -h
bash: flint: command not found

[root@localhost ~]# sudo mst start
sudo: mst: command not found

二、原因分析

flint 是 Mellanox Firmware Tools(MFT) 工具包自带的固件管理工具。MFT 是一套用于管理 Mellanox/NVIDIA 网卡固件的独立工具集,包含 mst、flint、mlxconfig、mlxlink、mlxfwmanager 等命令。系统提示 command not found,说明当前系统没有安装 MFT(或 MFT 未正确加载、被卸载),因此需要重新安装 MFT 工具包。

三、解决方案:安装 MFT 的 RPM 包

MFT 官方提供 RPM(RedHat/CentOS 系) 和 DEB(Ubuntu/Debian 系) 两种格式安装包。RedHat / CentOS / Rocky / 麒麟 / 欧拉等系统使用 RPM 包。

1. 下载 MFT RPM 包

从 NVIDIA 官网下载对应系统架构的 MFT 安装包:官网下载地址 https://network.nvidia.com/products/adapter-software/firmware-tools/

wget https://www.mellanox.com/downloads/MFT/mft-4.23.0-72-x86_64-rpm.tgz

2. 解压安装包

tar zxvf mft-4.23.0-72-x86_64-rpm.tgz
cd mft-4.23.0-72-x86_64-rpm

3. 运行一键安装脚本

sudo ./install.sh

install.sh 会自动完成 RPM 包的构建与安装(内部会安装 kernel-mft 与 mft 两个 RPM 包)。
若提示缺少内核头文件或编译报错,先安装开发工具链:

yum install -y kernel-devel-$(uname -r) gcc make

4. 启动 MST 服务

sudo mst start

5. 查看设备状态

sudo mst status -v

正常会看到类似输出:

MST devices:
/dev/mst/mt4119_pciconf0 - PCI configuration cycles access.

四、验证 flint 是否可用

# 查询网卡固件信息
sudo flint -d /dev/mst/mt4119_pciconf0 q

五、flint 常用命令

命令作用
flint -d <设备> q查询固件版本、GUID、PSID 等
flint -d <设备> -i <固件.bin> b烧写/升级固件
flint -d <设备> -i <固件.bin> --allow_psid_change b强制刷入不同 PSID 固件
flint -d <设备> ri <备份.bin>备份当前固件

说明:-d 后面既可以使用 /dev/mst/xxx 设备节点,也可以直接使用 BDF 号(如 0000:03:00.0)。

六、常见问题

  1. 安装后依然 command not found?确认是否执行了 sudo mst start,且重新登录/刷新环境变量。
  2. install.sh 编译报错?多半缺少 kernel-devel、gcc、make,按上文补装即可。
  3. DEB 系统怎么装?Ubuntu/Debian 请下载 *-deb.tgz 包,同样解压后 sudo ./install.sh。

总结

flint 命令来自 MFT 工具包,遇到 command not found 时,下载对应系统的 MFT RPM 包,解压后执行 ./install.sh,再 mst start 启动服务即可正常使用 flint 管理 Mellanox 网卡固件。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐