DPDK(一):安装与环境配置

基础环境

vmware16虚拟机+Ubuntu22.04

因为要同时使用wsl2就打开了hyper-v,也导致了一些后续问题,虚拟环境兼容版本选择了Workstation Beta,没有测试,但应该16及以上均可。

DPDK使用21.11 LTS版本

安装前准备

换源,下载源码等步骤略

为了安装,需要准备一些软件包,参见2. System Requirements — Data Plane Development Kit 22.07.0 documentation

APT安装

使用apt安装以下包:build-essential libnuma-dev libpcap-dev python3-pip python3-pyelftools

由于Ubuntu22.04安装了python3.10,不需要再安装python,安装pip3即可。

PIP安装

使用pip安装meson和ninja,注意同样需要使用sudo安装到系统usr目录下,如果安装到用户目录下后续ninja install时会出现问题。

网卡配置

在虚拟机设置界面添加一个新的网卡,配置为桥接模式,以待后续测试

大页内存设置

修改/etc/default/grub配置文件,在GRUB_CMDLINE_LINUX一行中加入

default_hugepagesz=1G hugepagesz=1G hugepages=4 iommu=pt intel_iommu=on

这里仅展示永久设置1G大页的方法,临时配置或其他大小见官方文档。注意不要设置大于物理内存的总大页空间,会导致虚拟机没办法启动。

保存后执行

update-grub

更新grub

在dev文件夹下创建挂载点

sudo mkdir -p /dev/hugepages

之后挂载大页内存

sudo mount -t hugetlbfs nodev /dev/hugepages

重启后查看cat /proc/meminfo中的hugepage检查是否成功。

安装DPDK

解压源码包,在解压的根目录执行meson build,如想编译examples可以添加选项-Dexamples=all,更多选项参见3. Compiling the DPDK Target from Source — Data Plane Development Kit 22.07.0 documentation

切换到build目录,执行

ninja
sudo ninja install
sudo ldconfig

 完成安装

网卡配置

使用到usertools/dpdk-devbind.py

在使用hyper-v之后就不能再使用虚拟机的Intel VT-x,因此vfio-pci不能使用,如果可以的话官方建议使用vfio-pci保证安全性,见6. Linux Drivers — Data Plane Development Kit 22.07.0 documentation

下面介绍使用igb_uio驱动的方式,DPDK20.x版本后不再提供igb_uio的源码,可以到此下载

dpdk-kmods - Kernel modules or add-ons 

解压后执行make编译即可,得到模块文件igb_uio.ko,执行

sudo modprobe uio
sudo insmod igb_uio.ko

安装两个模块,此时执行

usertools/dpdk-devbind.py --status

可以在两个网卡后面的unused后面看到igb_uio说明模块配置成功

之后执行

sudo usertools/dpdk-devbind.py --bind=igb_uio eth0

即可将eth0网卡的驱动配置为igb_uio。

测试

可以使用examples中的helloworld和app中的dpdk-testpmd进行测试,见官方文档。

或许会添加使用skeleton测试的细节。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值