这里写自定义目录标题
**
一,版本信息
**
DPDK版本:21.11.1
内核版本:3.10.0
操作系统:CentOS Linux release 7.2.1511 (Core)
网卡驱动:MLNX_OFED_LINUX-5.6-2.0.9.0-rhel7.2-x86_64
二,安装依赖工具和驱动
DPDK在20版本以后需要使用meson和ninja编译安装。
(1)安装pip3环境
yum install python3 python3-pip
pip3 install --upgrade pip
(2) 安装meson
pip3 install meson
(3)安装ninja
pip3 install ninja
注意如果出现WARNING: The script ninja is installed in ‘/usr/local/bin’ which is not on PATH.
则需要添加环境变量
vim /etc/profile
文件末尾添加export PATH=“/usr/local/bin:$PATH”
(4)网卡驱动安装
Mellanox 网卡驱动
进入 Mellanox 官网:https://cn.mellanox.com/
打开“以太网驱动程序”支持
选择OFED驱动
注意:不能安装Mellanox EN 驱动,否则会在编译 DPDK 时出错,提示找不到 <infiniband/verbs.h>
在download选择对应操作系统CentosOS 7.2版本的驱动
下载得到文件:
MLNX_OFED_LINUX-5.6-2.0.9.0-rhel7.2-x86_64.tgz
解压缩文件
安装Mellanox网卡驱动
./mlnxofedinstall --upstream-libs --dpdk --add-kernel-support
其中 --add-kernel-support 用于解决驱动程序与当前 CentOS 系统 Kernel 版本不匹配的问题
安装时间较长,执行结束后根据提示在终端运行:
dracut -f
/etc/init.d/openibd restart
完成后重启主机
reboot
三,DPDK源码下载与编译安装
在DPDK官网选择下载页面下载
选择版本DPDK 21.11.1
下载得到文件
dpdk-21.11.1.tar.xz
解压缩后进入文件夹执行
meson build
cd build
ninja
ninja install
ldconfig
如果需要安装igb_uio
获取源码
git clone http://dpdk.org/git/dpdk-kmods
cp -r ./dpdk-kmods/linux/igb_uio ./dpdk/kernel/linux/ # Copy dpdk-kmods/linux/igb_uio/ to dpdk/kernel/linux/
配置文件
vim dpdk/kernel/linux/meson.build
将subdirs = [‘kni’] 修改为 subdirs = [‘kni’, ‘igb_uio’]
vim dpdk/kernel/linux/igb_uio/meson.build
加入如下内容
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
mkfile = custom_target('igb_uio_makefile',
output: 'Makefile',
command: ['touch', '@OUTPUT@'])
custom_target('igb_uio',
input: ['igb_uio.c', 'Kbuild'],
output: 'igb_uio.ko',
command: ['make', '-C', kernel_dir + '/build',
'M=' + meson.current_build_dir(),
'src=' + meson.current_source_dir(),
'EXTRA_CFLAGS=-I' + meson.current_source_dir() +
'/../../../lib/librte_eal/include',
'modules'],
depends: mkfile,
install: true,
install_dir: kernel_dir + '/extra/dpdk',
build_by_default: get_option('enable_kmods'))
重新编译
meson build --reconfigure
cd build ninja
ninja install
ldconfig