summaryrefslogtreecommitdiff
path: root/openwrt/package/base-files/default/etc/preinit
blob: f82823ec9c5b8b45e9c76696f13adb05f1ea5f57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh
. /etc/nvram.sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount none /proc -t proc
insmod diag
[ -f /proc/sys/diag ] && echo 0x01 > /proc/sys/diag
sleep 1
if [ -f /proc/sys/reset ] && [ $(cat /proc/sys/reset) = 1 -o "$(nvram get failsafe)" = 1 ]; then
	export FAILSAFE=true
	[ -x /usr/sbin/nvram -a "$(nvram get boot_wait)" != "on" ] && {
		nvram set boot_wait=on
		nvram commit
	}
	while :; do { echo $(((X=(X+1)%8)%2)) > /proc/sys/diag; sleep $((X==0)); } done &
fi

mount_root ${FAILSAFE:+failsafe}

# automagically run firstboot
[ -z "$FAILSAFE" -a -z "$(nvram get no_root_swap)" ] && {
	{ mount|grep "on / type jffs2" 1>&-; } || firstboot
}

grep sysfs /proc/filesystems >&- 2>&- && {
	mkdir -p /sys
	mount -t sysfs none /sys
}

exec /sbin/init