On Sun, May 26, 2013 at 1:41 PM, Paul Eggleton < paul.eggle...@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@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto >
_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto