DPDK使用make编译并运行示例程序

       环境:
       VMware® Workstation 16 Pro 16.2.4
       虚拟机系统:Centos 8
       DPDK版本:stable-20.11.10

       下载源码后,使用meson和ninja编译完成、配置并挂载大页、内核和VFIO设置完成,在dpdk源码目录下的build/example中有可以直接运行的程序:
在这里插入图片描述
       但是这是使用meson和ninja编译的。使用make编译可以在dpdk源码目录下:

/home/wls/dpdk-stable-20.11.10/examples

在这里插入图片描述
这里有源码自带的例子,可以自己使用make编译并运行,也可以自己写程序放在这个目录下编译。
       这里编译源码自带的helloworld程序。开头makefile变异就遇到问题:
在这里插入图片描述
其中makefile中是这样写的:

# Build using pkg-config variables if possible
ifneq ($(shell $(PKGCONF) --exists libdpdk && echo 0),0)
$(error "no installation of DPDK found")
endif

       意思就是libdpdk找不到,网上找答案说使用命令:pkg-config libdpdk --libs找,结果没找到:

Package libdpdk was not found in the pkg-config search path.
Perhaps you should add the directory containing `libdpdk.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libdpdk', required by 'virtual:world', not found

       这里解决办法是设置PKG_CONFIG_PATH环境变量为:/usr/local/lib64/pkgconfig/,即执行:

export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/

       然后问题解决。
       如果遇到:

Please define RTE_SDK environment variable

       这个问题,解决办法也是一样,设置PKG_CONFIG_PATH环境变量。

编译共享库:

1.make
2.cc -O3 -I/usr/local/include -include rte_config.h -march=native  -DALLOW_EXPERIMENTAL_API main.c -o build/helloworld-shared  -Wl,--as-needed -L/home/wls/dpdk-stable-20.11.10/build/lib -lrte_node -lrte_graph -lrte_pipeline -lrte_table -lrte_pdump -lrte_port -lrte_fib -lrte_ipsec -lrte_vhost -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_regexdev -lrte_rawdev -lrte_power -lrte_member -lrte_lpm -lrte_latencystats -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bpf -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_rcu -lrte_ring -lrte_eal -lrte_telemetry -lrte_kvargs 
3.ln -sf helloworld-shared build/helloworld

       编译完成后又遇到问题:
[root@localhost helloworld]# ./build/helloworld
./build/helloworld: error while loading shared libraries: librte_eal.so.21: cannot open shared object file: No such file or directory

       说动态库找不到,解决办法是设置共享库加载路径:

export LD_LIBRARY_PATH=/home/wls/dpdk-stable-20.11.10/build/lib/:$LD_LIBRARY_PATH

       设置完成后,如果没有加载vfio驱动和绑定网卡,需要先加载vfio驱动和绑定网卡。
       查看是否加载vfio驱动:lsmod|grep vfio
       加载vfio驱动:modprobe vfio-pci
在这里插入图片描述
       这里我第一次加载vfio驱动是失败了的,因为我同时在使用windows的WSL和虚拟机,控制面板-》程序-》启用或关闭Windows功能中,虚拟机平台这个选项我是勾上的,不然启动不了WSL:
在这里插入图片描述
       但是要加载VFIO这里是不能勾选的,为了DPDK也只能委屈下我的WSL了。而且虚拟机设置-》处理器-》虚拟化引擎这三个选项都是要勾选的,不然加载vfio会失败。
在这里插入图片描述

       vfio加载成功后然后需要挂载网卡,运行dpdk-devbind.py --status查看网卡状态:
在这里插入图片描述
       这里我是要挂载ens192网卡,所以要把ens192 down掉,ifconfig ens192 down,再次查看已经down掉:
在这里插入图片描述
       然后绑定网卡:dpdk-devbind.py -b vfio-pci 0000:0b:00.0
       运行程序,成功:
在这里插入图片描述
       helloworld和子目录build内容如下:
在这里插入图片描述
       没有绑定网卡也可以运行,运行结果是这样的:
在这里插入图片描述
       网卡解绑命令:rmmod vfio-pci

       其中DPDK环境配置、环境变量配置、编译命令参考以下文章:
       https://www.jianshu.com/p/61c855582921
       https://www.cnblogs.com/studywithallofyou/p/17645767.html

       欢迎交流!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全技术和防火墙

安全技术和防火墙 安全技术 入侵检测系统:特点是不阻断网络访问,主要提供报警和事后监督,不主动介入,默默看着你(监控) 入侵防御系统:透明模式工作,数据包,网络监控&am…

Python22 Pandas库

Pandas 是一个Python数据分析库,它提供了高性能、易于使用的数据结构和数据分析工具。这个库适用于处理和分析输入数据,常见于统计分析、金融分析、社会科学研究等领域。 1.Pandas的核心功能 Pandas 库的核心功能包括: 1.数据结构&#xff…

YIA主题侧边栏如何添加3D旋转标签云?

WordPress站点侧边栏默认的标签云排版很一般,而3D旋转标签云就比较酷炫了。下面boke112百科就以YIA主题为例,跟大家说一说如何将默认的标签云修改成3D旋转标签云,具体步骤如下: 1、点此下载3d标签云文件(密码&#xf…

ardupilot开发 --- 视觉伺服 篇

风驰电掣云端飘,相机无法对上焦 1.视觉伺服分类2.视觉伺服中的坐标系3.成像模型推导4.IBVS理论推导5.IBVS面临的挑战6.visp 实践参考文献 1.视觉伺服分类 控制量是在图像空间中推导得到还是在欧式空间中推导得到,视觉伺服又可以分类为基于位置(PBVS)和基…

我的3次软考高项通关之旅

1、缘起 初次听说软考是在2022年下半年了,软考的高级分为很多种,我起先想报考高级架构师,但是架构师一年才考一次,如果一次考不过得再准备一年,时间对我来说太长了,于是我决定报考一年考两次的高项。对于国…

python实现可视化大屏(django+pyechars)

1.实现效果图 2.对数据库进行迁移 python manage.py makemigrations python manage.py migrate 3.登录页面 {% load static%} <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"…

计算机图形学入门20:加速光线追踪

1.前言 前文说了Whitted-style光线追踪技术的原理以及光线与平面的交点计算方式&#xff0c;对于现在应用最广的Polygon Mesh显式曲面来说&#xff0c;一个复杂场景中的多边形面总数可能达到千万甚至亿万以上&#xff0c;如果每个像素发射光线都和场景中每个平面进行求交点计算…

关于WebSocket

WebSocket 与传统的 HTTP 协议对比 在实时通信领域&#xff0c;传统的 HTTP 协议存在以下一些问题&#xff1a; 频繁的请求和响应&#xff1a;每次通信都需要建立和关闭连接&#xff0c;带来额外的开销。高延迟&#xff1a;每次通信都需要经过多个网络层的传输&#xff0c;延…

Android焦点机制结合WMS

文章前提&#xff1a; 了解WMS基本作用了解window的概念&#xff0c;phoneWindow&#xff0c;rootViewImpl了解view的事件分发 开始&#xff1a; 讲三件事情&#xff1a; window的创建&#xff0c;更新焦点的更新事件的分发 Window的创建&#xff0c;更新&#xff1a; wi…

完整代码Python爬取豆瓣电影详情数据

完整代码Python爬取豆瓣电影详情数据 引言 在数据科学和网络爬虫的世界里&#xff0c;豆瓣电影是一个丰富的数据源。在本文中&#xff0c;我们将探讨如何使用Python语言&#xff0c;结合requests和pyquery库来爬取豆瓣电影的详情页面数据。我们将通过一个具体的电影详情页面作…

农村经济与科技杂志社农村经济与科技编辑部2024年第8期目录

视点 数字经济驱动农业产业链升级路径研究——以河南省为例 王媛媛; 1-4 城乡融合视角下农村集体产权制度改革研究 齐建丽; 4-7 农业生态系统结构美建设内涵及实现路径 张鹏程; 8-13《农村经济与科技》投稿&#xff1a;cnqikantg126.com 农户宅基地退出政策加权…

【C++】——二叉搜索树(详解)

一 二叉搜索树概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: ✨若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 ✨若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值 …

在数字化转型中,数字孪生技术的作用和价值几何?

引言&#xff1a;随着全球化和市场竞争的加剧&#xff0c;企业需要通过数字化转型来提高生产效率、优化产品质量、降低成本&#xff0c;以增强自身竞争力。企业需要通过数字化转型更好地理解客户需求&#xff0c;提供个性化、定制化的产品和服务&#xff0c;从而满足客户的多样…

Axios-入门

介绍 Axios对原生Ajax进行了封装&#xff0c;简化书写&#xff0c;快速开发 官网&#xff1a;Axios中文文档 | Axios中文网 (axios-http.cn) 入门 1引入Axios的js文件 <script src"js/axios.js"></script> 2使用Axios发送请求&#xff0c;并获取响应…

链式队列算法库构建

学习贺利坚老师课程,构建链式队列算法库 数据结构之自建算法库——链队&#xff08;链式队列&#xff09;_数据结构函数链队列的算法框架有哪些-CSDN博客文章浏览阅读6.2k次&#xff0c;点赞3次&#xff0c;收藏9次。本文针对数据结构基础系列网络课程(3)&#xff1a;栈和队列…

在win7系统电脑安装node16的版本(已成功安装运行)

很多银行的项目行方都要求内网开发&#xff0c;但是我遇到的几个银行基本都是win7系统的电脑&#xff0c;而前端的项目又是需要高版本的node才能跑起来&#xff0c;所有就记录此解决方案文章&#xff01; 这是下载node安装包的地址&#xff1a;Index of /dist/ 在这里先下载自…

树形结构的勾选、取消勾选、删除、清空已选、回显、禁用

树形结构的勾选、取消勾选、删除、清空已选、回显、禁用 基本页面&#xff1a; 分为上传文件和编辑的页面 代码实现要点&#xff1a; 上传文件页面&#xff1a; 点开选择范围弹窗&#xff0c;三个radio单选框都为可选状态&#xff0c;默认显示的是第一个单选框&#xff08;按…

晶方科技:台积电吃饱,封装迎春?

半导体产业链掀起涨价潮&#xff0c;先进封装迎接利好。 这里我们来聊国内先进封装企业——晶方科技。 近期&#xff0c;由于产能供不应求&#xff0c;台积电决定上调先进封装产品价格&#xff0c;还表示订单已经排到2026年。 大哥吃不下了&#xff0c;剩下的订单全都是空间。…

Shell编程规范与变量-01

一、Shell脚本概述 在一些复杂的 Linux 维护工作中&#xff0c;大量重复性的输入和交互操作不仅费时费力&#xff0c;而且容易出错&#xff0c;而编写一个恰到好处的 Shell 脚本程序&#xff0c;可以批量处理、自动化地完成一系列维护任务&#xff0c;大大减轻管理员的负担。 1…

在Ubuntu上安装Python3

安装 python3 pip sudo apt -y install python3 python3-pip升级 pip python3 -m pip install --upgrade pip验证查看版本 python3 --version