Bitbake:如何列出图像中使用的所有配方和附加文件?

时间:2015-09-29 17:25:12

标签: yocto recipe bitbake openembedded

我正在使用OpenEmbedded-Core并创建了一个优先级为6的自定义图层。几个月的开发已经过去了,现在我想将图层的优先级提高到8,因为来自另一个的附加文件优先级为7的图层正在干扰我在图层中添加的附加文件。

我的问题是,如何生成图像中使用的配方和.bbappend文件列表?

我想在进行优先级更改之前和之后生成列表,以便我可以比较它们(希望有一个difftool)来查看是否发生了任何意外的副作用,比如来自其他层的重要附加文件被忽略了。

我正在使用Angstrom发行版的angstrom-v2014.12-yocto1.7分支。

[编辑]

我现在主要只是想确定如何列出我的图像实际使用的.bbappend文件。

可以使用" bitbake -g your-image-name"查看包列表。正如@pnxs所建议,或者来自.manifest文件(我喜欢使用它),在我的情况下,它位于deploy / glibc / images / imagename /下。我最初问的是如何列出"配方文件"可以生成,但我认为一个包列表就足够了。

关于.bbappends,我有一个案例,由于图层优先级,我自己的.bbappend被忽略了。我对我的图层优先级进行了更改,现在想看看是否会导致我的图像中任何其他位置的.bbappend文件被忽略。据我所知,使用" bitbake-layers show-appends"如建议的列表所有 .bbappends存在而不仅仅是那些实际用于创建图像的内容,所以这并不是我正在寻找的。

4 个答案:

答案 0 :(得分:2)

尝试使用“bitbake-layers show-appends”来查看使用的bbappends。但这只能在每个配方的基础上发挥作用。但这可能会为您提供理解优先事项所需的信息。

答案 1 :(得分:2)

您可以执行“bitbake -g your-image-name”,在当前目录中创建一些点文件。

文件“pn-depends.dot”包含一个包名(pn)列表及它们之间的依赖关系。

当您获取列出所有包的文件的第一部分时,您会看到例如:

"busybox" [label="busybox :1.23.1-r0.2\n/home/user/yocto/sources/poky/meta/recipes-core/busybox/busybox_1.23.1.bb"] "base-files" [label="base-files :3.0.14-r89\n/home/user/yocto/sources/poky/meta/recipes-core/base-files/base-files_3.0.14.bb"]

因此,您获得了图像使用的所有包的列表以及相应的配方文件。

要查看通过bbappend扩展了哪些回复,您必须使用“bitbake-layers show-appends”获取bbappends列表并查找每个食谱的附加内容。你可以编写一个可以为你做的小python程序。

答案 2 :(得分:0)

尝试以下命令

bitbake -g image-name && cat pn-depends.dot | grep -v -e '-native' | grep -v digraph | grep -v -e '-image' | awk '{print $1}' | sort | uniq

答案 3 :(得分:-1)

尝试以下操作:

显示所有食谱

bitbake-layers show-recipes

显示配方的.bb文件

RECIPE_NAME="linux-yocto"
bitbake -e  $RECIPE_NAME | grep ^FILE=