Merge bk://nslu2-linux@nslu2-linux.bkbits.net/openembedded
authorRod Whitby <rod@whitby.id.au>
Sun, 20 Feb 2005 22:58:14 +0000 (22:58 +0000)
committerRod Whitby <rod@whitby.id.au>
Sun, 20 Feb 2005 22:58:14 +0000 (22:58 +0000)
into home.(none):/home/slug/openembedded

2005/02/21 09:27:59+10:30 (none)!rwhitby
Switchbox fixes for OpenSlug - test for runboot

BKrev: 42191606HMhwE0VUeRSHbVYKOiY3JQ

packages/busybox/switchbox-1.00/linuxrc

index 7ce4adb..850d359 100644 (file)
@@ -21,42 +21,34 @@ if [ -z "$mounted" ] && /bin/mount -rt jffs2 /dev/mtdblock4 /mnt/jffs2 ; then
     if [ -f /mnt/jffs2/.recovery ] ; then
        /bin/echo "Preferred root device is /dev/ram0 (recovery)"
        mounted=
-       runboot=
        prefroot=
     elif [ -f /mnt/jffs2/.sda1root ] ; then
        /bin/echo "Preferred root device is /dev/sda1 (disk 1)"
        mounted=/mnt/newroot
-       runboot=/bin/init
        prefroot=sda1
     elif [ -f /mnt/jffs2/.sda2root ] ; then
        /bin/echo "Preferred root device is /dev/sda2 (disk 1)"
        mounted=/mnt/newroot
-       runboot=/bin/init
        prefroot=sda2
     elif [ -f /mnt/jffs2/.sdb1root ] ; then
        /bin/echo "Preferred root device is /dev/sdb1 (disk 2)"
        mounted=/mnt/newroot
-       runboot=/bin/init
        prefroot=sdb1
     elif [ -f /mnt/jffs2/.sdb2root ] ; then
        /bin/echo "Preferred root device is /dev/sdb2 (disk 2)"
        mounted=/mnt/newroot
-       runboot=/bin/init
        prefroot=sdb2
     elif [ -f /mnt/jffs2/.ramdisk ] ; then
        /bin/echo "Preferred root device is /dev/ram1 (maintenence)"
        mounted=/mnt/newroot
-       runboot=/bin/init
        prefroot=maintenence
     elif [ -f /mnt/jffs2/.nfsroot ] ; then
        /bin/echo "Preferred root device is through NFS"
         mounted=/mnt/newroot
-       runboot=/linuxrc
        prefroot=nfsroot
     else
        /bin/echo "Preferred root device is jffs2"
        mounted=/mnt/jffs2
-       runboot=/linuxrc
        prefroot=jffs2
     fi
 fi
@@ -74,7 +66,6 @@ if [ -n "$prefroot" ] ; then
        else
            /bin/echo "Cant find valid rootfs on /dev/$prefroot, using recovery ..."
            mounted=
-           runboot=
        fi
 
     elif [ $prefroot = "maintenence" ] ; then
@@ -104,7 +95,6 @@ if [ -n "$prefroot" ] ; then
        else
            /bin/echo "Cant find valid rootfs on ram1, using recovery ..."
            mounted=
-           runboot=
        fi
 
     elif [ $prefroot = "nfsroot" ] ; then
@@ -134,11 +124,9 @@ if [ -n "$prefroot" ] ; then
              -L /mnt/newroot/bin/init  -o -x /mnt/newroot/bin/init ] ; then
            /bin/echo "Root filesystem will be mounted from a NFS root ..."
            mounted=/mnt/newroot
-           runboot=/linuxrc
        else
            /bin/echo "Cant find valid NFS rootfs, using recovery ..."
            mounted=
-           runboot=
        fi
 
     else
@@ -146,11 +134,9 @@ if [ -n "$prefroot" ] ; then
              -L /mnt/jffs2/bin/init  -o -x /mnt/jffs2/bin/init ] ; then
            /bin/echo "Root filesystem will be mounted from /dev/mtdblock4 ..."
            mounted=/mnt/jffs2
-           runboot=/linuxrc
        else
            /bin/echo "Cant find valid rootfs on jffs2, using recovery ..."
            mounted=
-           runboot=
        fi
     fi
 fi
@@ -167,6 +153,15 @@ if [ -n "$mounted" ] ; then
     umount /proc
     cd $mounted
     /sbin/pivot_root . initrd
+    if [ -x /linuxrc ] ; then
+       runboot=/linuxrc
+    elif [ -x /sbin/init ] ; then
+       runboot=/sbin/init
+    elif [ -x /bin/init ] ; then
+       runboot=/bin/init
+    else
+       runboot=/bin/sh
+    fi
     exec chroot . $runboot  < dev/console > dev/console 2>&1
 fi