Ubuntu系统下DPDK环境搭建

news2024/11/20 4:39:01

目录

  • 一.虚拟机配置
    • 1.添加一个网卡(桥接模式)
    • 2.修改网卡类型
    • 3.修改网卡名称
    • 4.重启虚拟机
    • 5.查看网卡信息
    • 6.dpdk配置内存巨型页
  • 三 DPDK源代码下载和编译
    • 1.下载源代码
    • 2.解压源代码
    • 3.安装编译环境
    • 4.编译
    • 5.设置dpdk的环境变量
    • 6.禁止多队列网卡
    • 7.加载igb_uio模块
    • 8.网卡绑定
    • 9.验证测试案例
    • 10.运行第一个DPDK程序

一.虚拟机配置

1.添加一个网卡(桥接模式)

在这里插入图片描述

2.修改网卡类型

在虚拟机本地文件存储路径下,打开文件名后缀为 .vmx 的文件,修改以下参数:

ethernet1.virtualDev = "e1000"

修改为:

ethernet1.virtualDev = "vmxnet3"

注意:修改时须在虚拟机关机状态下修改

3.修改网卡名称

通过命令sudo vim /etc/netplan/00-installer-config.yaml可以看到如下:
在这里插入图片描述
将其修改为:
在这里插入图片描述
其次,通过命令sudo vim /etc/default/grub 将参数GRUB_CMDLINE_LINUX="" 修改为:GRUB_CMDLINE_LINUX="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US net.ifnames=0 biosdevname=0"

再执行命令sudo grub-mkconfig -o /boot/grub/grub.cfg

4.重启虚拟机

5.查看网卡信息

ifconfig

在这里插入图片描述
查看是否有多队列网卡:cat /proc/interrupts | grep eth
在这里插入图片描述
通过图片展示信息可以看到此时为一个普通网卡eth1和一个多队列网卡eth0

6.dpdk配置内存巨型页

Ubuntu20.04支持内存巨型页,但是还是要我们修改启动参数,设置巨型页大小和数量,设置方法是修改linux启动参数,我们需要修改**/etc/default/grub文件的GRUB_CMDLINE_LINUX参数,添加default_hugepages=1G hugepagesz=2M hugepages=1024**
sudo vim /etc/default/grub

GRUB_CMDLINE_LINUX="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US net.ifnames=0 biosdevname=0 default_hugepages=1G hugepagesz=2M hugepages=1024"

再执行命令:sudo grub-mkconfig -o /boot/grub/grub.cfg

三 DPDK源代码下载和编译

1.下载源代码

官方地址:Download
由于DPDK各版本之间差异较大,编译过程以实际情况为准,此处演示版本为 DPDK 19.08.2
在这里插入图片描述

2.解压源代码

将下载的DPDK压缩包放置到合适的目录中,此处我的路径为:/home/zloser/share/ 通过命令:tar -xJf dpdk-19.08.2.tar.xz 解压后得到/home/zloser/share/dpdk-stable-19.08.2的源代码dpdk-stable-19.08.2

3.安装编译环境

sudo apt-get install libnuma-dev

4.编译

注意:编译需要在root权限下

cd dpdk-stable-19.08.2/

执行脚本命令:./usertools/dpdk-setup.sh
在这里插入图片描述
选择:39 回车

Option:39

在这里插入图片描述
编译成功后输入:60 退出,在该目录下会存在一个新的文件夹:x86_64-native-linux-gcc
在这里插入图片描述

5.设置dpdk的环境变量

执行命令:
export RTE_SDK=/home/zloser/share/dpdk-stable-19.08.2(修改为自己的路径)
export RTE_TARGET=x86_64-native-linux-gcc
在这里插入图片描述

6.禁止多队列网卡

通过上述操作可以知道多队列网卡为:eth0
通过命令使其禁止:sudo ifconfig eth0 down
在这里插入图片描述

7.加载igb_uio模块

