Unslung and OpenSlug linuxrc corrections
authorRod Whitby <rod@whitby.id.au>
Thu, 5 May 2005 09:05:16 +0000 (09:05 +0000)
committerRod Whitby <rod@whitby.id.au>
Thu, 5 May 2005 09:05:16 +0000 (09:05 +0000)
BKrev: 4279e1ccfjKblxAjFzpCmQ50KUV4hw

conf/distro/openslug.conf
conf/distro/unslung.conf
packages/nslu2-binary-only/unslung-rootfs-2.3r25/linuxrc
packages/nslu2-binary-only/unslung-rootfs_2.3r25.bb
packages/openslug-init/openslug-init-0.10/linuxrc
packages/openslug-init/openslug-init_0.10.bb

index 274fdec..045b7a4 100644 (file)
@@ -3,7 +3,7 @@
 #@DESCRIPTION: OpenSlug Linux Distribution for the NSLU2
 
 DISTRO_NAME = "OpenSlug"
-DISTRO_VERSION = "1.8-beta"
+DISTRO_VERSION = "1.9-beta"
 DISTRO_TYPE ?= "beta"
 
 TARGET_FPU_local ?= "soft"
index f947f97..c9e4d50 100644 (file)
@@ -7,7 +7,7 @@ FEED_URIS += "native##http://ipkg.nslu2-linux.org/feeds/unslung/native"
 FEED_URIS += "oe##http://ipkg.nslu2-linux.org/feeds/unslung/oe"
 
 DISTRO_NAME = "Unslung"
-DISTRO_VERSION = "4.18-alpha"
+DISTRO_VERSION = "4.19-alpha"
 DISTRO_TYPE = "beta"
 
 TARGET_FPU = "soft"
index 3ae0b25..38abf00 100644 (file)
@@ -8,27 +8,27 @@
 
 if [ -f /.ramdisk ] ; then
     /bin/echo "Preferred root device is /dev/ram0 (maintenence)"
-    mounted=/mnt/tmpmnt
+    mounted=/mnt
     prefroot=maintenence
 elif [ -f /.sda1root ] ; then
     /bin/echo "Preferred root device is /dev/sda1 (disk 1)"
-    mounted=/mnt/tmpmnt
+    mounted=/mnt
     prefroot=sda1
 elif [ -f /.sda2root ] ; then
     /bin/echo "Preferred root device is /dev/sda2 (disk 1)"
-    mounted=/mnt/tmpmnt
+    mounted=/mnt
     prefroot=sda2
 elif [ -f /.sdb1root ] ; then
     /bin/echo "Preferred root device is /dev/sdb1 (disk 2)"
-    mounted=/mnt/tmpmnt
+    mounted=/mnt
     prefroot=sdb1
 elif [ -f /.sdb2root ] ; then
     /bin/echo "Preferred root device is /dev/sdb2 (disk 2)"
-    mounted=/mnt/tmpmnt
+    mounted=/mnt
     prefroot=sdb2
 elif [ -f /.nfsroot ] ; then
     /bin/echo "Preferred root device is NFS"
-    mounted=/mnt/tmpmnt
+    mounted=/mnt
     prefroot=nfsroot
 else
     /bin/echo "Preferred root device is jffs2"
@@ -44,12 +44,12 @@ fi
 if [ $prefroot = "sda1" -o $prefroot = "sda2" -o $prefroot = "sdb1" -o $prefroot = "sdb2" ] ; then
     /bin/echo "Sleeping 10sec while waiting for disk..."
     sleep 10
-    /bin/mount -rt ext3 /dev/$prefroot /mnt/tmpmnt
-    if [ -L /mnt/tmpmnt/sbin/init -o -x /mnt/tmpmnt/sbin/init -o \
-       -L /mnt/tmpmnt/bin/init  -o -x /mnt/tmpmnt/bin/init ] ; then
+    /bin/mount -rt ext3 /dev/$prefroot /mnt
+    if [ -L /mnt/sbin/init -o -x /mnt/sbin/init -o \
+       -L /mnt/bin/init  -o -x /mnt/bin/init ] ; then
        /bin/echo "Root filesystem will be mounted from /dev/$prefroot ..."
     else
-       /bin/umount /mnt/tmpmnt
+       /bin/umount /mnt
        /bin/echo "Can't find valid rootfs on /dev/$prefroot, using jffs2 ..."
        mounted=
        prefroot=jffs2
@@ -59,9 +59,9 @@ fi
 if [ $prefroot = "maintenence" ] ; then
     /bin/dd if=/dev/zero of=/dev/ram0 bs=1k count=12k 2>/dev/null 
     /usr/bin/mke2fs -m 0 /dev/ram0 12288
