CentOS安装基于Mellanox网卡的DPDK开发环境

主要参考:

https://doc.dpdk.org/guides/nics/mlx5.html#quick-start-guide-on-ofed-en

https://blog.****.net/qq_16088269/article/details/103477194

环境

网卡:Mellanox MCX515A

系统:CentOS 7.8

DPDK: dpdk-19.11.3

网卡驱动:MLNX_OFED_LINUX-5.1-0.6.6.0-rhel7.8-x86_64

下载

Mellanox 网卡驱动

进入 Mellanox 官网:https://cn.mellanox.com/

打开“以太网驱动程序”支持

CentOS安装基于Mellanox网卡的DPDK开发环境

选择 OFED 驱动

注意:不能安装 Mellanox EN 驱动,否则会在编译 DPDK 时出错,提示找不到 <infiniband/verbs.h>

CentOS安装基于Mellanox网卡的DPDK开发环境

在找开页面选择对应 CentOS 7.8 版本的驱动程序包

CentOS安装基于Mellanox网卡的DPDK开发环境

下载得到文件:

MLNX_OFED_LINUX-5.1-0.6.6.0-rhel7.8-x86_64.tgz

DPDK 源码

在 DPDK 官网首页打开下载页面

CentOS安装基于Mellanox网卡的DPDK开发环境

选择长期支持版 19.11.3

CentOS安装基于Mellanox网卡的DPDK开发环境

下载得到文件:

dpdk-19.11.3.tar.xz

安装 Mellanox 网卡驱动

将下载得到的驱动程序包解压,在终端首先转为 root 用户:

sudo su

进入解压后的文件夹,执行安装指令:

./mlnxofedinstall --upstream-libs --dpdk --add-kernel-support

其中 --add-kernel-support 用于解决驱动程序与当前 CentOS 系统 Kernel 版本不匹配的问题

安装时间较长,执行结束后根据提示在终端运行:

dracut -f

/etc/init.d/openibd restart

完成后重启主机

reboot

编译 DPDK

将下载得到的 DPDK 源码包解压

进入解压后的文件夹,为添加 Mellanox 网卡的 MLX5 poll mode driver,修改 config/defconfig_x86_64-native-linuxapp-gcc 文件,在文件末尾加入一行:

CONFIG_RTE_LIBRTE_MLX5_PMD=y

打开 usertools/dpdk-devbind.py 文件,解决 Python 文本编码错误

在原文中添加下图中的内容:

CentOS安装基于Mellanox网卡的DPDK开发环境

在终端转为 root 用户:

sudo su

配置环境变量

export RTE_SDK=/home/bt/dpdk

export RTE_TARGET=x86_64-native-linuxapp-gcc

安装辅助软件

apt-get install numactl

apt-get install libnuma-dev

apt-get install net-tools

进入 dpdk 的 usertools 目录,运行 dpdk-setup.sh

./dpdk-setup.sh

根据提示选择 Option: 38 编译 dpdk 源码

CentOS安装基于Mellanox网卡的DPDK开发环境

完成编译后,选择 Option: 49 配置大页内存

CentOS安装基于Mellanox网卡的DPDK开发环境

按提示配置为 1024 个 2MB 大页

选择 Option: 50 查看当前网卡状态

CentOS安装基于Mellanox网卡的DPDK开发环境

显示 Mellanox 网卡当前驱动为 mlx5_core,状态正确

CentOS安装基于Mellanox网卡的DPDK开发环境

选择 Option: 62 退出当前 sh 脚本

示例程序添加 librte_pmd_mlx5 库

为了使用 Mellanox 网卡的 MLX5 poll mode driver,必须在示例程序的 Makefile 文件的最后 1 个 CFLAGS 配置之后加上以下语句

CFLAGS += -lrte_pmd_mlx5

用于添加 librte_pmd_mlx5 库