如何管理 yocto 项目的元层并在 git 中构建配置



我正试图为基于yocto的项目制定一个工作流程。目前,我已经为我提取的每个元层创建了一个带有子模块的git。https://github.com/shrkamat/rpi/tree/thud

这意味着当我转到一个新的yocto版本(比如战士(时,我需要创建新的git分支&将我的所有子模块移动到新租赁分支。有更好的方法吗?这里有什么最佳实践吗?

现在,有三种主要的解决方案(和最佳实践(来解决这个问题,还有许多自主开发的脚本。如果你刚开始,我强烈建议你坚持以下其中一项:

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

Pro:

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

对照:

如果是从pipdocker中提取的,则
  • 至少需要一个功能性python设置以及一个包装脚本
  • 除了设置和构建之外没有任何功能

2(repo:一款真正的经典产品,来自android世界。

Pro:

  • 非常强大,有很多内置的支持来管理拉取的东西——在本例中是层
  • 众所周知,久经考验

对照:

  • 在图层设置之外完成任务需要一定的技巧
  • 需要至少下载一次

3(git子模块:轻量级方法。

Pro:

  • 通常不需要额外的设置,我们都有现成的git,对吧

对照:

在我看来,
  • 是最不有力的方法
  • 需要技巧或自定义脚本才能完成纯层设置之外的任何操作。甚至比回购更多

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