1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-25 03:32:25 +02:00

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.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6604 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
ejka 2007-03-18 14:18:56 +00:00
parent 312e4176e0
commit 407b204ecd
6 changed files with 8 additions and 145 deletions

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
#!/bin/sh
[ -z "$FAILSAFE" ] || {
echo /bin/true > /proc/sys/kernel/hotplug
telnetd -l /bin/login <> /dev/null 2>&1
}

View File

@ -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>&-

View File

@ -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);