编译dpdk19.08.2中example时一系列报错解决

dpdk19.08编译过程全解

  • dpdk 介绍
  • 问题描述
  • 编译过程
    • 执行Step 1
      • 报错一
        • 解决方式
      • 报错二
        • 解决方式
    • 继续执行Step 2
      • 48的时候报错
    • 49没有修改成功
    • 输入60退出
  • 使用过程
    • 执行make
      • 报错一
        • 解决方式
    • 继续make
      • 报错二
        • 解决方式
    • 继续make
    • 执行生成文件helloworld
      • 报错三
        • 解决方式
    • 执行make
  • 完成
  • 参考链接

在这里插入图片描述

dpdk 介绍

  数据平面开发套件(DPDK [1],Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。[1]

问题描述

  编译dpdk19.08.2,并使用example的案例时报错及解决方式。

编译过程

执行Step 1

  1. 首先下载dpdk19.08.2,解压,进入解压目录
cd ./dpdk-stable-19.08.2
  1. 使用dpdk提供的工具编译
./usertools/dpdk-setup.sh

输入36 ,回车

报错一

eal/eal_memory.c:32:10: fatal error: numa.h: No such file or directory

报错原因是numa没下载。

解决方式

下载缺失部分

sudo apt-get install libnuma-dev

然后重新进入执行

./usertools/dpdk-setup.sh

输入36 ,回车

报错二

Build complete [x86_64-native-linuxapp-gcc]
Installation cannot run with T defined and DESTDIR undefined

报错原因是,没有配置安装目录,无法安装。

解决方式

本次开发不需要安装dpdk,所以忽略这个报错。

继续执行Step 2

依次输入43-50,输入49和50的时候,还需要在回车后第二次输入512

48的时候报错

/usr/bin/env: ‘python’: No such file or directory

没有找到python的路径,输入下面命令,发现系统是有python的,只是不是路径上

whereis python3

添加一个链接即可

sudo ln -s /usr/bin/python3 /usr/bin/python

49没有修改成功

Warning: routing table indicates that interface 0000:03:00.0 is active. Not modifying

需要先把这个网卡down掉,再修改
sudo ifconfig eth160 down

输入60退出

完成dpdk编译配置

使用过程

进入examples目录的helloworld案例

cd examples/helloworld

执行make

make

报错一

/bin/sh: 1: pkg-config: not found

报错原因是没有安装pkg-config

解决方式
sudo apt-get install pkg-config

继续make

报错二

Makefile:44: *** "Please define RTE_SDK environment variable"。 停止。

报错原因,没有定义RTE_SDK 环境变量

解决方式

进入到dpdk解压目录,查看解压目录路径,然后配置上去

export RTE_SDK=解压路径
或者
export RTE_SDK=$(PWD)

还需要配置刚刚dpdk编译生成的目录的环境变量
在这里插入图片描述
通常是选择的dpdk环境的名称

export RTE_TARGET=x86_64-native-linuxapp-gcc

如果上面一步的 RTE_TARGET 没有配置正确,会有下面的报错:

***mk/internal/rte.extvars.mk:29: *** Cannot find .config in ***

修改成正确的就行了

继续make

进入helloworld目录,执行 make
输出如下则编译成功

CC main.o
LD helloworld
INSTALL-APP helloworld
INSTALL-MAP helloworld.map

执行生成文件helloworld

执行

./build/helloworld

报错三

EAL: Cannot get hugepage information.
已放弃 (核心已转储)

报错原因应该是巨页没有配置

解决方式
  1. 首先可以查看以下配置信息
cat /proc/meminfo | grep Huge

输出
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB


cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
输出
0

依次执行下面的命令配置巨页

1.
echo '1024' > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

2.
如果没/mnt/huge这个文件夹,就创建一个huge,有则忽略下面这一步
mkdir /mnt/huge

3.
mount -t hugetlbfs nodev /mnt/huge

执行make

make clean
make
./build/helloworld

输出
hello from core 1
hello from core 0

完成

以上就全部完成,可以去编写自己的代码了,报错部分基本解决,还有部分警告部分还没有去解决。

参考链接

百度百科— dpdk
dpdk — 官网

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最优化问题 - 内点法

以下是一种循序推理的方式,来帮助你从基础概念出发,理解 内点法(Interior-Point Method, IPM) 是什么、为什么要用它,以及它是如何工作的。 1. 问题起点:带不等式约束的优化 假设你有一个带不等式约束的优…

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到 这次在windows的WSL2中遇到了一个非常奇怪的错误,就是 CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find BLAS (missing: BLAS_LIBRAR…

Ubuntu Server 安装 XFCE4桌面

Ubuntu Server没有桌面环境,一些软件有桌面环境使用起来才更加方便,所以我尝试安装桌面环境。常用的桌面环境有:GNOME、KDE Plasma、XFCE4等。这里我选择安装XFCE4桌面环境,主要因为它是一个极轻量级的桌面环境,适合内…

芯片AI深度实战:实战篇之vim chat

利用vim-ollama这个vim插件,可以在vim内和本地大模型聊天。 系列文章: 芯片AI深度实战:基础篇之Ollama-CSDN博客 芯片AI深度实战:基础篇之langchain-CSDN博客 芯片AI深度实战:实战篇之vim chat-CSDN博客 芯片AI深度…

线程概念、操作

一、背景知识 1、地址空间进一步理解 在父子进程对同一变量进行修改时发生写时拷贝,这时候拷贝的基本单位是4KB,会将该变量所在的页框全拷贝一份,这是因为修改该变量很有可能会修改其周围的变量(局部性原理)&#xf…

设置jmeter外观颜色

设置jmeter外观颜色 方法: 步骤一、点击顶部选项 ->外观,这里提供了不同的主题,可选自己喜欢的风格。 步骤二、选择后,弹框提示点击Yes。

2021 年 6 月大学英语四级考试真题(第 1 套)——纯享题目版

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,目前中南大学MBA在读,也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 &…

[论文总结] 深度学习在农业领域应用论文笔记14

当下,深度学习在农业领域的研究热度持续攀升,相关论文发表量呈现出迅猛增长的态势。但繁荣背后,质量却不尽人意。相当一部分论文内容空洞无物,缺乏能够落地转化的实际价值,“凑数” 的痕迹十分明显。在农业信息化领域的…

LangGraph系列-1:用LangGraph构建简单聊天机器人

在快速发展的人工智能和大型语言模型(llm)世界中,开发人员不断寻求创建更灵活、更强大、更直观的人工智能代理的方法。 虽然LangChain已经改变了这个领域的游戏规则,允许创建复杂的链和代理,但对代理运行时的更复杂控制…

【hot100】刷题记录(7)-除自身数组以外的乘积

题目描述: 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#x…

OpenCV边沿检测(Python版)

边缘检测是图像处理中的一项重要任务,用于找到图像中的边界或边缘。它在计算机视觉、图像处理和模式识别等领域中具有广泛的应用。 边缘可以被定义为图像亮度、颜色或纹理的突变区域。边缘检测算法旨在识别这些变化并将其标记为边缘。边缘检测可以用于分割图像、检测…

推荐七节来自NVIDIA、Google、斯坦福的AI课程

英伟达 (1)在 10 分钟内构建大脑 • 探索神经网络如何使用数据进行学习。 • 了解神经元背后的数学原理。 链接:https://learn.nvidia.com/courses/course-detail?course_idcourse-v1:DLIT-FX-01V1 (2)构建视频 A…

《从因果关系的角度学习失真不变表示以用于图像恢复》学习笔记

paper:2303.06859 GitHub:lixinustc/Causal-IR-DIL: Distortion invariant feature learning for image restoration from a causality perspective 2023 CVPR 摘要 近年来,我们见证了深度神经网络(DNNs)在图像恢复…

亚博microros小车-原生ubuntu支持系列:16 机器人状态估计

本来想测试下gmapping建图,但是底层依赖了yahboomcar_bringup做底层的数据处理,所以先把依赖的工程导入。 程序启动后,会订阅imu和odom数据,过滤掉一部分的imu数据后,然后与odom数据进行融合,最后输出一个…

不背单词快捷键(不背单词键盘快捷键)

文章目录 不背单词快捷键 不背单词快捷键 ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ        ‌‍ᅟᅠ    …

VPR概述、资源

SOTA网站: Visual Place Recognition | Papers With Code VPR(Visual Place Recognition) 是计算机视觉领域的一项关键任务,旨在通过图像匹配和分析来识别场景或位置。它的目标是根据视觉信息判断某个场景是否与数据库中的场景匹…

MYSQL 商城系统设计 商品数据表的设计 商品 商品类别 商品选项卡 多表查询

介绍 在开发商品模块时,通常使用分表的方式进行查询以及关联。在通过表连接的方式进行查询。每个商品都有不同的分类,每个不同分类下面都有商品规格可以选择,每个商品分类对应商品规格都有自己的价格和库存。在实际的开发中应该给这些表进行…

代理模式 -- 学习笔记

代理模式学习笔记 什么是代理? 代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等) 拿一…

Flutter使用Flavor实现切换环境和多渠道打包

在Android开发中通常我们使用flavor进行多渠道打包,flutter开发中同样有这种方式,不过需要在原生中配置 具体方案其实flutter官网个了相关示例(https://docs.flutter.dev/deployment/flavors),我这里记录一下自己的操作 Android …

WinDBG查找C++句柄泄露

C代码(频繁点击About按钮导致Mutex句柄泄露) HANDLE _mutexHandle;LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {switch (message){case WM_COMMAND:{int wmId LOWORD(wParam);// 分析菜单选择:switch (wmId){c…