如何在 Linux 上安装 Mellanox ConnectX-4 以太网卡的设备驱动程序
问题: 我在 Linux 服务器上安装了 Mellanox ConnectX-4 Lx EN 以太网卡,但系统无法识别该网卡。如何在 [插入 Linux 发行版] 上安装 Mellanox ConnectX-4 NIC 的驱动程序?
Mellanox 提供广泛的高速互连解决方案,包括千兆位以太网卡和 InfiniBand 适配器卡。 ConnectX-4 EN 是 Mellanox 的旗舰以太网适配器之一,提供 10/25/40/50/100GbE 速度。为了满足当今数据中心互连环境的严格需求,Mellanox ConnectX-4 提供了多种强大的功能,例如 SR-IOV I/O 虚拟化、NVGRE/VxLAN 硬件卸载、融合以太网上的 RDMA、纠删码卸载等。
截至撰写本文时,Mellanox ConnectX 产品系列的设备驱动程序尚未包含在 Linux 发行版中。因此,如果您想使用 ConnectX 卡(例如 ConnectX-4 Lx EN),您需要构建并安装驱动程序。
幸运的是,Mellanox 做得非常好,确保他们的 NIC 卡可以通过最新的驱动程序在所有主要操作系统平台上访问。
以下是如何在 Linux 上编译和安装 Mellanox ConnectX-4 EN 驱动程序 (mlx4_en
)。其他 Mellanox 卡驱动程序可以以类似的方式安装。
准备
在构建 Mellanox 驱动程序之前,首先通过安装依赖项来设置必要的构建环境,如下所示。
在 Debian、Ubuntu 或 Linux Mint 上安装依赖项
$ sudo apt-get install debhelper autotools-dev dkms zlib1g-dev gcc make patch gcc-c++
在 CentOS、Fedora 或 Red Hat 上安装依赖项
$ sudo yum install gcc make patch gcc-c++ redhat-rpm-config rpm-build
在 OpenSUSE 上安装依赖项
$ sudo zypper install gcc make patch gcc-c++ kernel-syms
编译并安装 Mellanox ConnectX-4 驱动程序
从官方网站下载 Mellanox ConnectX-4 卡的最新设备驱动程序。驱动程序的 tarball 包含设备驱动程序的源代码以及最新的 NIC 固件。

解压缩 tarball,并以 root 身份运行安装脚本 (install.sh
)。
$ tar -xf mlnx-en-3.3-1.0.0.0.tgz
$ cd mlnx-en-3.3-1.0.0.0
$ sudo ./install.sh
该脚本从源代码构建 Mellanox NIC 驱动程序并安装它。

安装完成后,脚本会查询 Mellanox NIC 的固件,并自动更新过时的固件。

最后,卸载之前安装的所有 mlnx
模块,并加载新的 Mellanox NIC 驱动程序。

已安装的 Mellanox ConnectX-4 EN NIC 驱动程序名为 mlx4_en
。验证是否已成功加载,如下所示。
$ lsmod | grep mlx4
$ modinfo mlx4_en
