Linux Ubuntu 20.04 安装DPDK方法指南

devtools/2024/10/16 2:25:46/

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


http://www.ppmy.cn/devtools/90646.html

相关文章

接口测试学习笔记1

一、行业背景和测试分层 1、招聘需求 1)手工测试:业务需求、业务逻辑 2)自动化测试:业务逻辑 技术规范 功能自动化 QTP、Selenium 性能自动化 LoadRunner、JMeter 接口自动化 Postman、Fiddler、JMeter、SoapUI... …

电子电气架构 --- 车辆模式管理

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

uniapp 谷歌地图 nvue

问题集合 安卓App端&#xff0c;开启点聚合 会导致markertap和labeltap的点击事件失效&#xff08;未解决&#xff09;标记点Label属性失效&#xff08;未解决&#xff09; <view class"content"><map id"map" class"map" :show-loc…

【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现

摘要&#xff1a;伴随着当代社会物质水平的不断提高&#xff0c;人们越来越注重精神享受&#xff0c;看电影成为人们日常生活中重要的组成成分。本文将针对豆瓣上热门电影评论进行爬取&#xff0c;应用可视化分析更为形象地了解该电影的动态。该系统可以使得人们实时了解到有关…

Pytorch人体姿态骨架生成图像

ControlNet是一个稳定扩散模型&#xff0c;可以复制构图和人体姿势。ControlNet解决了生成想要的确切姿势困难的问题。 Human Pose使用OpenPose检测关键点&#xff0c;如头部、肩膀、手的位置等。它适用于复制人类姿势&#xff0c;但不适用于其他细节&#xff0c;如服装、发型和…

富格林:深究安全出金做单经验

富格林认为&#xff0c;现货黄金近年来的表现可谓傲视群雄&#xff0c;相信上车交易现货黄金的投资者&#xff0c;都或多或少的在市场中分得一杯满意的“好酒”。不过话虽如此&#xff0c;也不代表所有人都可以安全轻松在现货黄金市场当中获利出金&#xff0c;尤其是对于新手而…

C++中的回调函数简单介绍

回调函数&#xff08;Callback Function&#xff09;是指将函数作为参数传递给其他函数&#xff0c;然后在合适的时机调用这个函数。在 C 中&#xff0c;回调函数常用于事件驱动编程、异步操作、以及更高级的接口设计。下面详细介绍 C 中的回调函数的概念和用法。 1. 回调函数…

前端(HTML + CSS)学成在线项目(仿)

头部区域 banner区域 精品推荐区域&#xff0c;这三个区域都是版心居中 头部区域分为&#xff1a;logo 导航 搜索 用户四个小块 鼠标悬停 :hover效果 banner区域分为&#xff1a;左侧导航 背景图 右侧课程表 鼠标悬停 :hover效果 精品推荐区域 鼠标悬停 :hover效果 精…