1.DPDK下载
下载dpdk18.05:
wget http://fast.dpdk.org/rel/dpdk-18.05.1.tar.gz
解压安装:
tar -zxvf dpdk-18.05.1.tar.gz
2.安装前准备
(2.1)安装依赖
yum install numactl
yum install numactl-devel
可以考虑安装全部:
(yum install numactl-devel*x86_64 )
(2.2)查看系统信息
lscpu :查看cpu架构信息,是否为Intel x86.
dmesg |grep -i eth: 查看网卡信息
3.DPDK 安装
cd dpdk-stable-18.05.1/usertools
./dpdk-setup.sh
执行后出现安装选项,如下:
step 1,根据自己的系统架构选择相应的编译选项。我是64位机器,使用gcc编译,所以选择 [15] x86_64-native-linuxapp-gcc
step 2,根据自己的硬件类型选择。我选择[18] Insert IGB UIO module。接着需要设置一下大内存页。因为我是numa架构的CPU,所以选择[22] Setup hugepage mappings for NUMA systems。
根据提示设置相应大小,我这里设置为1024。接着显示一下系统中可以用的硬件网卡,这里选择[23] Display current Ethernet/Crypto device settings。此时出现报错:
这是由于CentOS7中没有lspci的原因,安装一下就可以解决:
yum install pciutils -y
重新选在23,显示如下:
接着绑定网卡设备,我是igb网卡,所以选择[24] Bind Ethernet/Crypto device to IGB UIO module。不过这里需要先退出,将绑定的网卡shutdown掉,比如我准备绑定enp4s0网卡。执行
ifconfig enp4s0 down
此时如果出现: -bash: ifconfig: 未找到命令。
查找ifconfig相关包: yum search ifconfig。匹配如下:
这里我安装net-tools.x86_64。执行:
yum install net-tools.x86_64
继续执行ifconfig enp4s0 down。接着继续设置要绑定网卡,设备名称是if=后显示的名称。选项[24] Bind Ethernet/Crypto device to IGB UIO module。接着输入enp4s0。到这里,安装dpdk的任务就完成了。
4.DPDK测试
(4.1)配置环境变量,RTE_TARGET是我们上面step1 中编译选择的目录。
export RTE_SDK="你的dpdk路径",我这里是/opt/dpdk-stable-18.05.1
export RTE_SDK=/opt/dpdk-stable-18.05.1
export RTE_TARGET=x86_64-native-linuxapp-gcc
(4.2)切换到测试目录:
cd ../examples/helloworld
make
执行 ./build/helloworld,如果出现hello from core x 说明已经测试成功。