Linux Ubuntu 20.04 安装DPDK方法指南

avatar
作者
猴君
阅读量:0

系统及DPDK版本

系统:Ubuntu 20.04

DPDK:20.11.10

Pktgen-DPDK:22.04.1

关于DPDK,其实Ubuntu的软件源中就已经包含了最新的Stable版本的DPDK,如果不想自己编译的话,直接 apt install dpdk 也是可以的

安装编译依赖

sudo apt install build-essential python3-pip python3-pyelftools libnuma-dev libpcap0.8-dev pkg-config sudo pip3 install meson ninja 

编译dpdk

wget http://fast.dpdk.org/rel/dpdk-20.11.10.tar.xz 

解压

tar -xvf dpdk-20.11.10.tar.xz  

进入解压完毕的DPDK源码根目录

在这里插入图片描述

编译项目

meson -Dexamples=all build 

在这里插入图片描述
到build目录 ,使用ninja编译

cd build ninja 

在这里插入图片描述

sudo ninja install sudo ldconfig 

在这里插入图片描述

配置大页内存

sudo vim /etc/default/grub 

找到 GRUB_CMDLINE_LINUX 行,大页内存每页大小为2M,一共设置1024页面,即2GB。

transparent_hugepage=never default_hugepagesz=2M hugepagesz=2M hugepages=1024 

更新 GRUB 配置,然后重启系统。

sudo update-grub reboot 

验证大页内存

cat /proc/meminfo |grep -i HugePages 

在这里插入图片描述

加载网卡驱动

git clone http://dpdk.org/git/dpdk-kmods 

编译

cd dpdk-kmods/linux/igb_uio make 

得到igb_uio.ko ,装载内核模块。

sudo modprobe uio sudo insmod dpdk-kmods/linux/igb_uio/igb_uio.ko intr_mode=legacy 

注意: 加载驱动时要带着参数intr_mode=legacy,如果不加参数,将会有问题!

DPDK绑定网口

查看网口信息

lspci | grep Ethernet lshw -class network -businfo usertools/dpdk-devbind.py --status 

在这里插入图片描述

绑定网卡之前需要关闭linux下的网卡

sudo ifconfig ens33 down 
sudo dpdk-devbind.py --bind=igb_uio 0000:02:01.0 

查看状态

dpdk-devbind.py --status 

在这里插入图片描述

测试程序

在 build/examples里运行 dpdk-helloworld

sudo ./dpdk-helloworld 

在这里插入图片描述

EAL: No available hugepages reported in hugepages-1048576kB

1048576kB 就是1G,这行 log 应该只是一个警告,因为我们根本没设置过 1G 的 hugepage,找不到是预料之中的。

最后出现 hello from core x 就是成功了

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!