ar7-2.4 cleanup - Switch to generic init scripts (/sbin/mount_root, /bin/firstboot, /etc/preinit), failsafe part moved to /etc/preinit.arch. This should fix #1449 with an added benefit of using mini_fo. - Switch to generic /etc/config/network. - ar7 flashmap: change "OpenWrt" to "rootfs_data", move ar7_mtd_cleanup out of .exit.
SVN-Revision: 6604
This commit is contained in:
parent
b756ea8a95
commit
259c114526
6 changed files with 8 additions and 145 deletions
|
@ -1,89 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
|
||||
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
|
||||
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
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
# Network configuration file
|
||||
|
||||
config interface loopback
|
||||
option ifname lo
|
||||
option proto static
|
||||
option ipaddr 127.0.0.1
|
||||
option netmask 255.0.0.0
|
||||
|
||||
config interface lan
|
||||
option ifname eth0
|
||||
option proto static
|
||||
option ipaddr 192.168.1.1
|
||||
option netmask 255.255.255.0
|
||||
|
|
@ -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
|
5
target/linux/ar7-2.4/base-files/default/etc/preinit.arch
Executable file
5
target/linux/ar7-2.4/base-files/default/etc/preinit.arch
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
[ -z "$FAILSAFE" ] || {
|
||||
echo /bin/true > /proc/sys/kernel/hotplug
|
||||
telnetd -l /bin/login <> /dev/null 2>&1
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
#!/bin/sh
|
||||
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
|
||||
else
|
||||
mount -o remount,rw /dev/root /
|
||||
fi
|
||||
else
|
||||
. /bin/firstboot
|
||||
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
|
||||
mkdir -p /dev/pts
|
||||
mount none /dev/pts -t devpts
|
||||
mount -t sysfs none /sys 2>&-
|
|
@ -26,7 +26,7 @@ diff -urN linux.old/drivers/mtd/maps/ar7-flash.c linux.dev/drivers/mtd/maps/ar7-
|
|||
+extern char *prom_getenv(char *name);
|
||||
+
|
||||
+static int create_mtd_partitions(void);
|
||||
+static void __exit ar7_mtd_cleanup(void);
|
||||
+static void ar7_mtd_cleanup(void);
|
||||
+
|
||||
+#define MAX_NUM_PARTITIONS 5
|
||||
+static struct mtd_partition ar7_partinfo[MAX_NUM_PARTITIONS];
|
||||
|
@ -234,7 +234,7 @@ diff -urN linux.old/drivers/mtd/maps/ar7-flash.c linux.dev/drivers/mtd/maps/ar7-
|
|||
+
|
||||
+ ar7_partinfo[p - 2].size = newoffset - rootfs_start;
|
||||
+
|
||||
+ ar7_partinfo[p].name = strdup("OpenWrt");
|
||||
+ ar7_partinfo[p].name = strdup("rootfs_data");
|
||||
+ ar7_partinfo[p].offset = newoffset;
|
||||
+ ar7_partinfo[p].size = config_offset - newoffset;
|
||||
+ ar7_partinfo[p++].mask_flags = 0;
|
||||
|
@ -249,7 +249,7 @@ diff -urN linux.old/drivers/mtd/maps/ar7-flash.c linux.dev/drivers/mtd/maps/ar7-
|
|||
+ return p;
|
||||
+}
|
||||
+
|
||||
+static void __exit ar7_mtd_cleanup(void)
|
||||
+static void ar7_mtd_cleanup(void)
|
||||
+{
|
||||
+ if (ar7_mtd_info) {
|
||||
+ del_mtd_partitions(ar7_mtd_info);
|
||||
|
|
Loading…
Reference in a new issue