DPDK的源码编译安装

操作系统版本:Ubuntu 20.04.5
DPDK版本: 21.11

Intel® DPDK全称Intel Data Plane Development Kit, 是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持。

下面我们一起来先看一下如何源码安装DPDK:

1、安装构建工具meson:
pip3 install --user meson --default-timeout=10000
export PATH= P A T H : PATH: PATH:HOME/.local/bin

2、安装elftools:
pip3 install pyelftools

3、安装编译工具ninja:
wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip
unzip ninja-linux.zip -d /usr/local/bin/

4、编译安装igb_uio驱动:
git clone git://dpdk.org/dpdk-kmods
cd dpdk-kmods/linux/igb_uio
make
成功编译后,可以看到生成了igb_uio.ko驱动文件,后面会加载这个文件。

5、从github上下载DPDK的源码:
git clone https://github.com/DPDK/dpdk.git
git checkout v21.11
cd dpdk/

6、使用meson执行构建:
meson configure
meson build
如果想编译debug版本,可以修改meson.build配置文件,将buildtype改为debug
DPDK的源码编译安装_第1张图片

7、使用ninja开始编译并安装:
cd build
ninja
ninja install

8、配置DPDK大页内存:
在/etc/default/grub中添加GRUB_CMDLINE_LINUX=“net.ifnames=0 biosdevname=0 default_hugepagesz=2M hugepagesz=2M hugepages=2048”。也可以根据CPU的配置为1G大页,使用命令cat /proc/cpuinfo |grep pdpe1gb查看CPU信息,如果有显示pdpe1gb,则支持1G大页。
DPDK的源码编译安装_第2张图片

重新生成grub配置文件: grub-mkconfig -o /boot/grub/grub.cfg

9、reboot重启系统后,使用grep Huge /proc/meminfo查看大页内存是否生效:
DPDK的源码编译安装_第3张图片

10、加载igb_uio驱动,并绑定网卡使用igb_uio驱动:
modprobe uio
insmod dpdk-kmods/linux/igb_uio/igb_uio.ko
先使用dpdk-devbind.py -s查看网卡驱动绑定情况:
DPDK的源码编译安装_第4张图片
绑定两张网卡使用igb_uio驱动:
dpdk-devbind.py -b igb_uio 0000:0b:00.0
dpdk-devbind.py -b igb_uio 0000:13:00.0

11、至此,DPDK已经安装好了,我们来启动DPDK的测试程序dpdk-testpmd测试一下收发包:
DPDK的源码编译安装_第5张图片
可以看到有收发包统计了,OK,大功告成,我们已经成功迈出了学习研究DPDK的第一步。

你可能感兴趣的:(DPDK,DPDK,网络协议,meson,ninja,大页内存)