move post-failsafe code back to preinit again, spawn failsafe console shell in hotplu...
authorFelix Fietkau <nbd@openwrt.org>
Fri, 3 Nov 2006 04:58:09 +0000 (04:58 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 3 Nov 2006 04:58:09 +0000 (04:58 +0000)
SVN-Revision: 5402

openwrt/package/base-files/default/etc/init.d/rcS
openwrt/package/base-files/default/etc/preinit
openwrt/package/base-files/default/sbin/hotplug.failsafe

index 45e0bbe1987ff7be9379ca131ba1a1317b54581f..d93c81224c4c768bdd839ed22119eff2b1c20380 100755 (executable)
@@ -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 '' &
index fa5037b7ae5ed4a7b1b9cac3f46245cca36d80cf..ced2bd102459e78727cded5373953801f9d9383d 100755 (executable)
@@ -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
index fd1852b9d8b8ba2a638768fbf0bc059e32c0d7bb..e53aca9a352a5111fe2ff5d7424507ec22f5a8c3 100755 (executable)
@@ -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 >/dev/tts/0 2>/dev/tts/0
+       ash --login
+       lock -u /tmp/.failsafe
 }