diff options
author | Dirk von Suchodoletz | 2006-12-14 20:41:21 +0100 |
---|---|---|
committer | Dirk von Suchodoletz | 2006-12-14 20:41:21 +0100 |
commit | 536dedb52774612e24466d98fb7f043d581b594b (patch) | |
tree | 28548829558120b041c09164fdf7c08b33bb6f6e /initramfs/initrd-stuff | |
parent | First steps to include (open)SuSE10.2 into SLX environment (see #98). Tried t... (diff) | |
download | core-536dedb52774612e24466d98fb7f043d581b594b.tar.gz core-536dedb52774612e24466d98fb7f043d581b594b.tar.xz core-536dedb52774612e24466d98fb7f043d581b594b.zip |
Autopoweroff if stuck in Stage3/initramfs. Unfortunately rather CPU
intensive if no (u)sleep binary is used but shell instead (for some
reason TMOUT=$1 read does not work in init)
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@535 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs/initrd-stuff')
-rw-r--r-- | initramfs/initrd-stuff/etc/functions | 12 | ||||
-rwxr-xr-x | initramfs/initrd-stuff/init | 20 |
2 files changed, 21 insertions, 11 deletions
diff --git a/initramfs/initrd-stuff/etc/functions b/initramfs/initrd-stuff/etc/functions index 4ede90c6..75af6c29 100644 --- a/initramfs/initrd-stuff/etc/functions +++ b/initramfs/initrd-stuff/etc/functions @@ -2,7 +2,7 @@ # (included by init, hwautocfg, servconfig, ... within OpenSLX initial # ramfs) # -# Dirk von Suchodoletz <dvs@OpenSLX.com>, 19-11-2006 +# Dirk von Suchodoletz <dvs@OpenSLX.com>, 14-12-2006 # Felix Endres, 30-04-2006 # <mj0@uni-freiburg.de> (xenbr), 12-12-2006 # Tobias Maier @@ -113,6 +113,16 @@ else fi return 0 } +# standard sleep command +sleep () { +if [ -x /bin/sleep ]; then + /bin/sleep $1 +#elif [ -x /bin/bash ]; then +# TMOUT=$1 read +else + usleep `expr $1 \* 100` +fi +} ############################################################################# # (re)generate dynamic linked libraries cache from /etc/ld.so.conf ldcfg () { diff --git a/initramfs/initrd-stuff/init b/initramfs/initrd-stuff/init index 366086ee..097e8c15 100755 --- a/initramfs/initrd-stuff/init +++ b/initramfs/initrd-stuff/init @@ -45,7 +45,7 @@ mkdir -p ${DEVDIR}/.udevdb [ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys # redirect console (after /dev/console is available, and /dev mounted) -exec < /dev/console > /dev/console 2>&1 +#exec < /dev/console > /dev/console 2>&1 # if no kernel version is set, try to get it directly from /proc if [ -z $KERNEL ] ; then @@ -201,15 +201,15 @@ done # or halt of the machine if SLX init does not succeed (e.g. missing kernel # module for the network adaptor) # fixme/testme!! -# errorhalt () { -# if [ "${DEBUGLEVEL}" -lt 3 ] ; then -# [ ! -f /proc/version ] && mount -n -t proc proc /proc -# [ ! -f /proc/sysrq-trigger ] && echo -e $init_nosysrq -# usleep 100000 -# echo "o" > /proc/sysrq-trigger -# fi -# } -# errorhalt & +errorhalt () { +if [ "${DEBUGLEVEL}" -lt 4 ] ; then + [ ! -f /proc/version ] && mount -n -t proc proc /proc + [ ! -f /proc/sysrq-trigger ] && echo -e $init_nosysrq + sleep 120 + echo "o" > /proc/sysrq-trigger +fi +} +errorhalt & # check if at least one type of IP configuration is availabe if [ -z "$DHCP" -a -z "$LDAP" -a -z "$IPINFO" ] ; then |