Files
finit/README
T
2008-02-17 08:11:51 -03:00

76 lines
2.1 KiB
Plaintext

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
Using finit with alternative systems
------------------------------------
Currently tested only with Mandriva 2008. Proceed with caution, there are
problems related to udev and pam.
1 - Add init=/sbin/finit-mdv to the kernel boot line
2 - Provide a suitable /usr/sbin/services.sh, this is the one I use in my
test system:
mkdir /var/lock/subsys
chmod 1777 /var/lock/subsys
/etc/init.d/network start
dhclient eth0
/sbin/start_udev&
/etc/init.d/portmap start
/etc/init.d/nfs-common start
3 - Provide /etc/hostname if you don't have it already
4 - Set the pointer device in the X server configuration to /dev/input/mice