云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Dpdk 环境搭建保姆级步骤及常见错误

jxf315 2025-10-02 01:37:03 教程文章 9 ℃

专注分享Linux后台服务器开发,包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等,相关视频文档资料私信【1】进群获取。




DPDK环境搭建工具准备: vmware + Ubuntu 16.04 Server 版本

1.vmware 添加两块网卡

桥接网卡作为 DPDK 运行的网卡

NAT 网卡作为 ssh 连接的网卡

2.修改网卡配置信息

将 ethernet0.virtualDev 由 e1000 修改 vmxnet3,因为 vmware 的 vmxnet3 支持多队列网卡

3.修改 ubuntu 系统的启动参数

物理机:

default_hugepages=1G hugepagesz=1G hugepages=20 isolcpus=0-7

虚拟机:

default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2

4.查看系统是否支持多队列网卡

执行:cat /proc/interrupts

5.编译 DPDK

下载 dpdk : 地址

随便挑选版本,不同版本直接子系统接口会有差异,建议选择 dpdk 19.08.2

可以通过 usertools/dpdk-setup.sh

64 位系统选择 39.

编译完会多出 x86_64-native-linux-gcc 的文件夹

6.设置 DPDK 的环境变量

# export RTE_SDK=/home/dpdk

# export RTE_TARGET=x86_64-native-linux-gcc

7.执行 testpmd

执行

# /usertools/dpdk-setup.sh

选择 43 插入 IGB_UIO 模块, 选择网卡为 vmxnet3 会加载此模块

选择 44 插入 VFIO 模块,选择网卡为 e1000 会加载此模块

选择 49 绑定 igb_uio 模块, 也可以退出,通过命令来执行。

# ifconfig eth0 down

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

选择 53 运行 testpmd

> show port info 0

8.编译 DPDK 程序

进入 example/helloworld ,

可以直接 make,

也可以通过 gcc 命令编译

# gcc -o helloword main.c -I /usr/local/include/dpdk/ -ldpdk -lpthread -

lnuma -ldl

9. 运行 DPDK 案例

Kni 运行:

./build/kni -l 4-7 -n 4 -- -P -p 0x3 -m --config="(0, 4, 6),(1, 5, 7)"

L3fwd 运行

# ./build/l3fwd -l 4-7 -n 4 -- -p 0x3 --config="(0, 0, 4),(1, 0, 5)" --

parse-ptype

常见错误

错误 1:

没有设置环境变量,请查看本篇《设置 dpdk 的环境变量》

bitmask 请选择 7, bit:111

分享一个宝藏免费公开课,订阅即可直接学习,每晚8-10点都有LinuxC/C++服务器高级架构的技术提升课程对标大厂岗位技术栈:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

Tags:

最近发表
标签列表