yocto系列之针对从git仓库获取源代码编写recipe

回顾

针对借助yocto构建linux 镜像我们已经讲述了7部分, 简单回顾如下:

Yocto: 第1部分 - yocto系列之yocto是个什么东东

https://mp.csdn.net/mp_blog/creation/editor/136742286

Yocto: 第2部分 - yocto系列之配置ubuntu主机

https://mp.csdn.net/mp_blog/creation/editor/136745533

Yocto: 第3部分 - yocto系列之构建与运行第一个镜像

https://mp.csdn.net/mp_blog/creation/editor/136760112

Yocto: 第4部分 - yocto系列之针对rk3588平台构建一个基本镜像

https://mp.csdn.net/mp_blog/creation/editor/136760112

Yocto: 第5部分 -yocto系列之创建和添加新的layer

https://blog.csdn.net/hanpca/article/details/136781418?spm=1001.2014.3001.5502

Yocto: 第6部分 -yocto系列之理解与创建第一个定制recipe

https://blog.csdn.net/hanpca/article/details/136781609

Yocto: 第7部分 -yocto系列之针对tarball编写recipes

https://blog.csdn.net/hanpca/article/details/136819473?spm=1001.2014.3001.5502

在这篇文章中,我们将讨论如何编写从git存储库中获取源代码的recipe。随着git迅速成为各种规模的公司和个人的源代码管理(SCM)机制的选择,这也迅速成为编写bitbake食谱的首选方式。

在上一篇文章中,我们讨论了如何从位于远程和本地存储的tarball中获取源代码,本文中的recipe与上一篇文章描述的recipe没有本质的区别,只有细微的差异。

编写一个基于git的recipe

我们应用同第七部分同样的repo资源:

https://github.com/teggerhan/yocto-test-apps

在第七部分我们编写recipe是为了获取tarball, 本篇我们编写recipe是为了获取git repo中的源码。

当前我们的meta-test的目录结构如下:

所用repo的提交历史情况如下:

假设我们要检出repo中commit id 是c01dfd4对应的源码资源,对应的bitbake recipe(hw_git.bb)如下:

SRCREV 变量表明要应用的对应哪个sha1 哈希值提交的源代码

SRC_URI 指明仓库源码树的地址与协议

我们看到这个recipe文件与上一篇文章最大的不同是对PV的变量赋值。上次我们了解到PV是recipe的版本号。它看起来是x.y.z这样的搁置。

本篇中对于基于git的recipe,PV的生成方式如上所示。这里,SRCPV是另一个帮助我们定义PV的变量。正如在Yocto文档中提到的,SRCPV本身在meta/conf/bitbak .conf中定义,PV的非git部分,即0.1要根据源代码的发布版本进行更改。

S变量现被显式地分配了一个值${WORKDIR}/git。这样做是依据Yocto文档对git存储库的要求。

通常,从git中获取的recipe的版本号可能会频繁变化。根据bitbake的要求,recipe本身的名称应该是recipe-name_git.bb。例如,在本例中,我们可以将recipe命名为hw_git.bb。

测试这个recipe

现在试着用这个recipe构建一下目标镜像,如果没有问题, 构建会成功。

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

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

相关文章

yolov8训练自己的数据集以及权重转化为.engine格式(超详细)

文章目录 1 获取.mp42 pycharm切换文件2 .mp4文件提取帧图片3 帧图片筛选规则4 图片重命名5 图片名指定长度6 labelme使用规则7 标注人体关节点8 检测关键点标注的准确性9 json文件转化成txt文件10 划分数据集、验证集2 pycharm切换文件11 调整训练参数12 .pt文件转化.onnx13 .…

最新WordPress网址导航设计师主题风格网站源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 最新WordPress精品网址导航主题整站源码WAP端修复tab标签ajax加载模式会显示未审核的网址的bug小屏幕热搜采用水平滚动优化子主题支持添加文章分页 二、效果展示 1.部分代码 代码如…

【React】Vite创建React+TS项目

前提条件 有node环境,且node版本>18.0.0 创建项目 npm create vitelatest1.起项目名 2.选择框架 3.选择语言 TypeScript SWC 是指 Vite 使用 SWC(Speedy Web Compiler)作为 TypeScript 的编译器。 SWC 是一个针对 JavaScript 和 Ty…

操作系统知识-存储管理+文件管理管理-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记,未经本人许可,请勿转载,如发现本笔记内容的错误还望各位不吝赐教(笔记内容可能有误怕产生错误引导)。 本章的主要内容见下图: 1、存储管理&#…

数据分析及应用 | 超强!深度学习Top10算法!(建议收藏!)

本文来源公众号“数据分析及应用”,仅用于学术分享,侵权删,干货满满。 原文链接:超强!深度学习Top10算法! 自2006年深度学习概念被提出以来,20年快过去了,深度学习作为人工智能领域…

基于Andriod的连锁药店管理系统(源码|论文)

一、系统架构 前端:vue | uni-app 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | node 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理后台-首页 03. 管理后台-个人中心-修改密码 04. 管理后台-个人中心-个…

iOS报错-Command PhaseScriptExecution failed with a nonzero exit code

问题:iOS debug没问题,一打包就报错: Command PhaseScriptExecution failed with a nonzero exit code 解决方法如下: 在项目的Pods目录下,找到Targets Support Files->Pods-xxxx-frameworks.sh 如下&#xff1a…

Linux TCP参数——tcp_adv_win_scale

文章目录 tcp_adv_win_scaleip-sysctl.txt解释buffering overhead内核缓存和应用缓存示例计算深入理解从2到1(tcp_adv_win_scale的值)总结 tcp_adv_win_scale adv-advise;win-window; 用于指示TCP中接收缓存比例的值。 static inline int tcp_win_from_space(int …

【大数据面试题】 018 数据仓库的分层了解吗?说说你的理解

一步一个脚印,一天一道面试题。 数据仓库是比较常见的考点。今天就介绍一下数据仓库的分层。本篇文章会较多的图片是来自尚硅谷的。 数据仓库的背景和好处 数据仓库的诞生就和大数据的诞生有很大的相似。大数据的诞生是为了处理超大的数据,并在其中探…

kerberos验证协议安装配置使用

一、kerberos是什么 Kerberos 是一个网络身份验证协议,用于在计算机网络中进行身份验证和授权。它提供了一种安全的方式,允许用户在不安全的网络上进行身份验证,并获取访问网络资源的权限。 二、安装配置kerberos服务端 1、安装kerberos #检…

如何快速解决msvcr80.dll丢失问题,教你5种方法轻松搞定

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcr80.dll丢失”。MSVCR80.dll文件的丢失可能会引发一系列系统运行与软件功能上的问题。作为一个重要的动态链接库文件,它在Windows操作系统中扮演着关键角色,尤其…

【C++】Stack queue 模拟实现及容器适配器

目录 一、stack 1、stack 基本介绍 2、stack 的使用 3、stack 模拟实现 二、queue 1、queue 基本介绍 2、queue 的使用 3、queue 模拟实现 三、容器适配器 1、什么是适配器 ​2、deque 的基本介绍 3、deque 的基本结构 4、deque 的缺陷 一、stack 1、stack 基本介…