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

Kam*_*ath 8 yocto

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

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

Let*_*2nd 7

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

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

专业人士:

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

魂斗罗:

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

2) repo:目前为止真正的经典,来自 Android 世界。

专业人士:

  • 非常强大,有很多内置支持来管理拉取的东西 - 在本例中是层。
  • 众所周知,经过严格测试。

魂斗罗:

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

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

专业人士:

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

魂斗罗:

  • 在我看来,最弱的方法。
  • 需要欺骗或自定义脚本来完成纯层设置之外的任何事情。甚至比回购还多。

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