-    /bin/mount -t ext2 /dev/ram0 /mnt/tmpmnt
-    ( /usr/bin/find . -print0 -mount | /usr/bin/cpio -p -0 -d -m -u /mnt/tmpmnt )
-    /bin/rm -f /mnt/tmpmnt/linuxrc
+    /bin/mount -t ext2 /dev/ram0 /mnt
+    ( /usr/bin/find . -print0 -mount | /usr/bin/cpio -p -0 -d -m -u /mnt )
+    /bin/rm -f /mnt/linuxrc
 fi
 
 if [ $prefroot = "nfsroot" ] ; then
@@ -81,14 +81,14 @@ if [ $prefroot = "nfsroot" ] ; then
     # The nfsrootloc and nfsrootopts vars can be overridden here.
     . /.nfsroot
 
-    /bin/mount $nfsrootopts $nfsrootloc /mnt/tmpmnt
+    /bin/mount $nfsrootopts $nfsrootloc /mnt
 
-    if  [ -L /mnt/tmpmnt/sbin/init -o -x /mnt/tmpmnt/sbin/init -o \
-       -L /mnt/tmpmnt/bin/init  -o -x /mnt/tmpmnt/bin/init ] ; then
+    if  [ -L /mnt/sbin/init -o -x /mnt/sbin/init -o \
+       -L /mnt/bin/init  -o -x /mnt/bin/init ] ; then
        /bin/echo "Root filesystem will be mounted from an NFS root ..."
-       mounted=/mnt/tmpmnt
+       mounted=/mnt
     else
-       /bin/umount /mnt/tmpmnt
+       /bin/umount /mnt
        /bin/echo "Can't find valid NFS rootfs, using jffs2 ..."
        mounted=
        prefroot=jffs2
index 5c37284..684a0d7 100644 (file)
@@ -1,8 +1,8 @@
 SECTION = "base"
 
-PR = "r62"
+PR = "r63"
 
-UNSLUNG_VERSION = "4.18-alpha"
+UNSLUNG_VERSION = "4.19-alpha"
 
 DEPENDS = "nslu2-linksys-libs"
 
