aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/default/sbin
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-04-05 02:09:22 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-04-05 02:09:22 +0000
commite1b417ee76bd97a05854f4304cef3f73e9da633b (patch)
treef5913675e5868c535c007efb3e09a01ce6890287 /package/base-files/default/sbin
parent42269e22a8b817e1e6bc2c9cbb2f03df31221458 (diff)
downloadupstream-e1b417ee76bd97a05854f4304cef3f73e9da633b.tar.gz
upstream-e1b417ee76bd97a05854f4304cef3f73e9da633b.tar.bz2
upstream-e1b417ee76bd97a05854f4304cef3f73e9da633b.zip
large init script cleanup and merge of whiterussian changes, new dnsmasq config handling
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@3588 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/default/sbin')
-rwxr-xr-xpackage/base-files/default/sbin/halt3
-rwxr-xr-xpackage/base-files/default/sbin/hotplug10
-rwxr-xr-xpackage/base-files/default/sbin/ifdown16
-rwxr-xr-xpackage/base-files/default/sbin/ifup22
-rwxr-xr-xpackage/base-files/default/sbin/mount_root40
5 files changed, 37 insertions, 54 deletions
diff --git a/package/base-files/default/sbin/halt b/package/base-files/default/sbin/halt
deleted file mode 100755
index 39eed2612e..0000000000
--- a/package/base-files/default/sbin/halt
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-/usr/bin/killall5 -9
-#umount -ar
diff --git a/package/base-files/default/sbin/hotplug b/package/base-files/default/sbin/hotplug
index 3500f75201..106299343a 100755
--- a/package/base-files/default/sbin/hotplug
+++ b/package/base-files/default/sbin/hotplug
@@ -1,4 +1,7 @@
#!/bin/sh
+
+# bypass the normal hotplug path for firmware loading
+# would otherwise cause problems with drivers like bcm43xx
[ "$1" = "firmware" -a "$ACTION" = "add" ] && {
[ -f "/lib/firmware/$FIRMWARE" ] && {
echo 1 > "/sys$DEVPATH/loading"
@@ -8,13 +11,8 @@
exit 0
}
-[ -e /tmp/.failsafe ] && {
- export FAILSAFE=true
-} || {
- [ -e /etc/config/network ] && . /etc/config/network
-}
. /etc/functions.sh
-. /etc/network.overrides
+. /etc/config/network
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LOGNAME=root
diff --git a/package/base-files/default/sbin/ifdown b/package/base-files/default/sbin/ifdown
index d0120dcbe8..0d85ca8eab 100755
--- a/package/base-files/default/sbin/ifdown
+++ b/package/base-files/default/sbin/ifdown
@@ -1,26 +1,18 @@
#!/bin/sh
[ $# = 0 ] && { echo " $0 <group>"; exit; }
. /etc/functions.sh
-. /etc/network.overrides
-[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
+. /etc/config/network
debug "### ifdown $type ###"
type=$1
-if_proto=$(nvram get ${type}_proto)
-if=$(nvram get ${type}_ifname)
+eval "if_proto=\"\${${type}_proto}\""
+eval "if=\"\${${type}_ifname}\""
+[ "${if%%[0-9]}" = "ppp" ] && eval "if=\"\${${type}_device}\""
case "$if_proto" in
pppoa) hotplug_dev unregister atm0; exit 0 ;;
""|none) exit 0;;
esac
-[ "${if%%[0-9]*}" = "ppp" ] && if="$(nvram get ${type}_device)"
-
-if [ "${if%%[0-9]}" = "br" ]; then
- for sif in $(nvram get ${type}_ifnames); do
- hotplug_dev unregister "$sif"
- done
-fi
-
hotplug_dev unregister "$if"
diff --git a/package/base-files/default/sbin/ifup b/package/base-files/default/sbin/ifup
index 8ae6416685..a86a7671e8 100755
--- a/package/base-files/default/sbin/ifup
+++ b/package/base-files/default/sbin/ifup
@@ -1,32 +1,34 @@
#!/bin/sh
[ $# = 0 ] && { echo " $0 <group>"; exit; }
. /etc/functions.sh
-. /etc/network.overrides
-[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
+. /etc/config/network
ifdown $1
debug "### ifup $type ###"
type=$1
-if_proto=$(nvram get ${type}_proto)
-if=$(nvram get ${type}_ifname)
+eval "if_proto=\"\${${type}_proto}\""
+eval "if=\"\${${type}_ifname}\""
+[ "${if%%[0-9]}" = "ppp" ] && eval "if=\"\${${type}_device}\""
case "$if_proto" in
pppoa) hotplug_dev register atm0; exit 0 ;;
pppoe)
- ifconfig nas0 2>&- >&- || {
- hotplug_dev register atm0
- exit 0
+ # PPPoE over ATM
+ [ "$if" = "nas0" ] && {
+ ifconfig nas0 2>&- >&- || {
+ hotplug_dev register atm0
+ exit 0
+ }
}
;;
none|"") exit 0;;
esac
-[ "${if%%[0-9]*}" = "ppp" ] && if="$(nvram get ${type}_device)"
-
if [ "${if%%[0-9]}" = "br" ]; then
- for sif in $(nvram get ${type}_ifnames); do
+ eval "ifnames=\"\${${type}_ifnames}\""
+ for sif in $ifnames; do
hotplug_dev register "$sif"
done
else
diff --git a/package/base-files/default/sbin/mount_root b/package/base-files/default/sbin/mount_root
index 427ff0444f..38252e83fe 100755
--- a/package/base-files/default/sbin/mount_root
+++ b/package/base-files/default/sbin/mount_root
@@ -1,40 +1,34 @@
#!/bin/sh
-. /etc/nvram.sh
-is_clean() {
- grep Broadcom /proc/cpuinfo 2>&- >&- || return 0
- OFFSET="$((0x$(dd if=/dev/mtdblock/1 bs=1 skip=$((0x14)) count=2 2>&- | hexdump | grep 0000000 | cut -d ' ' -f 2) - 1))"
- dd if=/dev/mtdblock/1 bs=1 skip=$OFFSET count=1 2>&- | hexdump -v | grep ' 0000' > /dev/null && return 255 || return 0
+is_dirty() {
+ grep Broadcom /proc/cpuinfo >&- || return 1
+ OFFSET="$(($(hexdump -v /dev/mtdblock/1 -s 20 -n 2 -e '"%d"')-1))"
+ return $(hexdump -v /dev/mtdblock/1 -s $OFFSET -n 1 -e '"%d"')
}
+size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
+mount none /tmp -t tmpfs -o size=$size
+
if [ "$1" != "failsafe" ]; then
+ mtd unlock linux
mount | grep jffs2 >&-
if [ $? = 0 ] ; then
if [ $(cat /proc/mtd | wc -l) = 6 ]; then
- echo 5 > /proc/sys/diag
- mtd unlock linux
mtd erase OpenWrt
jffs2root --move
else
- mtd unlock rootfs
mount -o remount,rw /dev/root /
fi
else
- if [ -z "$(nvram get no_root_swap)" ]; then
- is_clean || {
- mtd erase OpenWrt
- mtd unlock linux
- jffs2root --clean
- }
- mtd unlock OpenWrt
- mount -t jffs2 /dev/mtdblock/4 /jffs
- pivot_root /jffs /jffs/rom
- mount none /proc -t proc
- mount none /dev -t devfs
- umount /rom/proc /rom/dev >&-
- fi
+ . /bin/firstboot
+ is_dirty
+ [ $? != 0 ] && {
+ mount /dev/mtdblock/4 /jffs
+ pivot /jffs /rom
+ } || ramoverlay
fi
fi
-mount none /tmp -t tmpfs -o nosuid,nodev,mode=1777,size=50%
+
+mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
mkdir -p /dev/pts
mount none /dev/pts -t devpts
-grep sysfs /proc/filesystems >&- && mount -t sysfs none /sys
+mount -t sysfs none /sys 2>&-