From: Felix Fietkau Date: Fri, 3 Nov 2006 04:58:09 +0000 (+0000) Subject: move post-failsafe code back to preinit again, spawn failsafe console shell in hotplu... X-Git-Tag: whiterussian_rc6~30 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=192b36cf64350d3031a060caa01c72a123b8804d;p=openwrt%2Fsvn-archive%2Fopenwrt.git move post-failsafe code back to preinit again, spawn failsafe console shell in hotplug, make sure only one failsafe hotplug instance runs SVN-Revision: 5402 --- diff --git a/openwrt/package/base-files/default/etc/init.d/rcS b/openwrt/package/base-files/default/etc/init.d/rcS index 45e0bbe198..d93c81224c 100755 --- a/openwrt/package/base-files/default/etc/init.d/rcS +++ b/openwrt/package/base-files/default/etc/init.d/rcS @@ -1,27 +1,9 @@ #!/bin/sh -( - lock -w /tmp/.failsafe - echo /sbin/hotplug > /proc/sys/kernel/hotplug - - ifconfig $ifname 0.0.0.0 down - - # revert to the boot loader's vlan config - # required for at least WRT54G v1.1 - [ -d /proc/switch/eth0 ] && { - echo "$v0p" > /proc/switch/eth0/vlan/0/ports - echo "$v1p" > /proc/switch/eth0/vlan/1/ports - echo "$v2p" > /proc/switch/eth0/vlan/2/ports - unset v0p v1p v2p - } - - mount_root - - syslog_ip=$(nvram get log_ipaddr) - eval $(ipcalc "$syslog_ip") - [ "$syslog_ip" = "$IP" ] || syslog_ip="" - syslogd -C 16 ${syslog_ip:+-L -R $syslog_ip} - klogd - for i in /etc/init.d/S*; do - $i start 2>&1 - done -) | logger -s -p 6 -t '' & +syslog_ip=$(nvram get log_ipaddr) +eval $(ipcalc "$syslog_ip") +[ "$syslog_ip" = "$IP" ] || syslog_ip="" +syslogd -C 16 ${syslog_ip:+-L -R $syslog_ip} +klogd +for i in /etc/init.d/S*; do + $i start 2>&1 +done | logger -s -p 6 -t '' & diff --git a/openwrt/package/base-files/default/etc/preinit b/openwrt/package/base-files/default/etc/preinit index fa5037b7ae..ced2bd1024 100755 --- a/openwrt/package/base-files/default/etc/preinit +++ b/openwrt/package/base-files/default/etc/preinit @@ -40,4 +40,21 @@ ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up } || netmsg 192.168.1.255 "Press reset now, to enter Failsafe!" sleep 2 + +lock -w /tmp/.failsafe +echo /sbin/hotplug > /proc/sys/kernel/hotplug + +ifconfig $ifname 0.0.0.0 down + +# revert to the boot loader's vlan config +# required for at least WRT54G v1.1 +[ -d /proc/switch/eth0 ] && { + echo "$v0p" > /proc/switch/eth0/vlan/0/ports + echo "$v1p" > /proc/switch/eth0/vlan/1/ports + echo "$v2p" > /proc/switch/eth0/vlan/2/ports + unset v0p v1p v2p +} + +mount_root + exec /sbin/init diff --git a/openwrt/package/base-files/default/sbin/hotplug.failsafe b/openwrt/package/base-files/default/sbin/hotplug.failsafe index fd1852b9d8..e53aca9a35 100755 --- a/openwrt/package/base-files/default/sbin/hotplug.failsafe +++ b/openwrt/package/base-files/default/sbin/hotplug.failsafe @@ -1,5 +1,6 @@ #!/bin/sh [ "$1" = "button" -a "$ACTION" = "pressed" ] && { + echo /bin/true > /proc/sys/kernel/hotplug lock /tmp/.failsafe case "$(nvram get boardtype)" in @@ -16,4 +17,8 @@ netmsg 192.168.1.255 "Entering Failsafe!" telnetd -l /bin/login <> /dev/null 2>&1 + + exec /dev/tts/0 2>/dev/tts/0 + ash --login + lock -u /tmp/.failsafe }