Reputation: 254
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
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