执行脚本命令:./usertools/dpdk-setup.sh
Option:43
在这里插入图片描述

8.网卡绑定

igb_uio模块加载成功后,我们选择49绑定igb_uio模块到eth0,输入PCI地址:0000:03:00:0,将网卡绑定到igb_uio模块.
Option:49
在这里插入图片描述
绑定成功后如下图所示,否则绑定失败,需重新绑定.
在这里插入图片描述

9.验证测试案例

Option:53
根据自己虚拟机的核心数选择bitmask值,否则测试出错.
bitmask:7(此处虚拟机核心数为8)
在这里插入图片描述
在这里插入图片描述

输入指令 show port info 0 查看接口信息
在这里插入图片描述
输入:quit退出

10.运行第一个DPDK程序

dpdk的源代码中有很多例子程序,都放在example目录中,其中有个最简单的程序helloworld,进入example/helloworld中,直接make,可以编译出helloworld程序。最后我们使用root权限执行
make
sudo ./build/helloworld
在这里插入图片描述
环境配置成功!!!

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

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

相关文章

Docker 入门笔记

课程地址 容器技术概述 docker能做什么:将应用程序代码和依赖打包为一个镜像,作为交付介质,在各种环境中部署 相比于虚拟机,docker 只虚拟出一个隔离的程序运行环境,其需要则资源大大减少 容器内的程序就好像直接运…

安装 docker 可视化工具 portainer

portainer 官方网站 https://www.portainer.io/ 一、portainer 介绍 Portainer是一款开源的容器管理平台,它提供了一个直观易用的Web界面,帮助用户管理Docker容器集群、镜像、卷等资源。Portainer 支持多种 Docker 环境,包括本地Docker、Sw…

EXTJS实现自定义表格

宽度自适应 width: 100%, 高度自适应 height: 100% 同时设置表格所处页面高度100% html,body,#griddemo{height: 100%;} 自定义显示的文本内容 Ext.onReady(function () {Ext.QuickTips.init()function sexText(val) {if (val 0) {return <span style"color:green…

20240229作业

1.编写链表&#xff0c;链表里面随便搞点数据&#xff0c;使用 fprintf 将链表中所有的数据&#xff0c;保存到文件中&#xff0c;使用 fscanf 读取文件中的数据&#xff0c;写入链表中 #include <stdio.h> #include <stdlib.h>// 定义链表节点结构体 struct List…

Linux系统安装使用nginx

1.编译安装Nginx服务 (1)关闭防火墙&#xff0c;将安装nginx所需要软件包传到/opt目录下 systemctl stop firewalld systemctl disable firewalld setenforce 0 将压缩包传入到/opt目录下 cd /opt wget http://nginx.org/download/nginx-1.18.0.tar.gz (2). 安装依赖…

小红书的几种赚钱方式解读

小红书的七种变现方式&#xff1a; 1.通过小红书蒲公英平台接广告&#xff0c;粉丝数量大于1000的用户可以开通。单条笔记的广告费用从几百元到几十万不等。 2.开设小红书专栏&#xff0c;粉丝数量大于1万的用户可以开通。 3.进行私域变现&#xff0c;将小红书的咨询引导到微信…

解决内嵌帆软报表出现重定向问题

最近收到反馈&#xff0c;某些程序的前端通过iframe标签内嵌finebi帆软报表时&#xff0c;出现一系列问题。 问题1: 如下图所示&#xff0c;单点登录(单点登录地址schema是https)后service地址的schema协议是http, 浏览器内核的安全策略不允许http访问https。 解决方案&#xf…

HTTP笔记(五)

个人学习笔记&#xff08;整理不易&#xff0c;有帮助点个赞&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客 目录 一&#xff1a;HTTP报文首部 &#xff08;1&#xff09;HTTP请求报文 &#xff08;2&#xff09…

基于深度学习的水稻病害检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 可以任意更换主干结构&#xff0c;支持几百种网络主干。 数据集&#xff1a;     网上下载的数据集&#x…

