运行环境:ubuntu1804
因dpdk在20版本以后采用了全新的编译方式,与之前版本相比需要装一些相关的工具,具体如下:
1.安装meson
apt install meson
2.安装python3-pip
apt install python3-pip
3.Pip3安装ninja
pip3 install meson ninja
4.安装最新版meson
pip3 install --user meson
5.配置新版本的路径
export PATH=/usr/local/bin:$PATH
6.更新elftools
pip3 install pyelftools --upgrade
至此环境基本配置完成
1.在dpdk官网下载dpdk源码
2.解压下载的dpdk压缩包
tar xf dpdk-20.11.9.tar.xz
3.安装numa环境
apt-get install numactl
apt-get install libnuma-dev
5.编译dpdk
meson build
进入build目录执行
ninja
ninja install
6.编译dpdk例子程序
设置环境变量
export RTE_SDK=dpdk路径
export RTE_TARGET=x86_64-native-linux-gcc
make
7.加载uio、igb_uio和绑定网卡
modprobe uio
insmod igb_uio.ko
dpdk-devbind.py -b igb_uio 05:00.0 05:00.1
dpdk-devbind.py -s 可查看当前有哪些网卡
8.绑定大页内存
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
9.运行dpdk例子程序
./l2fwd -c 0x3 -n 1 -- -p 0x3 -q 1 --no-mac-updating
./testpmd -c 0xf -n 1 -- -i --portmask=0x3 --nb-cores=1
PS:其他报错缺啥东西就装啥东西就OK!
需要注意的是igb_uio.ko已经默认不在dpdk编译中了,我使用的是19.11编出来的但是也没问题可以正常用