#!/bin/sh
PATH=/bin:/sbin:/usr/bin
## FUNC RAMFS ##
mount -t proc none /proc
echo "Setting up RAMFS, please wait... "
mount /mnt/ramfs

mkdir -p /mnt/ramfs/etc/network
mkdir -p /mnt/ramfs/tmp
mkdir -p /mnt/ramfs/var/log/ksymoops
mkdir -p /mnt/ramfs/var/run/
mkdir -p /mnt/ramfs/var/tmp/
mkdir -p /mnt/ramfs/var/lock/
mkdir -p /mnt/ramfs/var/lib
ln -s /usr/var/lib/dpkg /var/lib/dpkg

## FUNC MODUTILS_START ##
depmod -a
for i in h3600_hal h3600_asic h3600_micro h3600-sleeve "pcmcia_core setup_delay=200" sa1100_cs ds serial h3600_generic_sleeve h3600_ts ide-mod ide-disk ide-probe-mod ide-cs wvlan_cs jbd ext3 sa1100usb_core usb-eth
do insmod $i ; done

## FUNC DEVICES ##
echo "Setting up some devices"
ln -s /dev/fb/0 /dev/fb0
ln -s /dev/misc/rtc /dev/rtc
ln -s /dev/vc/0 /dev/tty0
ln -s /dev/vc/1 /dev/tty1
ln -s /dev/vc/2 /dev/tty2
ln -s /dev/vc/3 /dev/tty3
ln -s /dev/vc/4 /dev/tty4
ln -s /dev/vc/5 /dev/tty5
ln -s /dev/touchscreen/0 /dev/h3600_ts
ln -s /dev/touchscreen/0raw /dev/h3600_tsraw
mknod /dev/mixer c 14 0
mknod /dev/dsp c 14 3
stty 115200 < /dev/ttySA0

echo "Waiting 10 secs for cards to configure"
sleep 10

## FUNC TRY_INTIMATE

###DEFAULTS###
# Where intimate lives, if it is on microdrive. (For nfsroot leave this as /dev/hda1)
ROOTDEV="/dev/discs/disc0/part3"
ROOTFS="ext3"
echo 0 > /proc/sys/net/ipv4/tcp_ecn
cardmgr -q -o -c /etc/pcmcia
sleep 10
if [ -b $ROOTDEV ]
then
	mount -n -t $ROOTFS $ROOTDEV /mnt/intimate
        if [ $? -eq 0 -a -x /mnt/intimate/sbin/init ]
        then
                echo "Booting intimate from microdrive..."
                mount -n -t devfs none /mnt/intimate/dev
                pivot_root /mnt/intimate /mnt/intimate/boot
                cd /
		if [ -f "$HDD_SPLASH" -a -x $SPLASHER ]; then
			ln -s /dev/fb/0 /dev/fb0
			$SPLASHER /$HDD_SPLASH
		else
			echo "Executing /sbin/init..." > /dev/vc/0
		fi
		echo "Executing /sbin/init..."
		if [ -x /linuxrc ]; then
			exec /linuxrc
		else
	                exec /sbin/init
		fi
        else
                umount /mnt/intimate >/dev/null 2>&1
        fi
fi

# Fire up X quickly
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib:/usr/X11R6/lib
export DISPLAY=:0
export PATH=$PATH:/usr/local/X11R6/bin
/usr/X11R6/bin/Xipaq -screen 240x320@270 &
/usr/X11R6/bin/xcalibrate
/usr/bin/matchbox &
/usr/X11R6/bin/rxvt-aa -fn Wilammette-9:charwidth=5:minspace=true -title KernelMessages -e cat /proc/kmsg &
/usr/X11R6/bin/rxvt-aa -fn Wilammette-9:charwidth=5:minspace=true -title Shell &
/usr/X11R6/bin/xmodmap -e "keycode 135 = Mode_switch Multi_key"
/usr/bin/xkbd &

###use the killall-by-pid func from init scripts
#kill `pidof pump ; pidof udhcpc`
ifconfig lo 127.0.0.1 netmask 255.0.0.0 up

## FUNC PCMCIA ##
cardmgr  # yep, its that easy

echo " "
echo " "
echo "Execing init."
exec /bin/busybox init
