Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bitbake: How to list all recipe and append files used in an image?

I'm using OpenEmbedded-Core and have created a custom layer with priority 6. Months of development have gone by, and now I want to increase my layer's priority to 8 because an append file from another layer with priority 7 is interfering with an append file I'm adding in my layer.

My question is, how can I generate a list of recipes and .bbappend files used in an image?

I want to generate the list both before and after I make the priority change so that I can compare them (with a difftool hopefully) to see if any unexpected side-effects occurred, like an important append file from the other layer getting ignored potentially.

I'm using the angstrom-v2014.12-yocto1.7 branch of the Angstrom distribution.

[EDIT]

I'm now primarily just interested in determining how to list which .bbappend files are actually used by my image at this point.

A list of packages can be viewed using "bitbake -g your-image-name" as suggested by @pnxs, or from the .manifest file (which is what I like to use) which in my case is located under deploy/glibc/images/imagename/. I originally asked how a list of "recipe files" could be generated, but I think a list of packages is sufficient.

Regarding the .bbappends though, I had a case where my own .bbappend was ignored due to layer priorities. I made a change to my layer priorities and now want to see if that caused any .bbappend files anywhere else in my image to get ignored. As I understand it, using "bitbake-layers show-appends" as suggested lists all .bbappends present rather than just those which are actually used in the creation of an image, so this doesn't do what I'm looking for.

like image 302
user5071535 Avatar asked Sep 29 '15 17:09

user5071535


People also ask

What is Workdir in bitbake?

WORKDIR: The working directory The recipe has two init files and two configuration files, which are not patches, but are actually files that it wants to include in the generated packages. Bitbake will copy these files into the work directory.

What is the difference between BB and Bbappend?

bbappend file resides in your layer, while the main . bb recipe file to which you are appending Metadata resides in a different layer. Being able to append information to an existing recipe not only avoids duplication, but also automatically applies recipe changes from a different layer into your layer.


2 Answers

Try using "bitbake-layers show-appends" to see what bbappends are used. But that will only work on a per-recipe basis. But that might give you the information you need to understand the priorities.

like image 199
balister Avatar answered Sep 28 '22 05:09

balister


You can do a "bitbake -g your-image-name" which creates some dot-files in the current directory.

The file "pn-depends.dot" contains a list of package-names (pn) and the dependencies between them.

When you take the first part of the file where all packages are listed, you see for example:

"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"]

So you got a list of all packages used by your image and the corresponding recipe-file.

To see which of the recpies are extended by bbappend you have to get the list of bbappends with "bitbake-layers show-appends" and look up the appends of every recipe. You can write a little python-program that can do that for you.

like image 34
pnxs Avatar answered Sep 28 '22 05:09

pnxs