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/
打开“以太网驱动程序”支持
选择 OFED 驱动
注意:不能安装 Mellanox EN 驱动,否则会在编译 DPDK 时出错,提示找不到 <infiniband/verbs.h>
在找开页面选择对应 CentOS 7.8 版本的驱动程序包
下载得到文件:
MLNX_OFED_LINUX-5.1-0.6.6.0-rhel7.8-x86_64.tgz
DPDK 源码
在 DPDK 官网首页打开下载页面
选择长期支持版 19.11.3
下载得到文件:
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 文本编码错误
在原文中添加下图中的内容:
在终端转为 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 源码
完成编译后,选择 Option: 49 配置大页内存
按提示配置为 1024 个 2MB 大页
选择 Option: 50 查看当前网卡状态
显示 Mellanox 网卡当前驱动为 mlx5_core,状态正确
选择 Option: 62 退出当前 sh 脚本
示例程序添加 librte_pmd_mlx5 库
为了使用 Mellanox 网卡的 MLX5 poll mode driver,必须在示例程序的 Makefile 文件的最后 1 个 CFLAGS 配置之后加上以下语句
CFLAGS += -lrte_pmd_mlx5
用于添加 librte_pmd_mlx5 库