[gobolinux-users] InitRamFS and cpio format

Aitor Pérez Iturri aitor.iturri at gmail.com
Mon May 28 21:50:58 UTC 2007


El Mon, 28 May 2007 14:17:27 -0700
"Carlo Calica" <carlo at calica.com> escribió

> 
> How small can you get glibc?  Might be better to just have that rather
> than klibc, dietlibc, and glibc?  Do you have numbers on the relative
> sizes?

I choose dietlibc because it's easy to compile programs using this
command:
Compile Recipe -n Diet-Recipe -c CC="diet gcc -nostdinc"
i don't know how easy can be with other implementations or if they came
with any kind of wrapper to make things easy (klibc gives another
wrapper to do it).

I can give you some sizes:

From files included into the cpio file:

/lib
* 64572 klibc-rOj3PRLKBA9FcF5ZuoqKQLmOWcA.so

/bin
- Statically linked against dietlibc
* 597592 lvm

- Linked against klibc-rOj3PRLKBA9FcF5ZuoqKQLmOWcA.so
* 53828 ash
* 2264 cat
* 1052 ln
* 1676 mkdir
* 1416 mknod
* 1636 mount
* 828 reboot
* 1872 run-init
* 620 sleep
* 796 umount

- Statically linked against klibc
* 47868 udevstart

> Again size #'s would be useful.  I'd prefer to have actual udev (with
> our config files) rather than busybox's version.  It'll keep all dev
> names consistent then.  Does it generate /dev/disk/by-* entries
> correctly?
> 

About sizes, i can try to build alternative cpio images with different
glibc flavours (uclibc, dietlibc and klibc) to see how
many can they change, i think that uclibc is the most complete
impletentation today.

About udev, now i'm using the original udev compiled against klibc, it
can't generate /dev/disk/by* entries, because for that it needs
external programs (scsi_id, usb_id and so on). If we want to generate
the /dev population in the initramfs stage we will need another mount
implementation (now it comes from klibc sources) because current
doesn't allow --bind option to bind /dev
into /Root/System/Kernel/Devices (we can try with busybox mount or the
original mount maybe).

I think we must to choose with packages will come in the initramfs and
which glibc implementation to use.
I'm trying to compile now suspend against dietlibc but it has a lot of
errors at now.a

Tomorrow i will surfer google to see what implementation could be
better and i will try the next packages:
* UClibC
* Udev againts UClibc
* LVM against UClibc
* suspend against UClibc.
* Busybox against UClibc.

Any suggestion?

Greets.

Aitor.


More information about the gobolinux-users mailing list