Ubuntu系统下DPDK环境搭建

2024-03-01 23:28
文章标签 系统 ubuntu 搭建 环境 dpdk

本文主要是介绍Ubuntu系统下DPDK环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一.虚拟机配置
    • 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
在这里插入图片描述
环境配置成功!!!

这篇关于Ubuntu系统下DPDK环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764183

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv