mirror of https://github.com/hak5/openwrt-owl.git
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: 6604owl
parent
b756ea8a95
commit
259c114526
|
@ -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
|
|
|
@ -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);
|
+extern char *prom_getenv(char *name);
|
||||||
+
|
+
|
||||||
+static int create_mtd_partitions(void);
|
+static int create_mtd_partitions(void);
|
||||||
+static void __exit ar7_mtd_cleanup(void);
|
+static void ar7_mtd_cleanup(void);
|
||||||
+
|
+
|
||||||
+#define MAX_NUM_PARTITIONS 5
|
+#define MAX_NUM_PARTITIONS 5
|
||||||
+static struct mtd_partition ar7_partinfo[MAX_NUM_PARTITIONS];
|
+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 - 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].offset = newoffset;
|
||||||
+ ar7_partinfo[p].size = config_offset - newoffset;
|
+ ar7_partinfo[p].size = config_offset - newoffset;
|
||||||
+ ar7_partinfo[p++].mask_flags = 0;
|
+ 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;
|
+ return p;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static void __exit ar7_mtd_cleanup(void)
|
+static void ar7_mtd_cleanup(void)
|
||||||
+{
|
+{
|
||||||
+ if (ar7_mtd_info) {
|
+ if (ar7_mtd_info) {
|
||||||
+ del_mtd_partitions(ar7_mtd_info);
|
+ del_mtd_partitions(ar7_mtd_info);
|
||||||
|
|
Loading…
Reference in New Issue