summaryrefslogtreecommitdiff
path: root/packages/nslu2-binary-only/unslung-rootfs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/nslu2-binary-only/unslung-rootfs')
-rw-r--r--packages/nslu2-binary-only/unslung-rootfs/NOTES4
-rwxr-xr-xpackages/nslu2-binary-only/unslung-rootfs/linuxrc114
-rw-r--r--packages/nslu2-binary-only/unslung-rootfs/rc.1-timestamp.patch8
3 files changed, 85 insertions, 41 deletions
diff --git a/packages/nslu2-binary-only/unslung-rootfs/NOTES b/packages/nslu2-binary-only/unslung-rootfs/NOTES
index 3ff7d79d43..d6d789a858 100644
--- a/packages/nslu2-binary-only/unslung-rootfs/NOTES
+++ b/packages/nslu2-binary-only/unslung-rootfs/NOTES
@@ -535,3 +535,7 @@ Flash filesystem cleanup (regained space):
Upgraded slingbox to v1.1.3 busybox base; enabled 'more' command
(note: upgrade added 3KB in size, 'more' added 4KB in size)
+
+Added network console debugging support:
+ - patched netconsole driver, added netconsole kernel module to image
+ - updated /linuxrc (& misc files) for basic support of same
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.
diff --git a/packages/nslu2-binary-only/unslung-rootfs/rc.1-timestamp.patch b/packages/nslu2-binary-only/unslung-rootfs/rc.1-timestamp.patch
new file mode 100644
index 0000000000..c0034b27ab
--- /dev/null
+++ b/packages/nslu2-binary-only/unslung-rootfs/rc.1-timestamp.patch
@@ -0,0 +1,8 @@
+--- nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.1~ 2006-07-10 19:48:11.000000000 -0500
++++ nslu2-linksys-ramdisk-2.3r63/etc/rc.d/rc.1 2006-07-10 19:48:24.000000000 -0500
+@@ -45,3 +45,5 @@
+ /usr/bin/Set_Led ready
+ /usr/bin/Set_Led beep1
+ /bin/echo "Checking disk status :"; /usr/sbin/CheckDiskFull 2 >/dev/null
++/bin/sleep 5
++/bin/date