# !/bin/sh # # Copyright Matthias Hentges (c) 2005 # # License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the GPL) M_TITLE="Boot SD card" die() { echo "ERROR: $1" >/dev/tty0 exec $SH_SHELL /dev/tty0 2>&1 } # This function is activated by init.altboot by calling this script with the "run" option run_module() { test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!" echo -n "Mounting rootfs rw..." >/dev/tty0 mount -o remount,rw / >/dev/tty0 2>&1 && echo ok >/dev/tty0|| die "mount -o remount,rw / failed" test -z "$SPITZ_HDD_PART" && SPITZ_HDD_PART="/dev/hda1" mount -t proc proc /proc || echo "Mounting /proc failed!" # Note: Redirecting STDIN & STDOUT is required, cardmg will die otherwise cardmgr -o < /dev/tty0 > /dev/tty0 2>&1 || echo "cardmgr -o failed!" # I've seen busybox die a horrible death on "!"... if (mount -t auto $SPITZ_HDD_PART /media/hdd) then a=a else echo "ERROR: mount -t auto $SPITZ_HDD_PART /media/hdd failed!" exec $SH_SHELL /dev/tty0 2>&1 fi # echo -n "Generating device files..." >/dev/tty0 # /etc/init.d/devices start && echo ok >/dev/tty0|| die "FAILED" # FIXME: generate device-files echo -n "Loading SD kernel module..." /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed" echo -n "Mounting $SD_MOUNTPOINT..." >/dev/tty0 /bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT >/dev/null 2>&1 && echo ok >/dev/tty0|| die "/bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT failed" echo "" # Give the SD and CF mounting some time. This is a must for SD sleep 2 # Check for a real fs and loop-images. check_target "$SD_MOUNTPOINT" >/dev/tty0 } case "$1" in title) echo "$M_TITLE";; run) run_module "$2";; esac