[yocto] How can I remove packages from rootfs file ?

Nicolas Dechesne nicolas.dechesne at linaro.org
Mon May 27 00:03:08 PDT 2013


On Sun, May 26, 2013 at 1:41 PM, Paul Eggleton <
paul.eggleton at linux.intel.com> wrote:

> On Saturday 25 May 2013 13:58:46 Jack wrote:
> > I maked a fsl-image-minaml rootfs file and customized it with adding
> > particular packages. For example, I added
> > IMAGE_INSTALL_append_pn-fsl-image-minimal = " task-core-ssh-openssh
> > task-core-nfs-server" in local.conf file. The problem is that, the rootfs
> > file has 6-7 MB capacity but this capacity of file is very high and not
> > acceptable to me. So how can I remove some packages from rootfs file
> that I
> > do not want ?
>
> There are several different aspects to answering this question.
>
> The list of packages to be installed is composed of several things - the
> list
> of packages specified in IMAGE_INSTALL, packages brought in by
> IMAGE_FEATURES,
> and packages brought in to satisfy dependencies of either of the first two.
>
> One way to analyse the contents of your image is to enable buildhistory [1]
> which gives you the full list of installed packages, installed packages by
> size, as well as graphs (.dot) that will show you the dependency
> relationships
> between the packages. These dot graphs can be viewed by converting them to
> images using the "dot" command (from graphviz) or using a viewer such as
> xdot
> [2].
>
> Once you've analysed things at this level, you may find there are
> dependency
> relationships that can't easily be broken, or some packages that are overly
> large. At this point you will need to start looking at changing the build
> configuraton of the packages in question - disabling optional functionalty,
> removing optional dependencies etc. (usually this would be done by changing
> DISTRO_FEATURES, modifying the kernel configuration, changing PACKAGECONFIG
> options for individual recipes, or if those aren't available modifying
> EXTRA_OECONF). How far you want to go with this depends on how much you
> want
> to optimise the size of your image.
>
> If you do find you need to go down the latter path, I'd recommend checking
> out
> Darren Hart's presentation "Tuning Embedded Linux - When Less is More" [3].
>
> > For example, remove packages like ar, arping,  basename, telnet, beep,
> .....
>
> Note that whilst some of these may be from packages you can remove, many of
> them may be functionality provided by busybox, i.e. where the command is
> just
> a symlink to the busybox binary. You can modify the busybox build-time
> configuration to disable these, but bear in mind that disabling them
> usually only saves you a few kB. For some applications that may be a useful
> saving, of course.
>

on top of that, i wanted to remind that there is a dedicated chapter in the
Yocto manual about building 'tiny' systems [1]. Also you don't mention
which 'DISTRO' you are using, so make sure that you are aware that Yocto
comes with Poky, and Poky-tiny as well, which according to
conf/distro/poky-tiny.conf says:

# Poky-tiny is intended to define a tiny Linux system comprised of a


# Linux kernel tailored to support each specific MACHINE and busybox.


# Poky-tiny sets some basic policy to ensure a usable system while still


# keeping the rootfs and kernel image as small as possible.



see [2]

Finally, note that some packages comes with builtin "RRECOMMENDS" which are
installed by default in the RootFS. If you are using IPK backend you can
use the variables BAD_RECOMMENDS to make sure that though packages are
marked as RRECOMMENDS, they aren't installed in the rootFS. I believe this
only works with IPK for now.


[1]
http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#building-a-tiny-system
[2]
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta-yocto/conf/distro/poky-tiny.conf


>
> HTH.
>
> Cheers,
> Paul
>
> [1]
> http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#maintaining-build-output-quality
>
> [2] https://github.com/jrfonseca/xdot.py
>
> [3] Slides: http://elinux.org/images/2/2b/Elce11_hart.pdf
> Video: http://www.youtube.com/watch?v=WHLvI8j31vk
>
> --
>
> Paul Eggleton
> Intel Open Source Technology Centre
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130527/d40a7b48/attachment.html>


More information about the yocto mailing list