有人可以指向我的bitbake或openembedded教程吗?

Ted*_*ton 13 linux kernel beagleboard openembedded angstrom-linux

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

bitbake virtual/kernel
Run Code Online (Sandbox Code Playgroud)

实际发生了什么?我已经研究了Angstrom的配方并搜索了Angstrom文件系统,但我似乎无法找到对虚拟或内核的引用.我觉得使用这个工具链并制作内核补丁并没有真正了解bitbake的工作方式,我感到有点沮丧.

小智 4

BitBake 是一款复杂的软件,不幸的是它没有最好的用户文档。我相信它(松散地)基于 Gentoo 中的 portage 系统,所以熟悉该系统可能会有所帮助。

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

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