13

我一直在为 BeagleBoard使用Angstrom Linux 发行版。任何人都可以向我指出有关 bitbake 和OpenEmbedded如何实际工作的教程或参考吗?例如,当我像这样调用 bitbake 时:

bitbake virtual/kernel

到底发生了什么?我已经 grep 了 Angstrom 配方并搜索了 Angstrom 文件系统,但我似乎无法找到对虚拟或内核的引用。在没有真正了解 bitbake 的工作原理的情况下,我对使用这个工具链和制作内核补丁感到有些困惑。

4

4 回答 4

4

BitBake 是一个复杂的软件,遗憾的是它没有最好的用户文档。我相信它(粗略地)基于 Gentoo 中的 portage 系统,因此对该系统的一些熟悉可能会有所帮助。

我发现在尝试构建某些东西时弄清楚发生了什么的最好方法是将 -g 选项传递给 bitbake,它将生成两个文件,depends.dot 和 task-depends.dot。前者是该包的依赖关系图,显示了当您运行特定任务时会拉入哪些其他包。后者显示更多细节,显示任务而不是包。这些任务比包本身要低一些;构建包可能会导致系统获取源、修补源、运行配置脚本、执行编译、安装二进制文件并将生成的文件拆分为子包。

这些文件可以显示您为什么要引入一个您不想要的软件,以便您可以编辑有问题的包以删除它的依赖关系。此处生成的图表可以使用 graphviz 包进行可视化,但是如果您对大型任务(例如图像任务)运行 -g 选项,则生成的图表将太大而无法可视化。通过 .dot 文件 grep 仍然很有用。

于 2011-12-13T17:36:52.467 回答
4

以供将来想知道同样事情的人参考。如果在您的文件系统中您转到 overo/org.openembedded.dev/docs/usermanual 然后运行“make”,那么将为您制作大量有关 bitbake 和 openembedded 的文档作为 html 文件。它解释了很多正在发生的事情。

于 2012-04-08T05:53:49.223 回答
3

Anthony 提到的 OpenEmbedded 用户手册可在 OE 站点上找到。第 7 章很好地介绍了 OE 以及它如何使用 BitBake:

http://docs.openembedded.org/usermanual/usermanual.html#chapter_using_bitbake_and_oe

如果您按照 OE入门页面操作,则ConfigurationWork SpaceTasks小节提供了有关幕后发生的事情的良好背景:

http://www.openembedded.org/wiki/Getting_started

于 2012-08-09T19:35:06.433 回答
-1

尽管 BitBake 没有详细且用户友好的教程,但使用 BitBake 的 OpenEmbedded(旧)和 YOCTO(新)项目有几本手册或书籍,其中详细描述了 BitBake 和 BitBake 配方。BitBake 现在由 Openembedded 和 YOCTO 项目共同维护,当您正常使用 BitBake 时,您将使用这两个项目来找到适合您目标的引导加载程序、busybox 等基本 linux 组件。

参考资料: http ://docs.openembedded.org/usermanual/usermanual.html http://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#patching-dev-environment (第3章是更多与 BitBake 相关)

于 2015-11-03T10:38:30.680 回答