summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpackage/base-files/files/etc/preinit9
-rwxr-xr-xtarget/linux/atheros-2.6/base-files/default/etc/preinit.arch8
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/default/etc/preinit.arch4
3 files changed, 17 insertions, 4 deletions
diff --git a/package/base-files/files/etc/preinit b/package/base-files/files/etc/preinit
index 8163f79ae..c11732f7a 100755
--- a/package/base-files/files/etc/preinit
+++ b/package/base-files/files/etc/preinit
@@ -3,7 +3,16 @@
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
. /etc/diag.sh
+failsafe_ip() {
+ ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
+}
+
failsafe() {
+ [ -n "$ifname" ] && grep "$ifname" /proc/net/dev >/dev/null && {
+ failsafe_ip
+ netmsg 192.168.1.255 "Entering Failsafe!"
+ telnetd -l /bin/login <> /dev/null 2>&1
+ }
lock /tmp/.failsafe
ash --login
}
diff --git a/target/linux/atheros-2.6/base-files/default/etc/preinit.arch b/target/linux/atheros-2.6/base-files/default/etc/preinit.arch
new file mode 100755
index 000000000..7e911ab2a
--- /dev/null
+++ b/target/linux/atheros-2.6/base-files/default/etc/preinit.arch
@@ -0,0 +1,8 @@
+# reset button only supported on ar5315+ at the moment
+grep 'Atheros AR231[567]' /proc/cpuinfo > /dev/null && {
+ ifname=eth0
+ failsafe_ip
+ netmsg 192.168.1.255 "Press reset now, to enter Failsafe!"
+ ifconfig "$ifname" 0.0.0.0 down
+ sleep 2
+}
diff --git a/target/linux/brcm-2.4/base-files/default/etc/preinit.arch b/target/linux/brcm-2.4/base-files/default/etc/preinit.arch
index a0d97c68b..43df591ab 100755
--- a/target/linux/brcm-2.4/base-files/default/etc/preinit.arch
+++ b/target/linux/brcm-2.4/base-files/default/etc/preinit.arch
@@ -1,9 +1,5 @@
. /etc/functions.sh
-failsafe_ip() {
- ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
-}
-
failsafe() {
lock /tmp/.failsafe
failsafe_ip