aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm-2.4/base-files
diff options
context:
space:
mode:
authorMike Baker <mbm@openwrt.org>2007-05-10 14:37:47 +0000
committerMike Baker <mbm@openwrt.org>2007-05-10 14:37:47 +0000
commit09cdbc40d05014808b9fd32db0f87075e1f7d628 (patch)
tree0d8ea6a346ce1aed9ac866ebb526f81832423ec0 /target/linux/brcm-2.4/base-files
parentcb3daaf7727d9164860859ffc5774f6f4aaa8c7c (diff)
downloadmaster-187ad058-09cdbc40d05014808b9fd32db0f87075e1f7d628.tar.gz
master-187ad058-09cdbc40d05014808b9fd32db0f87075e1f7d628.tar.bz2
master-187ad058-09cdbc40d05014808b9fd32db0f87075e1f7d628.zip
unified preinit environment
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7173 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm-2.4/base-files')
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/default/bin/firstboot128
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/default/etc/init.d/done15
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/default/etc/preinit.arch (renamed from target/linux/brcm-2.4/base-files/default/etc/preinit)23
-rwxr-xr-xtarget/linux/brcm-2.4/base-files/default/sbin/mount_root29
4 files changed, 7 insertions, 188 deletions
diff --git a/target/linux/brcm-2.4/base-files/default/bin/firstboot b/target/linux/brcm-2.4/base-files/default/bin/firstboot
deleted file mode 100755
index 5d374371c0..0000000000
--- a/target/linux/brcm-2.4/base-files/default/bin/firstboot
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/bin/sh
-# $Id$
-. /etc/functions.sh
-
-partname="rootfs_data"
-mtdpart="$(find_mtd_part $partname)"
-
-rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
-jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
-
-dupe() { # <new_root> <old_root>
- cd $1
- echo -n "creating directories... "
- {
- cd $2
- find . -xdev -type d
- echo "./dev ./jffs ./mnt ./proc ./tmp"
- # xdev skips mounted directories
- cd $1
- } | xargs mkdir -p
- echo "done"
-
- echo -n "setting up symlinks... "
- for file in $(cd $2; find . -xdev -type f;); do
- case "$file" in
- ./rom/note) ;; #nothing
- ./etc/config*|\
- ./usr/lib/ipkg/info/*) cp -af $2/$file $file;;
- *) ln -sf /rom/${file#./*} $file;;
- esac
- done
- for file in $(cd $2; find . -xdev -type l;); do
- cp -af $2/${file#./*} $file
- done
- echo "done"
-}
-
-pivot() { # <new_root> <old_root>
- mount -o move /proc $1/proc && \
- pivot_root $1 $1$2 && {
- mount -o move $2/dev /dev
- mount -o move $2/tmp /tmp
- mount -o move $2/jffs /jffs 2>&-
- return 0
- }
-}
-
-fopivot() { # <rw_root> <ro_root> <dupe?>
- root=$1
- {
- mount -t mini_fo -o base=/,sto=$1 $1 /mnt 2>&- && root=/mnt
- } || {
- [ "$3" = "1" ] && {
- mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
- dupe $1 $rom
- }
- }
- pivot $root $2
-}
-
-ramoverlay() {
- mkdir -p /tmp/root
- fopivot /tmp/root /rom 1
-}
-
-# invoked as an executable
-[ "${0##*/}" = "firstboot" ] && {
-
- [ -z "$mtdpart" ] && {
- echo "MTD partition not found."
- exit 1
- }
-
- [ -z "$rom" ] && {
- echo "You do not have a squashfs partition; aborting"
- echo "(firstboot cannot be run on jffs2 based firmwares)"
- exit 1
- }
-
- [ "$1" = "switch2jffs" ] && {
- mtd erase "$partname"
-
- # try to avoid fs changing while copying
- mount -o remount,ro none / 2>&-
-
- # copy ramoverlay to jffs2
- mount "$mtdpart" /rom/jffs -t jffs2
- echo -n "copying files ... "
- cp -a /tmp/root/* /rom/jffs 2>&-
- echo "done"
-
- # switch back to squashfs (temporarily)
- # and park the ramdisk ontop of /tmp/root
- pivot /rom /mnt
- mount -o move /mnt /tmp/root
-
- # /jffs is the overlay
- # /rom is the readonly
- fopivot /jffs /rom
-
- # try to get rid of /tmp/root
- # this will almost always fail
- umount /tmp/root 2>&-
-
- # fs is clean
- jffs2root --clean
- exit 0
- }
-
- # script run manually
- [ \! -z "$jffs" ] && {
- echo "firstboot has already been run"
- echo "jffs2 partition is mounted, only resetting files"
- grep mini_fo /proc/filesystems >&-
- [ $? != 0 ] && {
- dupe $jffs $rom
- exit 0
- } || {
- rm -rf $jffs/* 2>&-
- mount -o remount $jffs / 2>&-
- exit 0
- }
- }
-
- mtd erase "$partname"
- mount "$mtdpart" /jffs -t jffs2
- fopivot /jffs /rom 1
-}
diff --git a/target/linux/brcm-2.4/base-files/default/etc/init.d/done b/target/linux/brcm-2.4/base-files/default/etc/init.d/done
deleted file mode 100755
index 0640b61938..0000000000
--- a/target/linux/brcm-2.4/base-files/default/etc/init.d/done
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
-
-START=95
-boot() {
- [ -d /tmp/root ] && {
- lock /tmp/.switch2jffs
- firstboot switch2jffs
- lock -u /tmp/.switch2jffs
- }
-
- # set leds to normal state
- . /etc/diag.sh
- set_state done
-}
diff --git a/target/linux/brcm-2.4/base-files/default/etc/preinit b/target/linux/brcm-2.4/base-files/default/etc/preinit.arch
index 7a61c9412e..d3a0bfc491 100755
--- a/target/linux/brcm-2.4/base-files/default/etc/preinit
+++ b/target/linux/brcm-2.4/base-files/default/etc/preinit.arch
@@ -1,11 +1,12 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
-
. /etc/functions.sh
-. /etc/diag.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
echo "0 1 2 3 4 5u*" > /proc/switch/eth0/vlan/0/ports
@@ -23,10 +24,8 @@ failsafe() {
ash --login
}
-export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount none /proc -t proc
-size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
-mount none /tmp -t tmpfs -o size=$size
+
if grep devfs /proc/filesystems > /dev/null; then
mount none /dev -t devfs
M0=/dev/pty/m0
@@ -66,7 +65,7 @@ case "$(cat /proc/diag/model)" in
"ASUS (unknown, BCM4702)") ifname=eth1;;
esac
-ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
+failsafe_ip
insmod switch-core
insmod switch-robo || insmod switch-adm || rmmod switch-core
@@ -83,14 +82,6 @@ insmod switch-robo || insmod switch-adm || rmmod switch-core
} || netmsg 192.168.1.255 "Press reset now, to enter Failsafe!"
sleep 2
-
-eval ${FAILSAFE:+failsafe}
-
-lock -w /tmp/.failsafe
-set_state preinit
echo "$HOTPLUG" > /proc/sys/kernel/hotplug
ifconfig $ifname 0.0.0.0 down
-
-mount_root
-exec /sbin/init
diff --git a/target/linux/brcm-2.4/base-files/default/sbin/mount_root b/target/linux/brcm-2.4/base-files/default/sbin/mount_root
deleted file mode 100755
index a9dd2764dd..0000000000
--- a/target/linux/brcm-2.4/base-files/default/sbin/mount_root
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
-. /etc/functions.sh
-
-is_dirty() {
- mtdpart="$(find_mtd_part linux)"
- grep Broadcom /proc/cpuinfo >&- || return 1
- OFFSET="$(($(hexdump -v $mtdpart -s 20 -n 2 -e '"%d"')-1))"
- return $(hexdump -v $mtdpart -s $OFFSET -n 1 -e '"%d"')
-}
-
-if [ "$1" != "failsafe" ]; then
- mtd unlock linux
- mount | grep jffs2 >&-
- if [ $? = 0 ] ; then
- mount -o remount,rw /dev/root /
- else
- . /bin/firstboot
- is_dirty
- [ $? != 0 ] && {
- echo "switching to jffs2"
- mount $(find_mtd_part rootfs_data) /jffs -t jffs2
- fopivot /jffs /rom
- } || {
- echo "jffs2 not ready yet; using ramdisk"
- ramoverlay
- }
- fi
-fi