TonyHo
TonyHo

Reputation: 254

Where to see the detail of do_rootfs procedure[the copied files path] in OpenEmbeded/yocto?

The yocto project using the OpenEmbeded to build the projects. I have a recipes containing some dynamic libraries. When the do_rootfs process, it will copy the libraries to the rootfs directory and pack it to be a tar.bz2 ball. But the dynamic library file in generated tarball is not same as the recipes input. I use the bitbake -v core-image-minimal to see the detail how it copy files. But it just give a simple hint: libEGL.so->libEGL.so, it just tell me the file name, I want to know the source file directory path. So where's the source file directory path? Thanks in advance!

Upvotes: 3

Views: 4246

Answers (1)

Roman Khimov
Roman Khimov

Reputation: 4992

Please read at least a quick start documentation to see the big picture of the whole process. All regular software built from recipes becomes packaged into ipk (or deb, or rpm) packages first and the image generation process operates with that packages, so it's not straight copying from somewhere.

The packages are stored in feeds located in the build/tmp/deploy/ipk (or deb, or rpm) folder. You can examine them with standard tools (like ar and tar for ipk and deb, or rpm2cpio with friends for rpm).

The package contents comes from packages-split directory of package work directory, like mentioned in build/tmp/work description. That, in turn, comes from packages directory of the same work directory. Which, in its turn, comes from image directory (which is the default for D variable), and image directory has all the files that are installed (as in do_install) by the recipe. Of course, all of these directories are made with different purposes in mind, so it's not just copying from one place to another, things done in-between are described in a nice comment in the package.bbclass file.

Also of interest in this case might be the do_rootfs task log, which, as usually, is stored in the ${WORKDIR}/temp/log.do_rootfs

Upvotes: 4

Related Questions