yocto系列之创建和添加新的layer

回顾

在关于Yocto的先前的文章中,我们讨论了各种主题,比如Yocto是什么,如何下载它,构建基本镜像等等。这里是前面文章的相关链接:

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/136760343

在这篇文章中,我们讲述一个相当基础但非常重要的主题,通常是我们自定义镜像的起点。我们讨论如何创建和添加一个新层到目标镜像中。

Layers

在第三部分介绍中,我们谈到了Yocto构建系统的分层性质,以及如何实现软件的最大重用,同时允许我们轻松地迁移到另一个硬件平台。

层的概念是,我们可以轻松地将“秘密recipes”(即“目标源代码”)捆绑到自己的层中,并覆盖相应层中相同recipes的一些配置。

例如, 可以修改meta-oe层中已经存在的packages,向其添加新的软件源码或是定制kernel配置以生成一个定制镜像。

创建新的layer

创建新层最简单且推荐的方法是使用 `bitbake-layers` 脚本。一旦使用`poky/` 目录中的 `oe-build-init-env` 脚本进行了环境设置,bitbake-layers脚本就可以使用了。

`bitbake-layers` 脚本非常灵活,不仅可以创建层,还可以执行许多其他操作。为了了解它能做什么,我们首先初始化我们的构建环境,然后查看可用的帮助文档。

source poky/oe-init-build-env rk3588-build

bitbake-layers --help

如我们所看到的,这个脚本不仅可以帮助我们创建一个层、还可以将一个层添加到我们的配置中、从构建配置中移除一个层、显示当前添加的层以及一些其他有用的操作,比如显示构建中的recipes或特定层的recipes等等。

让我们检查一下当前配置中有哪些层。

 bitbake-layers show-layers

这会打印出类似以下的输出。

注意:你的输出可能会根据构建配置不同而有所不同。

新的layer所在位置

我当前的yocto所在目录层级如下:

通常最将自己的层放置在 yocto/ 文件夹内,以便与添加的其他非poky层处于同一级。此外,习惯上建议层的名称以 meta- 开头。

在yocto目录下创建一个名为meta-test的层级:

source到rk3588构建目录下, 应用bitbake-layers脚本构建新的layer

加入新的meta-test layer后的新的目录结构如下:

将层添加到构建配置中

前面我们成功创建了新的层,现在我们将其添加到我们的配置中。将来,我们将在这个层添加我们自己的recipes,并创建我们的定制镜像。

再次使用 bitbake-layers 脚本将这个层添加到我们的构建配置中。

bitbake-layers add-layer ../meta-test

为了确认这一添加是否成功,可以运行 bitbake-layers 脚本,并带上 show-layers 参数,check结果如下:

在新的layer中构建recipes

当 bitbake-layers 为我们创建了这个层时,它还为我们创建了一个名为 example_0.1.bb 的示例recipe,该recipe位于 meta-test/recipes-example/example/ 目录下。

构建示例镜像:

bitbake example_0.1

如果之前已经进行过镜像构建,这个过程应该相对较快。

这是来自 example_0.1.bb 中的 do_display_banner() 函数:

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值