summaryrefslogtreecommitdiff
path: root/packages/nslu2-binary-only/unslung-rootfs/linuxrc
diff options
context:
space:
mode:
authorMike Westerhof <mwester@dls.net>2006-07-11 03:37:51 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-07-11 03:37:51 +0000
commitc5caa8e5bab6d22e201661d904853c3b65ea23c2 (patch)
treef2d02698254d9d619c109aa295f31cfed2d75573 /packages/nslu2-binary-only/unslung-rootfs/linuxrc
parent100c0e7c388a79d1a9e159193f5387b1a6072c0f (diff)
Unslung: netconsole debugging support
Diffstat (limited to 'packages/nslu2-binary-only/unslung-rootfs/linuxrc')
-rwxr-xr-xpackages/nslu2-binary-only/unslung-rootfs/linuxrc114
1 files changed, 73 insertions, 41 deletions
diff --git a/packages/nslu2-binary-only/unslung-rootfs/linuxrc b/packages/nslu2-binary-only/unslung-rootfs/linuxrc
index d8a0e5d06c..c12984bf1d 100755
--- a/packages/nslu2-binary-only/unslung-rootfs/linuxrc
+++ b/packages/nslu2-binary-only/unslung-rootfs/linuxrc
@@ -1,5 +1,25 @@
#!/bin/sh
+NC_SLUGIP="192.168.1.77"
+NC_TARGIP="192.168.1.100"
+
+if ( [ -f "/.nc" ] ) ; then
+ if ( [ -z "$RERUN" ] ) ; then
+ /bin/echo " DEBUG: Starting network console from flash ..."
+ . /.nc
+ /bin/echo "Insmod ixp400"
+ /sbin/insmod ixp400.o
+ /bin/echo "Insmod ixp425"
+ /sbin/insmod ixp425_eth.o
+ /sbin/ifconfig ixp0 $NC_SLUGIP
+ /bin/echo "Insmod netconsole"
+ /sbin/insmod netconsole.o target_ip=$NC_TARGIP
+ /bin/echo "Redirecting output via nc and restarting /linuxrc ..."
+ export RERUN=1
+ exec /linuxrc 2>&1 | tee /dev/console | /usr/bin/nc $NC_TARGIP 6666
+ fi
+fi
+
# **** DO NOT EVEN THINK OF EDITING OR REMOVING THIS FILE ****
# **** UNLESS YOU REALLY KNOW *EXACTLY* WHAT YOU ARE DOING. ****
@@ -8,62 +28,74 @@
/bin/mount -t proc proc /proc
-echo "1" > /proc/sys/kernel/panic
-
-/bin/echo "Sleeping while waiting for disk..."
-cnt=20
-while [ $cnt -gt 0 ] ; do
- echo -ne "\r$cnt "
- sleep 1
- [ -e /.sda1root -a -f /proc/hdd_sda ] && cnt=0
- [ -e /.sdb1root -a -f /proc/hdd_sdb ] && cnt=0
- cnt=`expr $cnt - 1`
-done
-echo
-
-sleep 5
-
-mounted=
-
-for prefroot in sda1 sdb1 ; do
- if [ -z "$mounted" -a -e /.${prefroot}root ] ; then
- if /bin/mount -rt ext3 /dev/$prefroot /mnt ; then
- if [ -e /mnt/.${prefroot}root -a -x /mnt/bin/init ] ; then
- /bin/echo "Root filesystem will be mounted from /dev/$prefroot ..."
- mounted=/mnt
- else
- /bin/umount /mnt
- /bin/echo "Can't find valid rootfs on /dev/$prefroot ..."
+/bin/echo "1" > /proc/sys/kernel/panic
+
+if ( ! [ -f /.nodisk ] ) ; then
+
+ /bin/echo "Sleeping while waiting for disk..."
+ cnt=20
+ while [ $cnt -gt 0 ] ; do
+ /bin/echo -ne "\r$cnt "
+ /bin/sleep 1
+ [ -e /.sda1root -a -f /proc/hdd_sda ] && cnt=0
+ [ -e /.sdb1root -a -f /proc/hdd_sdb ] && cnt=0
+ cnt=`expr $cnt - 1`
+ done
+ echo
+
+ /bin/sleep 5
+
+ mounted=
+
+ for prefroot in sda1 sdb1 ; do
+ if [ -z "$mounted" -a -e /.${prefroot}root ] ; then
+ if /bin/mount -rt ext3 /dev/$prefroot /mnt ; then
+ if [ -e /mnt/.${prefroot}root -a -x /mnt/bin/init ] ; then
+ /bin/echo "Root filesystem will be mounted from /dev/$prefroot ..."
+ mounted=/mnt
+ else
+ /bin/umount /mnt
+ /bin/echo "Can't find valid rootfs on /dev/$prefroot ..."
+ fi
fi
fi
+ done
+
+ if [ -z "$mounted" ] ; then
+ /bin/echo "Can't find valid rootfs, using ramdisk ..."
+ mounted=
fi
-done
-if [ -z "$mounted" ] ; then
- /bin/echo "Can't find valid rootfs, using ramdisk ..."
- mounted=
-fi
+ /bin/umount /proc
-/bin/umount /proc
+ # Pivot to the desired rootfs and run the initial executable.
-# Pivot to the desired rootfs and run the initial executable.
+ if [ -n "$mounted" ] ; then
-if [ -n "$mounted" ] ; then
+ cd $mounted
- cd $mounted
+ /bin/echo "Pivoting to external rootfs ..."
+ /sbin/pivot_root . initrd
- /bin/echo "Pivoting to external rootfs ..."
- /sbin/pivot_root . initrd
+ if ( [ -z "$RERUN" ] ) ; then
+ exec /usr/sbin/chroot . /bin/init < /dev/console 1> /dev/console 2> /dev/console
+ else
+ exec /usr/sbin/chroot . /bin/init
+ fi
+ else
- exec /usr/sbin/chroot . /bin/init < /dev/console 1> /dev/console 2> /dev/console
+ exec /bin/init
-else
+ fi
- exec /bin/init
+ /bin/echo "Can't pivot to external rootfs, using ramdisk ..."
+else
+ /bin/echo "Forced boot to internal flash ..."
+ /bin/echo "(One-time only, clearing forced boot flag file.)"
+ /bin/rm -f /.nodisk
fi
-/bin/echo "Can't pivot to external rootfs, using ramdisk ..."
exec /bin/init
# Last-resort fall-back - this should never be reached.