首页 > 解决方案 > How to manage meta layers for a yocto project & build configs in git

问题描述

I am trying to figure out a workflow for yocto based project. Currently I have created a git with submodule for each meta layer that I pull. https://github.com/shrkamat/rpi/tree/thud

This would mean when I move to a new yocto release (say warrior) I need to create new git branch & move all my submodule to track to new lease branch. Is there a better approach, are there any best practices here ?

标签: yocto

解决方案


这些天来,这个问题有三个主要的解决方案(和最佳实践),还有很多很多本土脚本。如果您刚刚开始,我强烈建议您坚持以下其中一项:

1) kas:一个专门用于设置基于 OpenEmbedded(因此也是基于 poky)构建的工具,包括检查特定的层修订、将它们添加到bblayers.conf、设置local.conf和启动bitbake特定目标。

临:

  • 高度专业化,不需要解决麻烦,因为它最初是为了其他东西。
  • 支持将构建配置与层捆绑在一起,通常是产品应用程序。这可以显着减少提交混乱。
  • 唯一具有适当 local.conf 支持的解决方案

反对:

  • 如果是从中提取的,则至少需要一个功能性 python 设置pip,或者docker加上一个包装脚本。
  • 没有设置和构建之外的功能

2) repo:来自安卓世界的真正经典。

临:

  • 非常强大,有很多内置的支持来管理拉取的东西——在这种情况下是层。
  • 众所周知,经过高度测试。

反对:

  • 完成层设置本身之外的事情需要一定的技巧
  • 至少需要下载一次。

3) git submodules:轻量级方法。

临:

  • 通常不需要额外的设置,我们都已经git安装好了,对吧?

反对:

  • 在我看来,最不强大的方法。
  • 需要诡计或自定义脚本才能完成纯层设置之外的任何事情。甚至比回购更多。

那么该选哪个呢?我个人最喜欢的是 1 - kas,因为它几乎完全符合我的要求。正如他们所说,您的里程可能会有所不同。但是,这些通用方法中的每一个都肯定比编写本地脚本更好。


推荐阅读