7

我正在使用 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”列出所有存在的.bbappends,而不仅仅是实际用于创建图像的那些,所以这不符合我的要求。

4

4 回答 4

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 程序。

于 2015-11-03T09:28:14.720 回答
3

尝试使用“bitbake-layers show-appends”查看使用了哪些 bbappends。但这只会在每个食谱的基础上起作用。但这可能会为您提供了解优先级所需的信息。

于 2015-10-12T16:49:49.693 回答
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
于 2019-05-21T15:07:49.507 回答
1

尝试以下操作:

显示所有食谱

bitbake-layers show-recipes

显示配方的.bb文件

RECIPE_NAME="linux-yocto"
bitbake -e  $RECIPE_NAME | grep ^FILE=
于 2021-04-24T08:32:51.370 回答