yocto - 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 ?
解决方案
这些天来,这个问题有三个主要的解决方案(和最佳实践),还有很多很多本土脚本。如果您刚刚开始,我强烈建议您坚持以下其中一项:
1) kas:一个专门用于设置基于 OpenEmbedded(因此也是基于 poky)构建的工具,包括检查特定的层修订、将它们添加到bblayers.conf
、设置local.conf
和启动bitbake
特定目标。
临:
- 高度专业化,不需要解决麻烦,因为它最初是为了其他东西。
- 支持将构建配置与层捆绑在一起,通常是产品应用程序。这可以显着减少提交混乱。
- 唯一具有适当 local.conf 支持的解决方案
反对:
- 如果是从中提取的,则至少需要一个功能性 python 设置
pip
,或者docker
加上一个包装脚本。 - 没有设置和构建之外的功能
2) repo:来自安卓世界的真正经典。
临:
- 非常强大,有很多内置的支持来管理拉取的东西——在这种情况下是层。
- 众所周知,经过高度测试。
反对:
- 完成层设置本身之外的事情需要一定的技巧
- 至少需要下载一次。
3) git submodules:轻量级方法。
临:
- 通常不需要额外的设置,我们都已经
git
安装好了,对吧?
反对:
- 在我看来,最不强大的方法。
- 需要诡计或自定义脚本才能完成纯层设置之外的任何事情。甚至比回购更多。
那么该选哪个呢?我个人最喜欢的是 1 - kas,因为它几乎完全符合我的要求。正如他们所说,您的里程可能会有所不同。但是,这些通用方法中的每一个都肯定比编写本地脚本更好。
推荐阅读
- javascript - 如何在打字稿中创建带有列表标题的数组?
- jquery - 为什么后续表单提交不起作用?
- json - 尝试命名时如何解决 Flask 中的无效语法错误?
- azure-data-lake - 从 u-sql 中的文件夹中获取要处理的文件数
- c++ - stable_clock::now() 返回类型对 gcc 无效
- java - 如何使用 OpenCV 通过套接字将实时视频和音频流录制到 java 中的文件
- java - Spark 是否与 OpenJ9 和 Java 8 一起运行?
- c++ - 从NULL构造字符串?
- javascript - 将异步并行请求映射到它们的 ID
- xcode - 错误:升级到 xcode 11.1 和 macOS 10.15 Catalina 后未知类型名称“tls_protocol_version_t”