On Friday 21 January 2011 20:02:47 Grant Likely wrote:
Right, current thoughts after some IRC discussion are:
- busybox
- no package manager
- max size of 30mb (without kernel)
- some further removal of packages
I think with this in place you will get a ~30mb compress rootfs, we could even go further if necessary.
I imagine it becomes pretty important to define what use-cases it is intended to cover. What set of tools are important in a verification image? An awful lot of the time all I want is an initrd with busybox. The one I'm currently using weighs in at only 2.1M, and for my purposes I don't want anything larger. (But I'm also do silly fringe things like boot a system without touching any form of storage). :-)
OTOH, I'm beginning to use autotest a lot, and python on the target is a requirement for installing test cases, which kind of blows 2.1M out of the water.
I would guess that 30 MB is about the smallest we can reasonably get from using the Ubuntu packages with glibc. Anything smaller is more a use case for a cross-built mini-distro of the OpenEmbedded/Poky or Buildroot/OpenWRT kind.
My first thought with the 'nano' target was that it should be one of these (probably Poky), while there would still be room for a stripped- down image based on the Ubuntu binaries. Maybe we can rename the 'nano' target to something like 'mini' or 'micro', leaving room in the naming for something smaller. Or we could declare that the even smaller one will be based on 'yocto' anyway, which fits the naming quite well already ;-).
For the ~30 MB nano image, I would suggest to make it still extensible using regular binaries from the Ubuntu archive, or those that are built against the Ubuntu glibc, instead of requiring a cross-compile environment. That makes it still possible to take the nano image and add any test cases that are required for a given test scenario.
Arnd