[yocto] Removing rootfs from SDK

Paul Eggleton paul.eggleton at linux.intel.com
Mon Jun 15 01:59:46 PDT 2015


On Monday 15 June 2015 05:39:24 John Ernberg wrote:
> On 2015-06-12 14:43, Paul Eggleton wrote:
> > On Thursday 04 June 2015 09:30:49 John Ernberg wrote:
> >> We're trying to optimize the SDK generated by bitbake -c populate_sdk.
> >> Currently we're trying to remove the kernel, modules and other
> >> executables which we have no use for, most of it could be removed using
> >> IMAGE_INSTALL = "" and IMAGE_FEATURES = "".
> >> 
> >> Due to us using 2 different kernel module sets, we're using
> >> IMAGE_INSTALL_append_[machine] additions to IMAGE_INSTALL which are not
> >> cleared by the IMAGE_INSTALL = "" setting.
> >> 
> >> I've tried to do IMAGE_INSTALL_remove using the same variable that we
> >> use to populate the IMAGE_INSTALL_append, but that doesn't work. I can
> >> however remove each individual package added by IMAGE_INSTALL_append.
> >> Due to the number of packages added by IMAGE_INSTALL_append this is not
> >> really feasible.
> >> 
> >> Is there a way to clear IMAGE_INSTALL_append without doing an
> >> IMAGE_INSTALL_remove per package? Alternatively clearing it using a
> >> python loop without needing to know the name of each package.
> >> 
> >> We're also seeing busybox getting included into the SDK without anything
> >> showing a dependency on it from running bitbake -g -c populate_sdk.
> >> 
> >> What could be going on with that?
> > 
> > We construct the SDK for an image by getting a list of the packages in the
> > image, and then including the -dev and -dbg packages that correspond to
> > those in the host portion of the SDK. Thus if your image has busybox in
> > it then you will get busybox-dev and busybox-dbg in your SDK.
> > 
> > In the dizzy (1.7) and later releases, there is a
> > PACKAGE_EXCLUDE_COMPLEMENTARY variable that can take a regex to match
> > packages that you do not wish to install complementary packages for. You
> > could set this in your image recipe. Note that this will affect all
> > complementary package processing for the image as well as the SDK (e.g.
> > dev-pkgs in IMAGE_FEATURES will also be affected, if you used that).
>
> I managed to clear out everything set by IMAGE_INSTALL and
> IMAGE_FEATURES by setting PACKAGE_INSTALL = "".
> So we no longer package the kernel etc into our SDK.
> We do however still package the busybox binaries, when I run:
> bitbake -e -c populate_sdk [image] | less
> and then search for busybox, I get no results, so according to the
> variables nothing adds busybox to the SDK.
> I cannot figure out why busybox would get included, and I don't mean the
> dev and dbg packages here, but the actual binary package.

That'll be because the -dev package depends on the main package; 
meta/conf/bitbake.conf has the following line which sets up this dependency:

RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPKGV})"

You could set RDEPENDS_${PN}-dev = "" at the configuration level to disable 
this, or you could do it per recipe with bbappends.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list