index e69de29..47cad6b 100644 (file)
@@ -0,0 +1,146 @@
+#!/bin/sh
+
+# ****  DO NOT EVEN THINK OF EDITING OR REMOVING THIS FILE  ****
+# **** UNLESS YOU REALLY KNOW *EXACTLY* WHAT YOU ARE DOING. ****
+
+
+# Determine the desired rootfs based on user flag files.
+
+if [ -f /.ramdisk ] ; then
+    /bin/echo "Preferred root device is /dev/ram0 (maintenence)"
+    mounted=/mnt
+    prefroot=maintenence
+elif [ -f /.sda1root ] ; then
+    /bin/echo "Preferred root device is /dev/sda1 (disk 1)"
+    mounted=/mnt
+    prefroot=sda1
+elif [ -f /.sda2root ] ; then
+    /bin/echo "Preferred root device is /dev/sda2 (disk 1)"
+    mounted=/mnt
+    prefroot=sda2
+elif [ -f /.sdb1root ] ; then
+    /bin/echo "Preferred root device is /dev/sdb1 (disk 2)"
+    mounted=/mnt
+    prefroot=sdb1
+elif [ -f /.sdb2root ] ; then
+    /bin/echo "Preferred root device is /dev/sdb2 (disk 2)"
+    mounted=/mnt
+    prefroot=sdb2
+elif [ -f /.nfsroot ] ; then
+    /bin/echo "Preferred root device is NFS"
+    mounted=/mnt
+    prefroot=nfsroot
+else
+    /bin/echo "Preferred root device is jffs2"
+    mounted=
+    prefroot=jffs2
+fi
+
+
+# Perform prepatory tasks, and determine whether the desired rootfs is viable.
+
+/bin/mount -t proc proc /proc
+
+if [ $prefroot = "sda1" -o $prefroot = "sda2" -o $prefroot = "sdb1" -o $prefroot = "sdb2" ] ; then
+    /bin/echo "Sleeping 10sec while waiting for disk..."
+    sleep 10
+    /bin/mount -rt ext3 /dev/$prefroot /mnt
+    if [ -L /mnt/sbin/init -o -x /mnt/sbin/init -o \
+       -L /mnt/bin/init  -o -x /mnt/bin/init ] ; then
+       /bin/echo "Root filesystem will be mounted from /dev/$prefroot ..."
+    else
+       /bin/umount /mnt
+       /bin/echo "Can't find valid rootfs on /dev/$prefroot, using jffs2 ..."
+       mounted=
+       prefroot=jffs2
+    fi
+fi
+
+if [ $prefroot = "maintenence" ] ; then
+    /bin/dd if=/dev/zero of=/dev/ram0 bs=1k count=12k 2>/dev/null 
+    /usr/bin/mke2fs -m 0 /dev/ram0 12288
+    /bin/mount -t ext2 /dev/ram0 /mnt
+    ( /usr/bin/find . -print0 -mount | /usr/bin/cpio -p -0 -d -m -u /mnt )
+    /bin/rm -f /mnt/linuxrc
+    /bin/cp /mnt/home/httpd/html/Management/upgrade.cgi /mnt/home/httpd/html/Management/upgrade-real.cgi
+    /bin/echo "#!/bin/sh" > /mnt/home/httpd/html/Management/upgrade.cgi
+    /bin/echo >> /mnt/home/httpd/html/Management/upgrade.cgi
+    /bin/echo "/bin/mount -t ramfs none /upload -o size=8196 2>/dev/null" \
+       >> /mnt/home/httpd/html/Management/upgrade.cgi
+    /bin/echo "/bin/dd if=/dev/zero of=/upload/free-ram bs=1k count=8k 2>/dev/null" \
+       >> /mnt/home/httpd/html/Management/upgrade.cgi
+    /bin/echo "/bin/umount /upload 2>/dev/null" \
+       >> /mnt/home/httpd/html/Management/upgrade.cgi
+    /bin/echo "exec /home/httpd/html/Management/upgrade-real.cgi" \
+       >> /mnt/home/httpd/html/Management/upgrade.cgi
+    /bin/echo "Root filesystem will be mounted from /dev/ram0 (a copy of /dev/mtdblock4) ..."
+fi
+
+if [ $prefroot = "nfsroot" ] ; then
+
+    sysconflen=`/bin/dd if=/dev/mtd1 bs=4 count=1 2>/dev/null | /usr/bin/hexdump -n 6 -e '"%02d"'`
+    ipaddr=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep ip_addr | sed -e s/ip_addr=//`
+    netmask=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep netmask | sed -e s/netmask=//`
+    gateway=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep gateway | sed -e s/gateway=//`
+
+    /sbin/insmod ixp400
+    /sbin/insmod ixp425_eth
+    /sbin/ifconfig ixp0 up $ipaddr netmask $netmask
+    /sbin/route add default gw $gateway
+
+    /sbin/ifconfig lo up 127.0.0.1
+
+    # The nfsrootloc and nfsrootopts vars can be overridden here.
+    . /.nfsroot
+
+    /bin/mount $nfsrootopts $nfsrootloc /mnt
+
+    if  [ -L /mnt/sbin/init -o -x /mnt/sbin/init -o \
+       -L /mnt/bin/init  -o -x /mnt/bin/init ] ; then
+       /bin/echo "Root filesystem will be mounted from an NFS root ..."
+       mounted=/mnt
+    else
+       /bin/umount /mnt
+       /bin/echo "Can't find valid NFS rootfs, using jffs2 ..."
+       mounted=
+       prefroot=jffs2
+    fi
+fi
+
+if [ $prefroot = "jffs2" ] ; then
+    /bin/echo "Root filesystem will be mounted from /dev/mtdblock4 ..."
+    mounted=
+fi
+
+
+/bin/umount /proc
+
+# Pivot to the desired rootfs and run the initial executable.
+
+if [ -n "$mounted" ] ; then
+
+    cd $mounted
+
+    if [ -x ./sbin/init -o -L ./sbin/init ] ; then
+       runboot=/sbin/init
+    elif [ -x ./bin/init -o -L ./bin/init ] ; then
+       runboot=/bin/init
+    else
+       runboot=/bin/sh
+    fi
+
+    /sbin/pivot_root . initrd
+
+    exec /usr/sbin/chroot . $runboot < /dev/console 1> /dev/console 2> /dev/console
+
+else
+
+    exec /bin/init
+
+fi
+
+/bin/echo "Can't chroot to $prefroot, using jffs2 ..."
+exec /bin/init
+
+# Last-resort fall-back - this should never be reached.
+/bin/sh
index fe1f9d7..3454d29 100644 (file)
@@ -2,7 +2,7 @@ DESCRIPTION = "Openslug initial network config via sysconf"
 SECTION = "console/network"
 LICENSE = "GPL"
 DEPENDS = "base-files"
-PR = "r19"
+PR = "r20"
 
 SRC_URI = "file://linuxrc \
           file://sysconfsetup \