aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/preinit
diff options
context:
space:
mode:
authorJames <>2013-03-17 12:16:37 +0000
committerJames <>2013-03-17 12:16:37 +0000
commit27b76ab0671089c47506615a796a261e993896a7 (patch)
tree61213d67e7fa87b20356b23798558e2c4212c42f /package/base-files/files/lib/preinit
downloadtrunk-36060-master.tar.gz
trunk-36060-master.tar.bz2
trunk-36060-master.zip
Diffstat (limited to 'package/base-files/files/lib/preinit')
-rw-r--r--package/base-files/files/lib/preinit/.svn/entries674
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/02_default_set_state.svn-base7
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/05_mount_skip.svn-base13
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/10_check_for_mtd.svn-base20
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/10_indicate_failsafe.svn-base18
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/10_indicate_preinit.svn-base50
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/20_check_jffs2_ready.svn-base19
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/30_failsafe_wait.svn-base84
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/40_mount_jffs2.svn-base26
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/40_run_failsafe_hook.svn-base13
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/41_merge_overlay_hooks.svn-base24
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/50_indicate_regular_preinit.svn-base11
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/70_initramfs_test.svn-base14
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/70_pivot_jffs2_root.svn-base14
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/80_mount_root.svn-base9
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/90_mount_no_jffs2.svn-base12
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/90_restore_config.svn-base17
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/99_10_failsafe_login.svn-base18
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/99_10_mount_no_mtd.svn-base12
-rw-r--r--package/base-files/files/lib/preinit/.svn/text-base/99_10_run_init.svn-base10
-rw-r--r--package/base-files/files/lib/preinit/02_default_set_state7
-rw-r--r--package/base-files/files/lib/preinit/05_mount_skip13
-rw-r--r--package/base-files/files/lib/preinit/10_check_for_mtd20
-rw-r--r--package/base-files/files/lib/preinit/10_indicate_failsafe18
-rw-r--r--package/base-files/files/lib/preinit/10_indicate_preinit50
-rw-r--r--package/base-files/files/lib/preinit/20_check_jffs2_ready19
-rw-r--r--package/base-files/files/lib/preinit/30_failsafe_wait84
-rw-r--r--package/base-files/files/lib/preinit/40_mount_jffs226
-rw-r--r--package/base-files/files/lib/preinit/40_run_failsafe_hook13
-rw-r--r--package/base-files/files/lib/preinit/41_merge_overlay_hooks24
-rw-r--r--package/base-files/files/lib/preinit/50_indicate_regular_preinit11
-rw-r--r--package/base-files/files/lib/preinit/70_initramfs_test14
-rw-r--r--package/base-files/files/lib/preinit/70_pivot_jffs2_root14
-rw-r--r--package/base-files/files/lib/preinit/80_mount_root9
-rw-r--r--package/base-files/files/lib/preinit/90_mount_no_jffs212
-rw-r--r--package/base-files/files/lib/preinit/90_restore_config17
-rw-r--r--package/base-files/files/lib/preinit/99_10_failsafe_login18
-rw-r--r--package/base-files/files/lib/preinit/99_10_mount_no_mtd12
-rw-r--r--package/base-files/files/lib/preinit/99_10_run_init10
39 files changed, 1456 insertions, 0 deletions
diff --git a/package/base-files/files/lib/preinit/.svn/entries b/package/base-files/files/lib/preinit/.svn/entries
new file mode 100644
index 0000000..8270063
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/entries
@@ -0,0 +1,674 @@
+10
+
+dir
+36060
+svn://svn.openwrt.org/openwrt/trunk/package/base-files/files/lib/preinit
+svn://svn.openwrt.org/openwrt
+
+
+
+2013-03-13T18:11:19.892934Z
+36003
+blogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3c298f89-4303-0410-b956-a3cf2f4a3e73
+
+90_restore_config
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+04e69cc1da4d81832d27a2cb7ab5358a
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+311
+
+40_run_failsafe_hook
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+17269a4ab7d6cf87d0cfaa9c66dd45c6
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+258
+
+99_10_failsafe_login
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+70069fee1421e423b4b1b32fe8d41275
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+380
+
+99_10_mount_no_mtd
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+6609d58567732864df67793fbd87673f
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+207
+
+10_check_for_mtd
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+d3b129644d4e887c14362fd50cc3a0b2
+2012-12-19T16:07:46.450520Z
+34792
+mirko
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+361
+
+05_mount_skip
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+1653d3e10ce2fa0bb19b9a2bc3512a1b
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+193
+
+20_check_jffs2_ready
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+64b8f9758cf25e80af122a3e458ba2ce
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+344
+
+40_mount_jffs2
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+b52a12f4e1f86507ced5a17c68721415
+2012-12-19T16:07:46.450520Z
+34792
+mirko
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+509
+
+50_indicate_regular_preinit
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+2b9a9ccda822a0f7b9d57458ca31efe2
+2013-03-13T18:11:19.892934Z
+36003
+blogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+251
+
+02_default_set_state
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+193b1e9516b1755f8bd6e23f580e9314
+2011-07-07T02:52:02.172369Z
+27501
+cshore
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+111
+
+30_failsafe_wait
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+fbfc634f57e24a2b818a68731e7d06bb
+2013-03-13T18:11:19.892934Z
+36003
+blogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2107
+
+90_mount_no_jffs2
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+c18d18f6906e46760fa4a7bc641f5e3a
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+240
+
+70_initramfs_test
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+e18ec6f31f263f2d83ba91d1968ee4ad
+2010-03-12T14:37:19.807154Z
+20159
+juhosg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+247
+
+70_pivot_jffs2_root
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+45c359724eec192a210abb1faa4d5c2f
+2012-12-19T16:07:46.450520Z
+34792
+mirko
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+335
+
+41_merge_overlay_hooks
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+db40ab6d5b24c82854843cb41f41f80e
+2010-09-23T17:32:58.124136Z
+23114
+jow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+518
+
+99_10_run_init
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+98ebebf030a69b8c25a7e47a0464755c
+2013-03-13T18:11:19.892934Z
+36003
+blogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+166
+
+10_indicate_preinit
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+4c0cb2401ca1ddfb08398be732832f04
+2013-03-13T18:11:19.892934Z
+36003
+blogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1159
+
+10_indicate_failsafe
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+da886213883c1e3827b041891063609a
+2010-01-25T17:11:17.955488Z
+19331
+nbd
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+365
+
+80_mount_root
+file
+
+
+
+
+2013-03-17T12:13:21.000000Z
+d40c6fa4ce55e2fc41ab815263b95f16
+2013-03-13T18:11:19.892934Z
+36003
+blogic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+214
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/02_default_set_state.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/02_default_set_state.svn-base
new file mode 100644
index 0000000..df43395
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/02_default_set_state.svn-base
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+define_default_set_state() {
+ . /etc/diag.sh
+}
+
+boot_hook_add preinit_main define_default_set_state
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/05_mount_skip.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/05_mount_skip.svn-base
new file mode 100644
index 0000000..c2b7ee7
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/05_mount_skip.svn-base
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+check_skip() {
+ if [ "$pi_mount_skip_next" = "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/10_check_for_mtd.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/10_check_for_mtd.svn-base
new file mode 100644
index 0000000..6a7bd30
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/10_check_for_mtd.svn-base
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+mount_no_mtd() {
+ mtd unlock rootfs
+ mount -o noatime,remount,rw /dev/root /
+}
+
+check_for_mtd() {
+ check_skip || {
+ grep -qs rootfs_data /proc/mtd || {
+ mount_no_mtd && pi_mount_skip_next=true
+ }
+ }
+}
+
+boot_hook_add preinit_mount_root check_for_mtd
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/10_indicate_failsafe.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/10_indicate_failsafe.svn-base
new file mode 100644
index 0000000..7761fd3
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/10_indicate_failsafe.svn-base
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+# commands for emitting messages to network in failsafe mode
+
+indicate_failsafe_led () {
+ set_state failsafe
+}
+
+indicate_failsafe() {
+ echo "- failsafe -"
+ preinit_net_echo "Entering Failsafe!\n"
+ indicate_failsafe_led
+}
+
+boot_hook_add failsafe indicate_failsafe
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/10_indicate_preinit.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/10_indicate_preinit.svn-base
new file mode 100644
index 0000000..da70b97
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/10_indicate_preinit.svn-base
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+preinit_ip() {
+ # if the preinit interface isn't specified and ifname is set in
+ # preinit.arch use that interface
+ if [ -z "$pi_ifname" ]; then
+ pi_ifname=$ifname
+ fi
+
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ ifconfig $pi_ifname $pi_ip netmask $pi_netmask broadcast $pi_broadcast up
+ }
+}
+
+preinit_ip_deconfig() {
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ ifconfig $pi_ifname 0.0.0.0 down
+ }
+}
+
+preinit_net_echo() {
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ {
+ [ "$pi_preinit_net_messages" = "y" ] || {
+ [ "$pi_failsafe_net_message" = "true" ] &&
+ [ "$pi_preinit_no_failsafe_netmsg" != "y" ]
+ }
+ } && netmsg $pi_broadcast "$1"
+ }
+}
+
+preinit_echo() {
+ preinit_net_echo $1
+ echo $1
+}
+
+pi_indicate_led() {
+ set_state preinit
+}
+
+pi_indicate_preinit() {
+ preinit_net_echo "Doing OpenWRT Preinit\n"
+ pi_indicate_led
+}
+
+boot_hook_add preinit_main preinit_ip
+boot_hook_add preinit_main pi_indicate_preinit
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/20_check_jffs2_ready.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/20_check_jffs2_ready.svn-base
new file mode 100644
index 0000000..3c5cf67
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/20_check_jffs2_ready.svn-base
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+mount_no_jffs2() {
+ echo "jffs2 not ready yet; using ramdisk"
+ ramoverlay
+}
+
+check_for_jffs2() {
+ check_skip || {
+ jffs2_ready || {
+ mount_no_jffs2 && pi_mount_skip_next=true
+ }
+ }
+}
+
+boot_hook_add preinit_mount_root check_for_jffs2
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/30_failsafe_wait.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/30_failsafe_wait.svn-base
new file mode 100644
index 0000000..808d973
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/30_failsafe_wait.svn-base
@@ -0,0 +1,84 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+fs_wait_for_key () {
+ local timeout=$3
+ local timer
+ local do_failsafe
+ local keypress_true="$(mktemp)"
+ local keypress_wait="$(mktemp)"
+ local keypress_sec="$(mktemp)"
+ if [ -z "$keypress_wait" ]; then
+ keypress_wait=/tmp/.keypress_wait
+ touch $keypress_wait
+ fi
+ if [ -z "$keypress_true" ]; then
+ keypress_true=/tmp/.keypress_true
+ touch $keypress_true
+ fi
+ if [ -z "$keypress_sec" ]; then
+ keypress_sec=/tmp/.keypress_sec
+ touch $keypress_sec
+ fi
+
+ trap "echo 'true' >$keypress_true; lock -u $keypress_wait ; rm -f $keypress_wait" INT
+ trap "echo 'true' >$keypress_true; lock -u $keypress_wait ; rm -f $keypress_wait" USR1
+
+ [ -n "$timeout" ] || timeout=1
+ [ $timeout -ge 1 ] || timeout=1
+ timer=$timeout
+ lock $keypress_wait
+ {
+ while [ $timer -gt 0 ]; do
+ echo "$timer" >$keypress_sec
+ timer=$(($timer - 1))
+ sleep 1
+ done
+ lock -u $keypress_wait
+ rm -f $keypress_wait
+ } &
+
+ echo "Press the [$1] key and hit [enter] $2"
+ # if we're on the console we wait for input
+ {
+ while [ -r $keypress_wait ]; do
+ timer="$(cat $keypress_sec)"
+
+ [ -n "$timer" ] || timer=1
+ timer="${timer%%\ *}"
+ [ $timer -ge 1 ] || timer=1
+ do_failsafe=""
+ {
+ read -t "$timer" do_failsafe
+ if [ "$do_failsafe" = "$1" ]; then
+ echo "true" >$keypress_true
+ lock -u $keypress_wait
+ rm -f $keypress_wait
+ fi
+ }
+ done
+ }
+ lock -w $keypress_wait
+
+ keypressed=1
+ [ "$(cat $keypress_true)" = "true" ] && keypressed=0
+ [ -f "/tmp/failsafe_button" ] && keypressed=1
+
+ rm -f $keypress_true
+ rm -f $keypress_wait
+ rm -f $keypress_sec
+
+ return $keypressed
+}
+
+failsafe_wait() {
+ FAILSAFE=
+ pi_failsafe_net_message=true
+ preinit_net_echo "Please press button now to enter failsafe"
+ pi_failsafe_net_message=false
+ fs_wait_for_key f 'to enter failsafe mode' $fs_failsafe_wait_timeout && FAILSAFE=true && export FAILSAFE
+}
+
+boot_hook_add preinit_main failsafe_wait
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/40_mount_jffs2.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/40_mount_jffs2.svn-base
new file mode 100644
index 0000000..ded785e
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/40_mount_jffs2.svn-base
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+find_mount_jffs2() {
+ mkdir -p /tmp/overlay
+ mount -o noatime -t jffs2 "$(find_mtd_part rootfs_data)" /tmp/overlay
+ mtd -qq unlock rootfs_data
+}
+
+jffs2_not_mounted() {
+ if [ "$pi_jffs2_mount_success" != "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+do_mount_jffs2() {
+ check_skip || {
+ find_mount_jffs2 && pi_jffs2_mount_success=true
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_jffs2
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/40_run_failsafe_hook.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/40_run_failsafe_hook.svn-base
new file mode 100644
index 0000000..faa043c
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/40_run_failsafe_hook.svn-base
@@ -0,0 +1,13 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+run_failsafe_hook() {
+ if [ "$FAILSAFE" = "true" ]; then
+ boot_run_hook failsafe
+ lock -w /tmp/.failsafe
+ fi
+}
+
+boot_hook_add preinit_main run_failsafe_hook
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/41_merge_overlay_hooks.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/41_merge_overlay_hooks.svn-base
new file mode 100644
index 0000000..4ca6877
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/41_merge_overlay_hooks.svn-base
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Copyright (C) 2010 OpenWrt.org
+
+merge_overlay_hooks() {
+ jffs2_not_mounted || [ ! -d /tmp/overlay/lib/preinit ] || {
+ echo "- merge overlay components -"
+
+ mkdir -p /tmp/preinit-hook-merge
+ ln -sf /lib/preinit/* /tmp/overlay/lib/preinit/[0-9][0-9]_* /tmp/preinit-hook-merge/
+
+ boot_hook_splice_start
+
+ local pipart
+ for pipart in /tmp/preinit-hook-merge/*; do
+ . $pipart
+ done
+
+ boot_hook_splice_finish
+
+ rm -rf /tmp/preinit-hook-merge
+ }
+}
+
+boot_hook_add preinit_mount_root merge_overlay_hooks
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/50_indicate_regular_preinit.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/50_indicate_regular_preinit.svn-base
new file mode 100644
index 0000000..c200dad
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/50_indicate_regular_preinit.svn-base
@@ -0,0 +1,11 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+indicate_regular_preinit() {
+ preinit_net_echo "Continuing with Regular Preinit\n"
+ pi_indicate_led
+}
+
+boot_hook_add preinit_main indicate_regular_preinit
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/70_initramfs_test.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/70_initramfs_test.svn-base
new file mode 100644
index 0000000..15c0dcd
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/70_initramfs_test.svn-base
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+initramfs_test() {
+ if [ -n "$INITRAMFS" ]; then
+ boot_run_hook initramfs
+ preinit_ip_deconfig
+ break
+ fi
+}
+
+boot_hook_add preinit_main initramfs_test
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/70_pivot_jffs2_root.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/70_pivot_jffs2_root.svn-base
new file mode 100644
index 0000000..b76f111
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/70_pivot_jffs2_root.svn-base
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+rootfs_pivot() {
+ check_skip || jffs2_not_mounted || {
+ echo "switching to jffs2"
+ mount -o noatime,move /tmp/overlay /overlay 2>&-
+ fopivot /overlay /rom && pi_mount_skip_next=true
+ }
+}
+
+boot_hook_add preinit_mount_root rootfs_pivot
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/80_mount_root.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/80_mount_root.svn-base
new file mode 100644
index 0000000..9a99ee9
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/80_mount_root.svn-base
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_root() {
+ boot_run_hook preinit_mount_root
+}
+
+[ "$INITRAMFS" = "1" ] || boot_hook_add preinit_main do_mount_root
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/90_mount_no_jffs2.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/90_mount_no_jffs2.svn-base
new file mode 100644
index 0000000..d8ad4ae
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/90_mount_no_jffs2.svn-base
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_no_jffs2() {
+ check_skip || {
+ mount_no_jffs2 && pi_mount_skip_next=true
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_no_jffs2
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/90_restore_config.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/90_restore_config.svn-base
new file mode 100644
index 0000000..210bf61
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/90_restore_config.svn-base
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+restore_config() {
+ [ -f /sysupgrade.tgz ] && {
+ echo "- config restore -"
+ cd /
+ mv sysupgrade.tgz /tmp
+ tar xzf /tmp/sysupgrade.tgz
+ rm -f /tmp/sysupgrade.tgz
+ sync
+ }
+}
+
+boot_hook_add preinit_main restore_config
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/99_10_failsafe_login.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/99_10_failsafe_login.svn-base
new file mode 100644
index 0000000..05d6b77
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/99_10_failsafe_login.svn-base
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+failsafe_netlogin () {
+ telnetd -l /bin/login.sh <> /dev/null 2>&1
+}
+
+failsafe_shell() {
+ lock /tmp/.failsafe
+ ash --login
+ echo "Please reboot system when done with failsafe network logins"
+}
+
+
+boot_hook_add failsafe failsafe_netlogin
+boot_hook_add failsafe failsafe_shell
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/99_10_mount_no_mtd.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/99_10_mount_no_mtd.svn-base
new file mode 100644
index 0000000..c4f38e4
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/99_10_mount_no_mtd.svn-base
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_no_mtd() {
+ check_skip || {
+ mount_no_mtd
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_no_mtd
+
diff --git a/package/base-files/files/lib/preinit/.svn/text-base/99_10_run_init.svn-base b/package/base-files/files/lib/preinit/.svn/text-base/99_10_run_init.svn-base
new file mode 100644
index 0000000..a8f330f
--- /dev/null
+++ b/package/base-files/files/lib/preinit/.svn/text-base/99_10_run_init.svn-base
@@ -0,0 +1,10 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+run_init() {
+ preinit_ip_deconfig
+}
+
+boot_hook_add preinit_main run_init
+
diff --git a/package/base-files/files/lib/preinit/02_default_set_state b/package/base-files/files/lib/preinit/02_default_set_state
new file mode 100644
index 0000000..df43395
--- /dev/null
+++ b/package/base-files/files/lib/preinit/02_default_set_state
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+define_default_set_state() {
+ . /etc/diag.sh
+}
+
+boot_hook_add preinit_main define_default_set_state
diff --git a/package/base-files/files/lib/preinit/05_mount_skip b/package/base-files/files/lib/preinit/05_mount_skip
new file mode 100644
index 0000000..c2b7ee7
--- /dev/null
+++ b/package/base-files/files/lib/preinit/05_mount_skip
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+check_skip() {
+ if [ "$pi_mount_skip_next" = "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
diff --git a/package/base-files/files/lib/preinit/10_check_for_mtd b/package/base-files/files/lib/preinit/10_check_for_mtd
new file mode 100644
index 0000000..6a7bd30
--- /dev/null
+++ b/package/base-files/files/lib/preinit/10_check_for_mtd
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+mount_no_mtd() {
+ mtd unlock rootfs
+ mount -o noatime,remount,rw /dev/root /
+}
+
+check_for_mtd() {
+ check_skip || {
+ grep -qs rootfs_data /proc/mtd || {
+ mount_no_mtd && pi_mount_skip_next=true
+ }
+ }
+}
+
+boot_hook_add preinit_mount_root check_for_mtd
+
diff --git a/package/base-files/files/lib/preinit/10_indicate_failsafe b/package/base-files/files/lib/preinit/10_indicate_failsafe
new file mode 100644
index 0000000..7761fd3
--- /dev/null
+++ b/package/base-files/files/lib/preinit/10_indicate_failsafe
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+# commands for emitting messages to network in failsafe mode
+
+indicate_failsafe_led () {
+ set_state failsafe
+}
+
+indicate_failsafe() {
+ echo "- failsafe -"
+ preinit_net_echo "Entering Failsafe!\n"
+ indicate_failsafe_led
+}
+
+boot_hook_add failsafe indicate_failsafe
+
diff --git a/package/base-files/files/lib/preinit/10_indicate_preinit b/package/base-files/files/lib/preinit/10_indicate_preinit
new file mode 100644
index 0000000..da70b97
--- /dev/null
+++ b/package/base-files/files/lib/preinit/10_indicate_preinit
@@ -0,0 +1,50 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+preinit_ip() {
+ # if the preinit interface isn't specified and ifname is set in
+ # preinit.arch use that interface
+ if [ -z "$pi_ifname" ]; then
+ pi_ifname=$ifname
+ fi
+
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ ifconfig $pi_ifname $pi_ip netmask $pi_netmask broadcast $pi_broadcast up
+ }
+}
+
+preinit_ip_deconfig() {
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ ifconfig $pi_ifname 0.0.0.0 down
+ }
+}
+
+preinit_net_echo() {
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ {
+ [ "$pi_preinit_net_messages" = "y" ] || {
+ [ "$pi_failsafe_net_message" = "true" ] &&
+ [ "$pi_preinit_no_failsafe_netmsg" != "y" ]
+ }
+ } && netmsg $pi_broadcast "$1"
+ }
+}
+
+preinit_echo() {
+ preinit_net_echo $1
+ echo $1
+}
+
+pi_indicate_led() {
+ set_state preinit
+}
+
+pi_indicate_preinit() {
+ preinit_net_echo "Doing OpenWRT Preinit\n"
+ pi_indicate_led
+}
+
+boot_hook_add preinit_main preinit_ip
+boot_hook_add preinit_main pi_indicate_preinit
+
diff --git a/package/base-files/files/lib/preinit/20_check_jffs2_ready b/package/base-files/files/lib/preinit/20_check_jffs2_ready
new file mode 100644
index 0000000..3c5cf67
--- /dev/null
+++ b/package/base-files/files/lib/preinit/20_check_jffs2_ready
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+mount_no_jffs2() {
+ echo "jffs2 not ready yet; using ramdisk"
+ ramoverlay
+}
+
+check_for_jffs2() {
+ check_skip || {
+ jffs2_ready || {
+ mount_no_jffs2 && pi_mount_skip_next=true
+ }
+ }
+}
+
+boot_hook_add preinit_mount_root check_for_jffs2
+
diff --git a/package/base-files/files/lib/preinit/30_failsafe_wait b/package/base-files/files/lib/preinit/30_failsafe_wait
new file mode 100644
index 0000000..808d973
--- /dev/null
+++ b/package/base-files/files/lib/preinit/30_failsafe_wait
@@ -0,0 +1,84 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+fs_wait_for_key () {
+ local timeout=$3
+ local timer
+ local do_failsafe
+ local keypress_true="$(mktemp)"
+ local keypress_wait="$(mktemp)"
+ local keypress_sec="$(mktemp)"
+ if [ -z "$keypress_wait" ]; then
+ keypress_wait=/tmp/.keypress_wait
+ touch $keypress_wait
+ fi
+ if [ -z "$keypress_true" ]; then
+ keypress_true=/tmp/.keypress_true
+ touch $keypress_true
+ fi
+ if [ -z "$keypress_sec" ]; then
+ keypress_sec=/tmp/.keypress_sec
+ touch $keypress_sec
+ fi
+
+ trap "echo 'true' >$keypress_true; lock -u $keypress_wait ; rm -f $keypress_wait" INT
+ trap "echo 'true' >$keypress_true; lock -u $keypress_wait ; rm -f $keypress_wait" USR1
+
+ [ -n "$timeout" ] || timeout=1
+ [ $timeout -ge 1 ] || timeout=1
+ timer=$timeout
+ lock $keypress_wait
+ {
+ while [ $timer -gt 0 ]; do
+ echo "$timer" >$keypress_sec
+ timer=$(($timer - 1))
+ sleep 1
+ done
+ lock -u $keypress_wait
+ rm -f $keypress_wait
+ } &
+
+ echo "Press the [$1] key and hit [enter] $2"
+ # if we're on the console we wait for input
+ {
+ while [ -r $keypress_wait ]; do
+ timer="$(cat $keypress_sec)"
+
+ [ -n "$timer" ] || timer=1
+ timer="${timer%%\ *}"
+ [ $timer -ge 1 ] || timer=1
+ do_failsafe=""
+ {
+ read -t "$timer" do_failsafe
+ if [ "$do_failsafe" = "$1" ]; then
+ echo "true" >$keypress_true
+ lock -u $keypress_wait
+ rm -f $keypress_wait
+ fi
+ }
+ done
+ }
+ lock -w $keypress_wait
+
+ keypressed=1
+ [ "$(cat $keypress_true)" = "true" ] && keypressed=0
+ [ -f "/tmp/failsafe_button" ] && keypressed=1
+
+ rm -f $keypress_true
+ rm -f $keypress_wait
+ rm -f $keypress_sec
+
+ return $keypressed
+}
+
+failsafe_wait() {
+ FAILSAFE=
+ pi_failsafe_net_message=true
+ preinit_net_echo "Please press button now to enter failsafe"
+ pi_failsafe_net_message=false
+ fs_wait_for_key f 'to enter failsafe mode' $fs_failsafe_wait_timeout && FAILSAFE=true && export FAILSAFE
+}
+
+boot_hook_add preinit_main failsafe_wait
+
diff --git a/package/base-files/files/lib/preinit/40_mount_jffs2 b/package/base-files/files/lib/preinit/40_mount_jffs2
new file mode 100644
index 0000000..ded785e
--- /dev/null
+++ b/package/base-files/files/lib/preinit/40_mount_jffs2
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+find_mount_jffs2() {
+ mkdir -p /tmp/overlay
+ mount -o noatime -t jffs2 "$(find_mtd_part rootfs_data)" /tmp/overlay
+ mtd -qq unlock rootfs_data
+}
+
+jffs2_not_mounted() {
+ if [ "$pi_jffs2_mount_success" != "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+do_mount_jffs2() {
+ check_skip || {
+ find_mount_jffs2 && pi_jffs2_mount_success=true
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_jffs2
+
diff --git a/package/base-files/files/lib/preinit/40_run_failsafe_hook b/package/base-files/files/lib/preinit/40_run_failsafe_hook
new file mode 100644
index 0000000..faa043c
--- /dev/null
+++ b/package/base-files/files/lib/preinit/40_run_failsafe_hook
@@ -0,0 +1,13 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+run_failsafe_hook() {
+ if [ "$FAILSAFE" = "true" ]; then
+ boot_run_hook failsafe
+ lock -w /tmp/.failsafe
+ fi
+}
+
+boot_hook_add preinit_main run_failsafe_hook
+
diff --git a/package/base-files/files/lib/preinit/41_merge_overlay_hooks b/package/base-files/files/lib/preinit/41_merge_overlay_hooks
new file mode 100644
index 0000000..4ca6877
--- /dev/null
+++ b/package/base-files/files/lib/preinit/41_merge_overlay_hooks
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Copyright (C) 2010 OpenWrt.org
+
+merge_overlay_hooks() {
+ jffs2_not_mounted || [ ! -d /tmp/overlay/lib/preinit ] || {
+ echo "- merge overlay components -"
+
+ mkdir -p /tmp/preinit-hook-merge
+ ln -sf /lib/preinit/* /tmp/overlay/lib/preinit/[0-9][0-9]_* /tmp/preinit-hook-merge/
+
+ boot_hook_splice_start
+
+ local pipart
+ for pipart in /tmp/preinit-hook-merge/*; do
+ . $pipart
+ done
+
+ boot_hook_splice_finish
+
+ rm -rf /tmp/preinit-hook-merge
+ }
+}
+
+boot_hook_add preinit_mount_root merge_overlay_hooks
diff --git a/package/base-files/files/lib/preinit/50_indicate_regular_preinit b/package/base-files/files/lib/preinit/50_indicate_regular_preinit
new file mode 100644
index 0000000..c200dad
--- /dev/null
+++ b/package/base-files/files/lib/preinit/50_indicate_regular_preinit
@@ -0,0 +1,11 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+indicate_regular_preinit() {
+ preinit_net_echo "Continuing with Regular Preinit\n"
+ pi_indicate_led
+}
+
+boot_hook_add preinit_main indicate_regular_preinit
+
diff --git a/package/base-files/files/lib/preinit/70_initramfs_test b/package/base-files/files/lib/preinit/70_initramfs_test
new file mode 100644
index 0000000..15c0dcd
--- /dev/null
+++ b/package/base-files/files/lib/preinit/70_initramfs_test
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+initramfs_test() {
+ if [ -n "$INITRAMFS" ]; then
+ boot_run_hook initramfs
+ preinit_ip_deconfig
+ break
+ fi
+}
+
+boot_hook_add preinit_main initramfs_test
+
diff --git a/package/base-files/files/lib/preinit/70_pivot_jffs2_root b/package/base-files/files/lib/preinit/70_pivot_jffs2_root
new file mode 100644
index 0000000..b76f111
--- /dev/null
+++ b/package/base-files/files/lib/preinit/70_pivot_jffs2_root
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+rootfs_pivot() {
+ check_skip || jffs2_not_mounted || {
+ echo "switching to jffs2"
+ mount -o noatime,move /tmp/overlay /overlay 2>&-
+ fopivot /overlay /rom && pi_mount_skip_next=true
+ }
+}
+
+boot_hook_add preinit_mount_root rootfs_pivot
+
diff --git a/package/base-files/files/lib/preinit/80_mount_root b/package/base-files/files/lib/preinit/80_mount_root
new file mode 100644
index 0000000..9a99ee9
--- /dev/null
+++ b/package/base-files/files/lib/preinit/80_mount_root
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_root() {
+ boot_run_hook preinit_mount_root
+}
+
+[ "$INITRAMFS" = "1" ] || boot_hook_add preinit_main do_mount_root
diff --git a/package/base-files/files/lib/preinit/90_mount_no_jffs2 b/package/base-files/files/lib/preinit/90_mount_no_jffs2
new file mode 100644
index 0000000..d8ad4ae
--- /dev/null
+++ b/package/base-files/files/lib/preinit/90_mount_no_jffs2
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_no_jffs2() {
+ check_skip || {
+ mount_no_jffs2 && pi_mount_skip_next=true
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_no_jffs2
+
diff --git a/package/base-files/files/lib/preinit/90_restore_config b/package/base-files/files/lib/preinit/90_restore_config
new file mode 100644
index 0000000..210bf61
--- /dev/null
+++ b/package/base-files/files/lib/preinit/90_restore_config
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+restore_config() {
+ [ -f /sysupgrade.tgz ] && {
+ echo "- config restore -"
+ cd /
+ mv sysupgrade.tgz /tmp
+ tar xzf /tmp/sysupgrade.tgz
+ rm -f /tmp/sysupgrade.tgz
+ sync
+ }
+}
+
+boot_hook_add preinit_main restore_config
+
diff --git a/package/base-files/files/lib/preinit/99_10_failsafe_login b/package/base-files/files/lib/preinit/99_10_failsafe_login
new file mode 100644
index 0000000..05d6b77
--- /dev/null
+++ b/package/base-files/files/lib/preinit/99_10_failsafe_login
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+failsafe_netlogin () {
+ telnetd -l /bin/login.sh <> /dev/null 2>&1
+}
+
+failsafe_shell() {
+ lock /tmp/.failsafe
+ ash --login
+ echo "Please reboot system when done with failsafe network logins"
+}
+
+
+boot_hook_add failsafe failsafe_netlogin
+boot_hook_add failsafe failsafe_shell
+
diff --git a/package/base-files/files/lib/preinit/99_10_mount_no_mtd b/package/base-files/files/lib/preinit/99_10_mount_no_mtd
new file mode 100644
index 0000000..c4f38e4
--- /dev/null
+++ b/package/base-files/files/lib/preinit/99_10_mount_no_mtd
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_no_mtd() {
+ check_skip || {
+ mount_no_mtd
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_no_mtd
+
diff --git a/package/base-files/files/lib/preinit/99_10_run_init b/package/base-files/files/lib/preinit/99_10_run_init
new file mode 100644
index 0000000..a8f330f
--- /dev/null
+++ b/package/base-files/files/lib/preinit/99_10_run_init
@@ -0,0 +1,10 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+run_init() {
+ preinit_ip_deconfig
+}
+
+boot_hook_add preinit_main run_init
+