diff options
Diffstat (limited to 'package/base-files/default')
-rwxr-xr-x | package/base-files/default/bin/firstboot | 90 | ||||
-rwxr-xr-x | package/base-files/default/etc/init.d/S10boot | 1 | ||||
-rwxr-xr-x | package/base-files/default/etc/preinit | 11 | ||||
-rwxr-xr-x | package/base-files/default/sbin/mount_root | 36 |
4 files changed, 4 insertions, 134 deletions
diff --git a/package/base-files/default/bin/firstboot b/package/base-files/default/bin/firstboot deleted file mode 100755 index 28189780bd..0000000000 --- a/package/base-files/default/bin/firstboot +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh -# $Id$ - -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 ./sys" - # 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*|\ - ./etc/resolv.conf|\ - ./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/sys /sys - return 0 - } -} - -mountdp() { # <device> <mount_point> <ignored> <fs> - dev=$1; mnt=$2; shift 2; opt=$* - mount $dev $mnt $opt - dupe $mnt $rom - pivot $mnt /rom -} - -ramoverlay() { - mkdir -p /tmp/root - mountdp /tmp/root /mnt -o bind -} - -[ "${0##*/}" = "firstboot" ] && { - [ -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 OpenWrt - mount -o remount,ro none / # try to avoid fs changing while copying - mount -o bind / /mnt - mount /dev/mtdblock/4 /rom/jffs -t jffs2 - echo -n "copying files ... " - cp -a /mnt/* /rom/jffs - umount /mnt - echo "done" - pivot /rom /mnt - mount -o move /mnt /tmp/root - pivot /jffs /rom - jffs2root --clean - exit 0 - } - - # script run manually - [ \! -z "$jffs" ] && { - echo "firstboot has already been run" - echo "jffs2 partition is mounted, only resetting files" - dupe $jffs $rom - exit 0 - } - - mtd erase OpenWrt - mountdp /dev/mtdblock/4 /jffs -t jffs2 -} diff --git a/package/base-files/default/etc/init.d/S10boot b/package/base-files/default/etc/init.d/S10boot index 42bb438861..e0d15db0e0 100755 --- a/package/base-files/default/etc/init.d/S10boot +++ b/package/base-files/default/etc/init.d/S10boot @@ -1,6 +1,7 @@ #!/bin/sh . /etc/functions.sh +[ -f /proc/mounts ] || /sbin/mount_root [ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc vconfig set_name_type VLAN_PLUS_VID_NO_PAD diff --git a/package/base-files/default/etc/preinit b/package/base-files/default/etc/preinit deleted file mode 100755 index 5b676ca3ac..0000000000 --- a/package/base-files/default/etc/preinit +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -export PATH=/bin:/sbin:/usr/bin:/usr/sbin -mount none /proc -t proc - -[ -f /etc/preinit.arch ] && . /etc/preinit.arch -[ -z "$FAILSAFE" ] || { - echo /bin/true > /proc/sys/kernel/hotplug - telnetd -l /bin/login <> /dev/null 2>&1 -} -mount_root ${FAILSAFE:+failsafe} -exec /sbin/init diff --git a/package/base-files/default/sbin/mount_root b/package/base-files/default/sbin/mount_root index 88a836c808..6c8805c080 100755 --- a/package/base-files/default/sbin/mount_root +++ b/package/base-files/default/sbin/mount_root @@ -1,38 +1,8 @@ #!/bin/sh -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 - mtd erase OpenWrt - jffs2root --move - else - mount -o remount,rw /dev/root / - fi - else - . /bin/firstboot - is_dirty - [ $? != 0 ] && { - echo "switching to jffs2" - mount /dev/mtdblock/4 /jffs -t jffs2 - pivot /jffs /rom - } || { - echo "jffs2 unusable; using ramdisk" - ramoverlay - } - fi -fi - -mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777 +mount none /proc -t proc +mount none /tmp -t tmpfs -o size=$size,nosuid,nodev,mode=1777 mkdir -p /dev/pts mount none /dev/pts -t devpts mount -t sysfs none /sys 2>&- +mount -o remount,rw /dev/root / |