在 B300 设备上部署 Fieldiag 时,即使系统已经安装为 Ubuntu 24.04,第一次运行仍可能因编译依赖、IB 网络工具、NVLink 管理组件或 CUDA 环境不完整而报错。本文按「补全基础依赖 -> 部署网络与 NVLink 组件 -> 安装驱动与 CUDA -> 验证 Fieldiag」的顺序整理。
适用环境:B300,Ubuntu 24.04,CUDA 13.1.0,NVIDIA 驱动 590.44.01。本文命令以 root 权限为例;若使用普通用户,请根据实际权限添加 sudo。
1. 开始前的规划
Fieldiag 会调用现场诊断组件 onediagfield,其中的 mods 和 clink 需要编译内核模块。因此,不能只安装 Fieldiag 后直接运行;还必须安装当前内核对应的头文件与编译工具。
建议先把 CUDA 离线安装包、DOCA-OFED 安装包等资源拷贝到系统盘。不建议在测试盘还未装到 B300 时提前安装驱动,以免更换到目标机器后出现驱动异常。
[配图 1 位置:初次运行 Fieldiag 的报错]
2. 安装内核模块编译依赖
运行以下命令,安装编译工具、DKMS 以及与当前内核匹配的头文件:
apt update
apt install -y build-essential make gcc linux-headers-$(uname -r) dkms
安装完后重新运行 Fieldiag。如果报错从编译依赖转为 Mellanox、IB 工具、NVLink 或 Fabric Manager 缺失,说明内核模块编译环境已经补齐,可继续执行下一步。
[配图 2 位置:安装编译依赖后执行 Fieldiag 的报错]
3. 安装 DOCA-OFED 与基础网络工具
Fieldiag 需要 Mellanox 硬件管理能力,并侚使用 InfiniBand (IB) 网络状态查询与压测工具。先安装 DOCA-OFED:
dpkg -i ./doca-host_3.4.0-085000-26.04-ubuntu2404_amd64.deb
apt-get update
apt-get -y install doca-ofed
[配图 3 位置:DOCA-OFED 安装后运行Fieldiag 的结果]
因为Ubuntu 24.04 默认不再预装 ifconfig。此命令属于 net-tools 软件包,如果缺失,Fieldiag 可能会跳过 ibstress 的 IB 压测用例。
apt install -y net-tools4. 安装 Fabric Manager 与 nvlsm
B300 多卡 NVLink 组网需要两个关键组件:
| 组件 | 作用 | 关键要求 |
|---|---|---|
nvidia-fabricmanager | 管理 NVSwitch Fabric,是多卡 NVLink 组网的必要服务 | 主版本必须与 NVIDIA 驱动严格一致 |
nvlsm | NVLink Subnet Manager,为 Fieldiag Level 2 诊断提供 NVSwitch 拓扑和链路状态 | 需从 CUDA 仓库安装 |
本例使用的 CUDA 离线包为 cuda_13.1.0_590.44.01_linux.run,因此驱动版本是 590.44.01,对应的 Fabric Manager 包应选择 nvidia-fabricmanager-590。
在目标 B300 上安装驱动后,安装并设置 Fabric Manager 开机自启:
apt install -y nvidia-fabricmanager-590
systemctl enable --now nvidia-fabricmanager
systemctl status nvidia-fabricmanager.service
如果驱动尚未安装,执行启动命令可能报错。此时先确认服务已经设为 enabled,待驱动安装后再验证运行状态。
[配图 5 位置:Fabric Manager 服务状态确认]
[配图 6 位置:提前安装驱动可能出现的问题]
若设备存在 PCIe 设备但 nvidia-smi 无法执行,可重新运行 CUDA 离线安装包。在安装程序检测到现有驱动时,选择 No, abort installation 终止当前安装,再根据现场版本规划处理驱动。
[配图 7 位置:CUDA 安装程序中的终止安装选项]
添加 CUDA 官方软件源后安装 nvlsm:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
dpkg -i cuda-keyring_1.1-1_all.deb
apt update
apt search nvlsm
apt install nvlsm
[配图 8 位置:Fieldiag 报错缺少nvlsm的图片]
5. 在 B300 目标机上安装驱动与 CUDA
测试盘上机后,在 B300 目标机上执行已准备好的 CUDA 离线安装包:
./cuda_13.1.0_590.44.01_linux.run按提示输入 accept 同意协议。在组件选择页,保留以下两项:
| 选项 | 建议 | 说明 |
|---|---|---|
| Driver -> 590.44.01 | 选中 | 安装 NVIDIA 590.44.01 显卡驱动 |
| CUDA Toolkit 13.1 | 选中 | 安装 CUDA 开发工具包及 nvcc 编译器 |
| CUDA Documentation 13.1 | 可取消 | 文档与示例,如无需可节省空间 |
| Kernel Objects -> nvidia-fs | 可不选 | nvidia-fs 文件系统驱动模块,按实际场景决定 |


选择 Install 后回车开始安装。这一过程耗时较长,请等待其完成。
[配图 10 位置:CUDA 安装成功提示]
6. 配置 CUDA 环境变量并验证
安装完 CUDA 后,还需设置命令路径与动态库路径,否则新终端中无法直接调用 nvcc。
echo 'export PATH=/usr/local/cuda-13.1/bin:$PATH' >> /etc/profile
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64:$LD_LIBRARY_PATH' >> /etc/profile
echo "/usr/local/cuda-13.1/lib64" > /etc/ld.so.conf.d/cuda-13.1.conf
ldconfig
新开一个终端后,运行以下命令确认 CUDA 编译器和 NVIDIA 驱动都可正常使用:
nvcc -V
nvidia-smi[配图 11 位置:nvcc -V 与 nvidia-smi 的验证结果]
7. 运行 Fieldiag 并判定结果
环境依赖、DOCA-OFED、net-tools、Fabric Manager、nvlsm、驱动和 CUDA 验证均完成后,按 Fieldiag 目录中 README.txt 的说明执行测试命令。
测试结果显示 PASS 即表示相应测试项通过。
[配图 12 位置:Fieldiag 测试命令开始运行的输出]
[配图 13 位置:Fieldiag PASS 测试结果]
结语
遇到 Fieldiag 报错时,不建议一次性叠加所有软件包。每完成一类依赖就重新运行一次 Fieldiag,依据剩余报错继续补齐,更便于定位环境缺口。其中最重要的两点是:驱动与 Fabric Manager 版本必须匹配,以及 驱动应在 B300 目标机上完成安装与验证。
