掌握Ubuntu配置Mellanox在Ubuntu 22.04 LTS系统安装与内核版本确认中的定位、故障信号与验证顺序。
Ubuntu 22.04 LTS系统安装与内核版本确认只有在出现源码、函数、脚本或 API 证据时,才需要进入代码层核对。
本节把Ubuntu配置Mellanox对应的调用关系、异常状态和复测证据放在一起检查。
在部署 25G 网卡(25 Gigabit Ethernet Network Interface Card)之前,操作系统的底层环境直接决定了驱动能否成功加载。Mellanox 的 ConnectX 系列网卡驱动(如 核心)深度依赖 Linux 内核的子系统,尤其是 PCIe 枚举、网络栈和 RDMA(Remote Direct Memory Access)模块。如果系统是从旧版本升级而来,或者内核被第三方工具修改过,很可能导致驱动编译失败或网卡无法被识别
本节的核心目标是在一台裸机或虚拟机上安装纯净的 Ubuntu 22.04 LTS,并确认内核版本不低于 5.15。5.15 是 Ubuntu 22.04 的基线内核,Mellanox 官方驱动包(如 MLNX_OFED)对该内核提供了完整的兼容性验证。低于此版本的内核将无法获得官方支持,即使强行安装也可能在高速数据传输时出现丢包或断连
安装前,请确认 BIOS 中已启用 UEFI 模式并关闭 Secure Boot。Secure Boot 会阻止未签名的内核模块加载,而 Mellanox 驱动在社区版内核下通常未签名,会导致驱动加载失败
我们推荐使用 Ubuntu 22.04.3 LTS 的 Server ISO 镜像进行安装。桌面版虽然可用,但会携带大量与网络服务无关的图形库,增加系统攻击面。安装过程中,磁盘分区是第一个容易出错的环节
对于 25G 网卡教程(25G NIC Tutorial)中的服务器角色,建议采用 LVM(Logical Volume Manager)分区方案。这不仅便于后期扩展存储,还能在系统盘故障时快速恢复。以下是推荐的分区布局:
| 检查项 | 标准 | 是否通过 | 常见遗漏 |
|---|---|---|---|
| /boot | 1 GB | ext4 | 存放内核与 initramfs。过小会导致内核更新失败 |
| / | 50 GB | ext4 | 根文件系统。包含系统库和驱动源码编译空间 |
| /var | 20 GB | ext4 | 日志与缓存。驱动调试时会产生大量日志,需独立分区防止撑… |
| swap | 等于物理内存大小 | swap | 内存溢出保护。编译大型驱动包时,内存不足会直接 OOM |
安装完成后,系统会自动重启。首次登录后,立即执行系统更新:
sudo apt update && sudo apt upgrade -y sudo reboot
这一步确保内核补丁和固件包都是最新状态,避免因已知 bug 导致网卡识别异常
系统重启后,我们需要确认内核版本是否满足 Mellanox 驱动的最低要求。执行以下命令:
uname -r
输出应类似 5.15.0-91-generic。如果低于 5.15,说明安装介质可能不是官方 22.04 LTS 镜像,或者系统被错误地降级了。此时必须重新安装
除了,还需要检查内核是否包含了必要的驱动模块。Mellanox 的 ConnectX-4 Lx 及之后型号的 25G 网卡(25G Network Card)依赖 核心 和 mlx5_ib 模块。执行以下命令验证:
lsmod | grep mlx5
如果没有任何输出,说明内核虽然版本正确,但未加载这些模块。这通常是正常的,因为驱动需要在安装 OFED 包后才会加载。但我们需要确认内核源码树已安装,以便后续编译驱动:
ls /usr/src/linux-headers-$(uname -r)/
如果该目录存在且包含 include 和 Makefile,则说明内核头文件就绪
某数据中心运维团队在批量部署 25G 网卡时,发现部分服务器安装 Ubuntu 22.04 后,uname -r 显示为 5.15.0-86-generic。虽然高于 5.15,但在安装 MLNX_OFED 时,编译脚本报错“找不到内核构建目录”。排查后发现,这些服务器在安装时选择了最小化安装,跳过了 linux-headers-generic 包。执行 sudo apt install linux-headers-$(uname -r) 后问题解决