1.点击虚拟机设置,添加两个网卡(我这里都是使用的都是桥接模式)
2.从网上下载dpdk的压缩包:
命令:wget http://fast.dpdk.org/rel/dpdk-18.08.tar.gz
解压安装:tar -zxvf dpdk-18.05.1.tar.gz
3.安装依赖:
yum install numactl -y
yum install numactl-devel
yum install gcc
yum install gcc kernel-devel-$(uname -r)
yum -y install kernel-devel 安装内核
4.进入 /usr/src/kernels查看内核
5.进入 /lib/modules/3.10.0-957.el7.x86_64 目录查看软链接 build是否正确(不正确会红光闪烁,原因是gcc版本和内核版本不一致,在后续安装中,会造成make: *** /lib/modules/5.2.4-1.el7.elrepo.x86_64/build: No such file or directory. Stop. 错误,解决办法参考博文:https://blog.****.net/u012343297/article/details/79141878)
下面这个是正确的:
6.安装dpdk
cd /root/dpdk-stable-18.05.1/
cd usertools/ (有些dpdk的版本目录是tools)
./dpdk-setup.sh (执行安装)
7.选择gcc进行安装 我这里是15(每个版本的DPDK都不一样,选择x86_64位的gcc安装就行)
gcc编译成功:
8.插入IGB UIO
这里是18,因此选择18
9.选择22 Setup hugepage mappings for NUMA systems
输入:1024
成功:
10.选择23 查看当前可用网卡:
这是虚拟机中空闲的2个网卡(前面添加的)
注意if后的ens37和ens38
11.选择24 绑定网卡
输入:ens37 ens38 (或者 02:05.0 02:06.0)
绑定网卡成功:
12.ctrl+c或者选择35退出安装,配置环境变量
vim ~/.bash_profile
export RTE_SDK=/opt/dpdk-18.08
export RTE_TARGET=x86_64-native-linuxapp-gcc
export DPDK_BUILD=
R
T
E
S
D
K
/
{RTE_SDK}/
RTESDK/{RTE_TARGET}
export LD_LIBRARY_PATH=
R
T
E
S
D
K
/
{RTE_SDK}/
RTESDK/{RTE_TARGET}/lib:
export RTE_SDK=/root/dpdk-stable-18.05.1 (这个是安装的dpdk的绝对路径)
export RTE_TARGET=x86_64-native-linuxapp-gcc (选择gcc编译)
然后刷新环境变量
source ~/.bash_profile
13.测试DPDK是否安装成功:
cd /root/dpdk-stable-18.05.1/examples/helloworld
make
cd build
./helloworld
此时会出现 这个错误:
解决办法:
cd /root/dpdk-stable-18.05.1/kernel/linux/igb_uio (每个版本的igb_uio存放的位置不一样,在dpdk的目录里找到它)
vim igb_uio.c
:set number (让vim显示行号)
再找到 pci_intx_mask_supported(udev->pdev) 修改为 pci_intx_mask_supported(udev->pdev || true)
再进入 ./dpdk-setup.sh 重新安装一次(跟上述步骤一样,唯一不一样的是选择 24绑定网卡的时候不能输入 ens37 ens38 输入 02:05.0 02:06.0 具体用23查看网卡属性)
再次测试:
cd /root/dpdk-stable-18.05.1/examples/helloworld
make
cd build
./helloworld
显示下图则表示成功:
至此安装成功!