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

10

我正在使用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/下。我最初询问如何生成“配方文件”的列表,但我认为列出软件包列表就足够了。

关于.bbappend,我有一个情况,我的.bbappend由于层优先级而被忽略。我更改了我的层优先级,现在想查看是否导致图像中任何其他地方的.bbappend文件被忽略。据我所知,使用建议的“bitbake-layers show-appends”列出所有.bbappend,而不仅仅是在创建图像时实际使用的,因此这不符合我的要求。


1
我有同样的问题。知道特定镜像中实际使用哪些配方以及它们来自哪里会很好(INSTALL_APPEND在哪个文件中?) - Anonymous
4个回答

6
尝试以下内容:

显示所有食谱

bitbake-layers show-recipes

展示一个菜谱的.bb文件

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

4

尝试使用 "bitbake-layers show-appends" 来查看使用的 bbappends。但这只适用于每个配方。但这可能会给你所需的信息,以了解优先级。


有帮助,但据我所知,这将显示所有可用的bbappends,而不仅仅是在我的镜像中实际使用的那些,对吗?我还查看了我的镜像清单文件,其中告诉我每个软件包使用的确切版本,但不幸的是,它不让我知道每个软件包应用了哪些bbappends。 - user5071535

3
您可以执行“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”获取bbappend列表,并查找每个配方的附加项。 您可以编写一个小的Python程序来为您完成这项工作。

“.dot”文件是一个有用的建议,但我仍然需要找出如何解决哪些“.bbappend”文件在我的镜像中被使用和未被使用。请参见我的最近编辑。 - user5071535

1

尝试以下命令

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接