[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

initramfs-tools 0.7x pending changes - klibc only initramfs

heya, :)

klibc 1.4.11 has almost all binaries (kill, mknod, resume)
initramfs-tools 0.70 needs to successfully boot. 
thus it is envisaged to deliver for etch an klibc only default
initramfs. the following steps are needed to ensure that decision:

- klibc-utils missing bin:
readlink (minimal already present in my klibc tree, will be
soon pushed upstream), needed to kill udevd.

- hooks for other packages:
evms and mdadm got merged, lvm2 is in preparation

- prereqs mechanism:
uses costly boot time and there is no easy solution to be first
nor to be last. proposed solution is to remove it plainly.
(scripts that don't use wouldn't be affected, as prereqs only
enters in the game if you invoke the script with the `prereqs' arg)

the proposed simple solution would be do use numerical precedences,
aka a simple
05evms 10mdadm 20lvm 90cryptsetup (example for scripts/local-top/ dir)
thus the complex prereqs mechanism would be replaced by
for s in dir/*; do
thus package maintainers would need to rename their scripts according

- fallback shell
klibc provides dash.
dash works fine for all used busybox ash functionability

- busybox dependency
once aboves steps are done, can be changed in a Suggests.
BUSYBOX=n would be the default in initramfs.conf

several initramfs-tools hook scripts need busybox functionality.
to the mind comes lvm2, mdadm and cryptsetup hooks. they would
need to add a dependency to:  
busybox (>= 1:1.01-3) | busybox-cvs-static (>= 20040623-1)
and they would have to ship a file in
/usr/share/initramfs-tools/conf.d/<packagename> with BUSYBOX=y
mkinitramfs would than include the busybox in initramfs-tools.
it would use the busybox shell and allow usage of it's tools.

an alternative would be busybox on klibc, but for that klibc is not
yet powerful enough and that is not a realistic goal for etch.

- against klibc compiled bin
udev and module-init-tools would have to be compiled against klibc.
tested udev atm and it works. as simple as build-dep libklibc-dev
and pass CC=klcc

that would allow an klibc based initramfs as asked for embedded
Debian targets. smaller initramfs is quicker unpacked and the
dropping of the prereqs should speed up boot.

thanks for your input


ps for d-i bootfloppies klibc-utils needs an ramdisk_load that
will be worked on once aboves is sorted.

pps adding package maintainers on cc which either have initramfs-tools
hooks or were addition is envisaged.

Reply to: