Claudio Matsuoka 37144d58b2 Add Metalshark's patches:
*) Add -march=pentium-m if compiling finit or finit-mod (as the target will
   be an eeepc).
*) Add a -DNO_HCTOSYS make option that omits the first /sbin/hwclock if the
   user has enabled CONFIG_RTC_HCTOSYS in the kernel.
*) Add a -DDIRECTISA make option to append –directisa to /sbin/hwclock lines
   if the user has disabled CONFIG_GENRTC and enabled CONFIG_RTC but not
   enabled CONFIG_HPET_TIMER and CONFIG_HPET_RTC_IRQ.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
2008-02-14 21:55:09 -02:00
2008-02-14 21:55:09 -02:00
2008-02-14 21:55:09 -02:00
2008-02-14 21:55:09 -02:00
2008-02-14 21:55:09 -02:00

Eeepc "fastinit" reimplementations
----------------------------------

finit.c is a reimplementation of the Asus Eeepc fastinit program based
on its library calls. It tries to be an accurate re-creation and keeps
the original bugs and lack of optimization.

finit-mod.c is a fixed/improved version of finit.c.

finit-alt.c is a fixed/improved version of finit.c for alternative Linux
distributions running on the Eeepc (previously ffinit.c). Currently able
to boot unmodified Mandriva Linux.

See Makefile for configurable parameters to better suit your system.


* Eeepc boot process

The essential steps in the boot process carried out in initramfs are:

 ROOT=`sed 's!.*root=\([^ ]*\).*!\1!' < /proc/cmdline`
 mount -t proc proc /proc
 mount -t ext2 -o ro $ROOT /mnt-system
 mount -t ext3 -o rw /dev/sda2 /mnt-user
 mount -t unionfs -o dirs=/mnt-user=rw:/mnt-system=ro unionfs /mnt
 mount --move /mnt-system /mnt/mnt
 umount -l /mnt-user
 umount /proc
 exec switch_root /mnt /sbin/fastinit "$@" </mnt/dev/console >/mnt/dev/console

If mounting the root filesystem fails, execute a maintenance shell. If
mounting the user filesystem fails, fsck and reboot.


* Utilities available in the Eeepc initramfs busybox:

[		cat		cp		cut		dd
dmesg		echo		env		expr		false
grep		insmod		ln		losetup		ls
mdev		mkdir		mknod		mount		mv
pivot_root	realpath	rm		rmmod		sed
sh		sleep		switch_root	test		true
umount		vi


* Devices in the Eeepc initramfs /dev:

console  fb  null  ram0  sda1  sda2  sda3  sr0  tty0

Languages
C 84.3%
Shell 11.9%
Makefile 2.1%
M4 1.7%