- 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
+++ /dev/null
-#!/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
-}
+++ /dev/null
-# 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
-
+++ /dev/null
-#!/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
--- /dev/null
+#!/bin/sh
+[ -z "$FAILSAFE" ] || {
+ echo /bin/true > /proc/sys/kernel/hotplug
+ telnetd -l /bin/login <> /dev/null 2>&1
+}
+++ /dev/null
-#!/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>&-
+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];
+
+ 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;
+ 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);