用户增长6步法

什么是用户增长&#xff1f; 通过痛点、产品、渠道、内容、技术、数据等要素实现用户的获取、激活、留存、变现、推荐&#xff0c;用户增长包含了产品出现前的用户增长、产品生产周期内的用户增长、产品生命周期外的用户增长三个阶段。 用户增长6步法&#xff1a;方法、模型和…

【重温设计模式】桥接模式及其Java示例

【重温设计模式】桥接模式及其Java示例 桥接模式的介绍 今天我们要探讨的&#xff0c;正是一种名为“桥接模式”的设计模式。桥接模式&#xff0c;英文名Bridge Pattern&#xff0c;是一种结构型设计模式&#xff0c;它的主要目的是将抽象部分与实现部分分离&#xff0c;使得两…

Unity(第十一部)场景

游戏有多个场景组成&#xff08;新手村&#xff0c;某某副本&#xff0c;主城&#xff09; 场景是有多个物体组成&#xff08;怪物&#xff0c;地形&#xff0c;玩家等&#xff09; 物体是有多个组件组成&#xff08;刚体组件&#xff0c;自定义脚本&#xff09; 创建场景 编辑…

77. 组合(力扣LeetCode)

文章目录 77. 组合题目描述回溯算法组合问题的剪枝操作 77. 组合 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [ [2,4], [3,4],…

Android T 远程动画显示流程其三——桌面侧动画启动到系统侧结束流程

前言 接着前文分析Android T 远程动画显示流程其二 我们通过IRemoteAnimationRunner跨进程通信从系统进程来到了桌面进程&#xff0c;这里是真正动画播放的逻辑。 之后又通过IRemoteAnimationFinishedCallback跨进程通信回到系统进程&#xff0c;处理动画结束时的逻辑。 进入…

07-Linux部署Nginx

Linux部署Nginx 简介 NGINX是一款高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP代理服务器。它的特点包括占用内存少、并发能力强&#xff0c;因此在处理高负载和高并发的场景时表现优秀。NGINX由俄罗斯的程序设计师Igor Sysoev开发&#xff0c;最初是为俄…

LeetCode:2867. 统计树中的合法路径数目(筛质数+ DFS Java)

目录 2867. 统计树中的合法路径数目 题目描述&#xff1a; 实现代码与思路&#xff1a; 筛质数 DFS 原理思路&#xff1a; 2867. 统计树中的合法路径数目 题目描述&#xff1a; 给你一棵 n 个节点的无向树&#xff0c;节点编号为 1 到 n 。给你一个整数 n 和一个长度为 …

精读《React 高阶组件》

本期精读文章是&#xff1a;React Higher Order Components in depth 1 引言 高阶组件&#xff08; higher-order component &#xff0c;HOC &#xff09;是 React 中复用组件逻辑的一种进阶技巧。它本身并不是 React 的 API&#xff0c;而是一种 React 组件的设计理念&…

java演唱会网上订票购票系统springboot+vue

随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的交换和信息流通显得特别重要。因此&#xff0c;开发合适的基于springboot的演唱会购票系统的设计与实现成为企业必然要走…

安科瑞Acrel-2000ES 储能柜能量管理系统

安科瑞戴婷 安科瑞储能能量管理系统Acrel-2000ES&#xff0c;专门针对工商业储能柜、储能集装箱研发的一款储能EMS&#xff0c; 具有完善的储能监控与管理功能,涵盖了储能系统设备(PCS、BMS、电表、消防、空调等)的详细信息,实现了数据采集、数据处理、数据存储、数据查询与分…

17.题目:编号3766 无尽的石头

题目&#xff1a; ###本题主要考察模拟 #include<bits/stdc.h> using namespace std; int sum(int x){int result0;while(x){resultx%10;x/10;}return result; } int main(){int t;cin>>t;while(t--){int n;cin>>n;int buf1;int ans0;for(int i1;i<100…