diff options
Diffstat (limited to 'packages/busybox/switchbox-1.00/linuxrc')
-rw-r--r-- | packages/busybox/switchbox-1.00/linuxrc | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/packages/busybox/switchbox-1.00/linuxrc b/packages/busybox/switchbox-1.00/linuxrc index 117bd33c64..9f6ae7869b 100644 --- a/packages/busybox/switchbox-1.00/linuxrc +++ b/packages/busybox/switchbox-1.00/linuxrc @@ -7,14 +7,14 @@ prefroot= /bin/mount -t proc proc /proc /bin/echo "0x0100" > /proc/sys/kernel/real-root-dev -sysconflen=`/bin/dd if=/dev/mtd1 bs=4 count=1 | hexdump -n 6 -e '"%02d"'` -ipaddr=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 | grep ip_addr | sed -e s/ip_addr=//` -netmask=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 | grep netmask | sed -e s/netmask=//` -gateway=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 | grep gateway | sed -e s/gateway=//` -nfsrootloc=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 | grep nfsroot | sed -e s/nfsroot=// | cut -d, -f 1` -nfsrootopts=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 | grep nfsroot | sed -e s/nfsroot=// | cut -d, -f 2- | sed -e s/\"//g` +sysconflen=`/bin/dd if=/dev/mtd1 bs=4 count=1 2>/dev/null | 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=//` +nfsrootloc=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep nfsroot | sed -e s/nfsroot=// | cut -d, -f 1` +nfsrootopts=`/bin/dd if=/dev/mtd1 bs=1 count=$sysconflen skip=4 2>/dev/null | grep nfsroot | sed -e s/nfsroot=// | cut -d, -f 2- | sed -e s/\"//g` device=/dev/`/bin/sed -n -e 's/^\(mtd[0-9]*\): .* "FIS directory"/\1/p' /proc/mtd` -length=`/bin/dd if=$device bs=2 skip=2048 | /bin/hexdump -n 4 -e '4/1 "%02X"' $device` +length=`/bin/dd if=$device bs=2 skip=2048 2>/dev/null | /bin/hexdump -n 4 -e '4/1 "%02X"' $device` # Determine desired rootfs if [ -z "$mounted" ] && /bin/mount -rt jffs2 /dev/mtdblock4 /mnt/jffs2 ; then @@ -67,7 +67,7 @@ if [ -n "$prefroot" ] ; then fi elif [ $prefroot = "maintenence" ] ; then - /bin/dd if=/dev/zero of=/dev/ram1 bs=1k count=12k + /bin/dd if=/dev/zero of=/dev/ram1 bs=1k count=12k 2>/dev/null /bin/mkdir /lib /bin/ln -s /mnt/jffs2/lib/* /lib /bin/mkdir /usr/bin @@ -100,7 +100,7 @@ if [ -n "$prefroot" ] ; then # Should the network drivers come from payload or the jffs2? if ( [ "$length" != "FFFFFFFF" ] ); then - /bin/dd if=$device bs=2 skip=2056 | /bin/tar zxvf - + /bin/dd if=$device bs=2 skip=2056 2>/dev/null | /bin/tar zxvf - /sbin/insmod ixp400 /sbin/insmod ixp425_eth /sbin/ifconfig ixp0 up $ipaddr netmask $netmask @@ -144,7 +144,9 @@ fi # Pivot if [ -n "$mounted" ] ; then - /bin/killall portmap + if [ $prefroot = "nfsroot" ] ; then + /bin/killall portmap + fi if [ $mounted != "/mnt/jffs2" ] ; then sleep 1 /bin/umount /mnt/jffs2 @@ -169,7 +171,7 @@ if [ -z "$mounted" ] ; then /bin/echo "Root filesystem cannot be found - dropping into shell ..." if ( [ "$length" != "FFFFFFFF" ] ); then - /bin/dd if=$device bs=2 skip=2056 | /bin/tar zxvf - + /bin/dd if=$device bs=2 skip=2056 2>/dev/null | /bin/tar zxvf - /sbin/insmod ixp400 /sbin/insmod ixp425_eth /sbin/ifconfig ixp0 up $ipaddr netmask $netmask |