Linux Ubuntu 20.04 安装DPDK方法指南

系统及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 就是成功了

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值