Linux Ubuntu 20.04 安装DPDK方法指南

news2024/11/14 2:31:40

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1976633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python库(17):pkuseg库实现文本分词

1 pkuseg简介 PKUSEG,全称“北京大学语言计算与机器学习研究组开发的分词工具”,它就像一把锋利的瑞士军刀,帮助我们轻松切割文本。 在Python的文本处理领域,有很多分词工具,比如jieba、SnowNLP等。但是,…

iOS多界面传值

iOS多界面传值 文章目录 iOS多界面传值属性传值协议传值Block传值通知传值KVO传值概述使用步骤 总结 属性传值 这个传值方式和他的名字一样,我们主要还是通过属性对值进行一个传递,主要应用场景是前一个页面向后一个页面传值。 首先我们先要设置一个属…

哪里有ai写真软件免费方法?轻松获取写真的5个技巧

想在8月为自己的社交媒体更新个人形象吗?想要为即将到来的秋季增添一抹新意吗? AI写真软件是我们最佳的理想选择,通过简单的操作,我们可以在短时间内获得一张专属于自己的AI头像,让这个夏天的回忆更加生动。 特别是常…

C++进阶:设计模式___适配器模式

前言 在C的基础语法的学习后,更进一步为应用场景多写代码.其中设计模式是有较大应用空间. 引入 原本在写容器中适配器类有关的帖子,发现适配模式需要先了解,于是试着先写篇和适配器模式相关的帖子 理解什么是适配器类,需要知道什么是适配器模式.适配器模式是设计模式的一种.笔…

【论文阅读】PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images

Q: 论文如何解决这个问题? A: 论文通过提出PETRv2框架来解决多相机图像的3D感知问题,具体方法包括以下几个关键点: 时间建模(Temporal Modeling): 通过3D坐标对齐(3D Coordinates Alignment&…

AI应用开发前景与目标

前景与目标 什么是AIGC AIGC最基本的能力是生成内容,包括文本、图像、视频、代码、3D内容或者几种媒介类型转换组合 形成的“多模态内容”。生成算法、预训练模型、多模态等技术累积融合,以及深度模型方面的 技术创新,共同催生了AIGC的大爆…

一篇文章教你如何在Android上使用QPython高效编程

导语:你是否想在Android设备上体验Python编程的乐趣?QPython是一款强大的Python脚本引擎,让你在手机上也能轻松编写和运行Python代码。本文将带你了解QPython的使用方法,让你随时随地开启编程之旅! 一、认识QPython Q…

File 34

package File;import java.awt.*; import java.io.File;public class file1 {public static void main(String[] args) {//创建FILE对象,指代某个具体的文件//路径分隔符File f1new File("C:/Users/SUI/Desktop/kaishi/nih.txt");// File f1new File(&quo…

推荐4款比转转大师还好用的专业数据恢复软件。

数据已经成为我们生活和工作中不可或缺的一部分;然而我们在很多的场景当中都会导致数据丢失;于是数据恢复工具便成了一些人的常用工具。很多人都知道转转大师数据恢复软件,但是也有其他的恢复软件也很好用。 1、福昕恢复 直通车:…

ArkTS通用属性

目录 一、尺寸设置 宽高,外边距,内边距,尺寸size layoutWeight constraintSize 二、位置设置 align direction position offset 使用Edge方式position,offset 三、布局约束 aspectRatio displayPriority 四、Flex布局 flexBas…

数字转罗马字符

import java.util.Scanner;/*** author gyf* ClassName Test* Date 2024/7/31 17:14* Version V1.0* Description : 方法一*/ public class Test {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.println("请输入一个字符串…

php类与对象

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理php类与对象相关的知识点 适合有编程基础的人观看 因为我这个也是整理第n语言,这些老套的概念就不再多啰嗦了。 直接整理相应的语法 感觉把php当第一语言学的人不太多了 快速理解类与对…

MyBatis的example.createCriteria()方法学习记录

目录 一、mapper的crud方法:1. insert方法insert(User user)insertSelective(User user) 2. select方法selectByPrimaryKey(id)selectByExample(example)selectCountByExample(example) 3. update方法updateByPrimaryKey(User user)updateByPrimaryKeySelective(User user)upda…

从零开始的MicroPython(六)ADC

上一篇:PWM 文章目录 ADC是什么ESP32的ADC代码 ADC是什么 ADC的英文全称是Analog / Digital Converter,是将模拟信号转换为数字信号的转换器,ADC是单片机读取传感器信号的常见方式。 我们日常生活中的信号,例如光照强度&#xf…

机器学习练手(三):基于决策树的iris 多分类和波士顿房价预测

总结:本文为和鲸python 可视化探索训练营资料整理而来,加入了自己的理解(by GPT4o) 原活动链接 原作者:vgbhfive,多年风控引擎研发及金融模型开发经验,现任某公司风控研发工程师,对…

python通过pyautogui自动给微信聊天窗口发消息

使用py脚本自动给聊天窗口发消息 1.突然的自我2.编写脚本玩一把i.先获取窗口位置ii.模拟聊天iii.疗效不错呢 1.突然的自我 突然想到pyautogui可以做那么事情, 那么是不是可以模拟聊天呢,如果结合现在的大模型chatGPT一边问然后得到结果一边自动和别人聊…

一文读懂新版Nacos的使用方式

文章目录 什么是 NacosNacos 架构Nacos 的本地启动 构建提供者 provider-nacos-8081搭建环境编写配置文件 application.yaml构建数据库编写业务实体类控制器类逻辑层与数据层接口 模块结构 构建消费者 consumer-nacos-8080搭建环境编写 yaml 文件配置编写业务编写配置类编写 Co…

Linux系统之NFS服务配置

准备工作 克隆两台linux,并更改其Mac地址,作为NFS客户端;将服务器更名为学号nfsserver,配置IP地址为192.168.学号.1 将客户端Client1更名为学号client1,配置IP地址为192.168.学号.2 将客户端Client2更名为学号clien…

达梦数据库一体机在宜昌市财政局上线了!

财政作为国家治理的基础和重要支柱,其数字化转型已成为构建现代财政制度的必由之路,引领着财政管理体系向更高效、更智能的方向迈进。 达梦数据全面助力财政信息化转型与智能化发展,采用 DAMEGN PAI I 系列数据库一体机,为宜昌市财…

python实现图像分割算法3

python实现区域增长算法 算法原理基本步骤数学模型Python实现详细解释优缺点应用领域区域增长算法是一种经典的图像分割技术,它的目标是将图像划分为多个互不重叠的区域。该算法通过迭代地合并与种子区域相似的邻域像素来实现分割。区域增长算法通常用于需要精确分割的场景,如…