From 407b204ecd427a257a57bd53b245732ee71bab37 Mon Sep 17 00:00:00 2001
From: ejka <ejka@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sun, 18 Mar 2007 14:18:56 +0000
Subject: [PATCH] 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
---
 .../ar7-2.4/base-files/default/bin/firstboot  | 89 -------------------
 .../base-files/default/etc/config/network     | 14 ---
 .../ar7-2.4/base-files/default/etc/preinit    | 11 ---
 .../base-files/default/etc/preinit.arch       |  5 ++
 .../base-files/default/sbin/mount_root        | 28 ------
 .../linux/ar7-2.4/patches/001-flash_map.patch |  6 +-
 6 files changed, 8 insertions(+), 145 deletions(-)
 delete mode 100755 target/linux/ar7-2.4/base-files/default/bin/firstboot
 delete mode 100644 target/linux/ar7-2.4/base-files/default/etc/config/network
 delete mode 100755 target/linux/ar7-2.4/base-files/default/etc/preinit
 create mode 100755 target/linux/ar7-2.4/base-files/default/etc/preinit.arch
 delete mode 100755 target/linux/ar7-2.4/base-files/default/sbin/mount_root

diff --git a/target/linux/ar7-2.4/base-files/default/bin/firstboot b/target/linux/ar7-2.4/base-files/default/bin/firstboot
deleted file mode 100755
index 774bbc754..000000000
--- a/target/linux/ar7-2.4/base-files/default/bin/firstboot
+++ /dev/null
@@ -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
-}
diff --git a/target/linux/ar7-2.4/base-files/default/etc/config/network b/target/linux/ar7-2.4/base-files/default/etc/config/network
deleted file mode 100644
index 911134bb0..000000000
--- a/target/linux/ar7-2.4/base-files/default/etc/config/network
+++ /dev/null
@@ -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
-
diff --git a/target/linux/ar7-2.4/base-files/default/etc/preinit b/target/linux/ar7-2.4/base-files/default/etc/preinit
deleted file mode 100755
index 5b676ca3a..000000000
--- a/target/linux/ar7-2.4/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/target/linux/ar7-2.4/base-files/default/etc/preinit.arch b/target/linux/ar7-2.4/base-files/default/etc/preinit.arch
new file mode 100755
index 000000000..965a1af61
--- /dev/null
+++ b/target/linux/ar7-2.4/base-files/default/etc/preinit.arch
@@ -0,0 +1,5 @@
+#!/bin/sh
+[ -z "$FAILSAFE" ] || {
+	echo /bin/true > /proc/sys/kernel/hotplug
+	telnetd -l /bin/login <> /dev/null 2>&1
+}
diff --git a/target/linux/ar7-2.4/base-files/default/sbin/mount_root b/target/linux/ar7-2.4/base-files/default/sbin/mount_root
deleted file mode 100755
index 6b90bdc9c..000000000
--- a/target/linux/ar7-2.4/base-files/default/sbin/mount_root
+++ /dev/null
@@ -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>&-
diff --git a/target/linux/ar7-2.4/patches/001-flash_map.patch b/target/linux/ar7-2.4/patches/001-flash_map.patch
index f04929c7b..bd07805c6 100644
--- a/target/linux/ar7-2.4/patches/001-flash_map.patch
+++ b/target/linux/ar7-2.4/patches/001-flash_map.patch
@@ -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);
-- 
2.20.1