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

问题描述 投票:0回答:4

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

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

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

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

[编辑]

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

可以使用@pnxs建议的“bitbake -g your-image-name”查看软件包列表,或者从.manifest文件(这是我喜欢使用的)中查看,在我的例子中,该文件位于deploy/glibc下/图像/图像名称/。我最初问如何生成“配方文件”列表,但我认为包列表就足够了。

关于 .bbappends,我遇到过由于层优先级而忽略我自己的 .bbappend 的情况。我对图层优先级进行了更改,现在想看看这是否会导致图像中其他位置的任何 .bbappend 文件被忽略。据我了解,使用“bitbake-layers show-appends”作为建议列表 all .bbappends 存在,而不仅仅是那些实际用于创建图像的列表,所以这不符合我的要求.

yocto recipe bitbake openembedded
4个回答
10
投票

尝试以下操作:

显示所有食谱

bitbake-layers show-recipes

显示 .bb 配方文件

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

7
投票

尝试使用

bitbake-layers show-appends
看看使用了什么
.bbappend
。但这仅适用于每个食谱。但这可能会为您提供了解优先事项所需的信息。


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 程序来为你做到这一点。


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
© www.soinside.com 2019 - 2024. All rights reserved.