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构建一下目标镜像,如果没有问题, 构建会成功。

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值