summaryrefslogtreecommitdiff
path: root/packages/altboot/files/altboot.func
diff options
context:
space:
mode:
Diffstat (limited to 'packages/altboot/files/altboot.func')
-rw-r--r--packages/altboot/files/altboot.func85
1 files changed, 85 insertions, 0 deletions
diff --git a/packages/altboot/files/altboot.func b/packages/altboot/files/altboot.func
index ceee6abae2..5651ef9f9d 100644
--- a/packages/altboot/files/altboot.func
+++ b/packages/altboot/files/altboot.func
@@ -295,3 +295,88 @@ check_fs() {
fi
fi
}
+
+# Make the initial rootfs a bit more usable
+init_rootfs(){
+ 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"
+
+ mount | grep -q "/proc " >/dev/null 2>&1 && echo "Note: /proc is already mounted" || mount proc -t proc /proc >/dev/tty0 2>&1
+
+ if ( uname -r | grep -q "2.6." )
+ then
+ mount | grep -q "/sys " >/dev/null 2>&1 && echo "Note: /sys is already mounted" || mount sys -t sysfs /sys >/dev/tty0 2>&1
+ fi
+
+ echo -n "Generating device files..." >/dev/tty0
+ /etc/init.d/devices start && echo ok >/dev/tty0|| die "FAILED"
+}
+
+mount_sd(){
+ if mount | grep -q "/media/card "
+ then
+ echo "Note: /media/card is already mounted"
+ else
+ # We can't trust that the SD device file is there when running kernel 2.6 w/ udev
+ # and starting udev at this point may not be the best idea...
+ if `uname -r | grep -q "2.6"`
+ then
+ #Let's just assume the device file name never changes...
+ dev_no="`echo "$SD_DEVICE" | sed -n "s/\/dev\/mmcblk\(.*\)p\(.*\)/\1/p"`"
+ part_no="`echo "$SD_DEVICE" | sed -n "s/\/dev\/mmcblk\(.*\)p\(.*\)/\2/p"`"
+ ! test -e /dev/mmcblk${dev_no} && mknod /dev/mmcblk${dev_no} b 254 0
+ ! test -e /dev/mmcblk${dev_no}p${part_no} && mknod /dev/mmcblk${dev_no}p${part_no} b 254 $part_no
+ fi
+
+ # Kernel 2.6 has the SD driver compiled into the kernel
+ if test -n "$SD_KERNEL_MODULE"
+ then
+ echo -n "Loading SD kernel module..."
+ /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed"
+ else
+ echo "No SD kernel module configured, assuming it's build-in"
+ fi
+
+ check_fs "$SD_DEVICE"
+
+ 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"
+ fi
+ echo ""
+
+ # Give the SD and CF mounting some time. This is a must for SD
+ sleep 2
+}
+
+mount_cf(){
+ if mount | grep -q "/media/cf "
+ then
+ echo "Note: /media/cf is already mounted"
+ else
+ /etc/init.d/pcmcia start || die "/etc/init.d/pcmcia/start failed!"
+
+ echo ""
+
+ # Give the SD and CF mounting some time. This is a must for SD
+ sleep 2
+ fi
+}
+
+mount_home(){
+ if mount | grep -q "/home "
+ then
+ echo "Note: /home is already mounted"
+ else
+
+ if ( grep -q "/home " /etc/fstab )
+ then
+ echo "Mounting /home"
+ home_fstab="`grep "/home " /etc/fstab`"
+ home_dev="`echo "$home_fstab" | awk '{print $1}'`"
+ home_fs="`echo "$home_fstab" | awk '{print $3}'`"
+ home_options="`echo "$home_fstab" | awk '{print $4}'`"
+
+ mount -t "$home_fs" -o $home_options "$home_dev" /home
+ fi
+ fi
+}