commit profile support for base-files... patches still need to be done
commit profile support for base-files... patches still need to be done

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6465 3c298f89-4303-0410-b956-a3cf2f4a3e73

--- a/include/target.mk
+++ b/include/target.mk
@@ -4,6 +4,21 @@
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
+
+define AddProfile
+  $(eval $(call Profile/Default))
+  $(eval $(call Profile/$(1)))
+  ifneq ($(ID),)
+    PROFILE:=$(ID)
+	$(ID)_NAME:=$(NAME)
+	$(ID)_PACKAGES:=$(PACKAGES)
+    ifneq ($(KCONFIG),)
+      PROFILE_LIST += \
+  		echo '$(ID):'; [ -z '$(NAME)' ] || echo '	$(NAME)'; echo '	Packages: $(PACKAGES)';
+    endif
+  endif
+endef
+
 
 include $(TMP_DIR)/.target.mk
 

--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -101,8 +101,13 @@
 
 define Package/base-files$(TARGET)/install
 	$(CP) ./files/* $(1)/
-	if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
-		$(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
+	if [ -d $(PLATFORM_DIR)/base-files/default/. ]; then \
+		$(CP) $(PLATFORM_DIR)/base-files/default/* $(1)/; \
+	fi
+	if [ "$(PROFILE)" != "Default" ]; then \
+		if [ -d $(PLATFORM_DIR)/base-files/profile-$(PROFILE)/. ]; then \
+			$(CP) $(PLATFORM_DIR)/base-files/profile-$(PROFILE)/* $(1)/; \
+		fi; \
 	fi
 	$(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
 	$(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf

--- a/target/linux/ar7-2.4/base-files/bin/firstboot
+++ /dev/null
@@ -1,90 +1,1 @@
-#!/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
+++ b/target/linux/ar7-2.4/base-files/default/bin/firstboot
@@ -1,1 +1,90 @@
+#!/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
+++ b/target/linux/ar7-2.4/base-files/default/etc/config/network
@@ -1,1 +1,15 @@
+# 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
+++ b/target/linux/ar7-2.4/base-files/default/etc/init.d/adam2
@@ -1,1 +1,14 @@
+#!/bin/sh /etc/rc.common
+# ADAM2 patcher for Netgear DG834 and compatible
+# Copyright (C) 2006 OpenWrt.org
 
+START=00
+start() {
+	MD5="$(md5sum /dev/mtdblock/0  | awk '{print $1}')"
+	[ "$MD5" = "0530bfdf00ec155f4182afd70da028c1" ] && {
+		mtd unlock adam2
+		/sbin/adam2patcher /dev/mtdblock/0
+	}
+	rm -f /etc/init.d/S00adam2 /sbin/adam2patcher >&- 2>&-
+}
+

--- /dev/null
+++ b/target/linux/ar7-2.4/base-files/default/etc/preinit
@@ -1,1 +1,12 @@
+#!/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
+++ b/target/linux/ar7-2.4/base-files/default/sbin/mount_root
@@ -1,1 +1,29 @@
+#!/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>&-
+

--- a/target/linux/ar7-2.4/base-files/etc/config/network
+++ /dev/null
@@ -1,15 +1,1 @@
-# 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
-
-

--- a/target/linux/ar7-2.4/base-files/etc/init.d/adam2
+++ /dev/null
@@ -1,14 +1,1 @@
-#!/bin/sh /etc/rc.common
-# ADAM2 patcher for Netgear DG834 and compatible
-# Copyright (C) 2006 OpenWrt.org
 
-START=00
-start() {
-	MD5="$(md5sum /dev/mtdblock/0  | awk '{print $1}')"
-	[ "$MD5" = "0530bfdf00ec155f4182afd70da028c1" ] && {
-		mtd unlock adam2
-		/sbin/adam2patcher /dev/mtdblock/0
-	}
-	rm -f /etc/init.d/S00adam2 /sbin/adam2patcher >&- 2>&-
-}
-

--- a/target/linux/ar7-2.4/base-files/etc/preinit
+++ /dev/null
@@ -1,12 +1,1 @@
-#!/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
-

--- a/target/linux/ar7-2.4/base-files/sbin/mount_root
+++ /dev/null
@@ -1,29 +1,1 @@
-#!/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>&-
-

--- /dev/null
+++ b/target/linux/aruba-2.6/base-files/default/etc/config/network
@@ -1,1 +1,12 @@
+# 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	dhcp
+

--- a/target/linux/aruba-2.6/base-files/etc/config/network
+++ /dev/null
@@ -1,12 +1,1 @@
-# 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	dhcp
-

--- a/target/linux/brcm-2.4/base-files/bin/firstboot
+++ /dev/null
@@ -1,129 +1,1 @@
-#!/bin/sh
-# $Id$
-. /etc/functions.sh
 
-partname="OpenWrt"
-mtdpart="$(find_mtd_part $partname)"
-
-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"
-		# 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*|\
-		./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/jffs /jffs 2>&-
-		return 0
-	}
-}
-
-fopivot() { # <rw_root> <ro_root> <dupe?>
-	root=$1
-	{
-		mount -t mini_fo -o base=/,sto=$1 $1 /mnt 2>&- && root=/mnt
-	} || {
-		[ "$3" = "1" ] && {
-		mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
-		dupe $1 $rom
-		}
-	}
-	pivot $root $2
-}
-
-ramoverlay() {
-	mkdir -p /tmp/root
-	fopivot /tmp/root /rom 1
-}
-
-# invoked as an executable
-[ "${0##*/}" = "firstboot" ] && {
-
-	[ -z "$mtdpart" ] && {
-		echo "MTD partition not found."
-		exit 1
-	}
-
-	[ -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 "$partname"
-
-		# try to avoid fs changing while copying
-		mount -o remount,ro none / 2>&-
-
-		# copy ramoverlay to jffs2
-		mount "$mtdpart" /rom/jffs -t jffs2
-		echo -n "copying files ... "
-		cp -a /tmp/root/* /rom/jffs 2>&-
-		echo "done"
-
-		# switch back to squashfs (temporarily)
-		# and park the ramdisk ontop of /tmp/root
-		pivot /rom /mnt
-		mount -o move /mnt /tmp/root
-
-		# /jffs is the overlay
-		# /rom is the readonly
-		fopivot /jffs /rom
-
-		# try to get rid of /tmp/root
-		# this will almost always fail
-		umount /tmp/root 2>&-
-
-		# fs is clean
-		jffs2root --clean
-		exit 0
-	}
-
-	# script run manually
-	[ \! -z "$jffs" ] && {
-		echo "firstboot has already been run"
-		echo "jffs2 partition is mounted, only resetting files"
-		grep mini_fo /proc/filesystems >&-
-		[ $? != 0 ] && {
-			dupe $jffs $rom
-			exit 0
-		} || { 
-			rm -rf $jffs/* 2>&-
-			mount -o remount $jffs / 2>&-
-			exit 0
-		}
-	}
-
-	mtd erase "$partname"
-	mount "$mtdpart" /jffs -t jffs2
-	fopivot /jffs /rom 1
-}
-

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/bin/firstboot
@@ -1,1 +1,129 @@
+#!/bin/sh
+# $Id$
+. /etc/functions.sh
 
+partname="OpenWrt"
+mtdpart="$(find_mtd_part $partname)"
+
+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"
+		# 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*|\
+		./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/jffs /jffs 2>&-
+		return 0
+	}
+}
+
+fopivot() { # <rw_root> <ro_root> <dupe?>
+	root=$1
+	{
+		mount -t mini_fo -o base=/,sto=$1 $1 /mnt 2>&- && root=/mnt
+	} || {
+		[ "$3" = "1" ] && {
+		mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
+		dupe $1 $rom
+		}
+	}
+	pivot $root $2
+}
+
+ramoverlay() {
+	mkdir -p /tmp/root
+	fopivot /tmp/root /rom 1
+}
+
+# invoked as an executable
+[ "${0##*/}" = "firstboot" ] && {
+
+	[ -z "$mtdpart" ] && {
+		echo "MTD partition not found."
+		exit 1
+	}
+
+	[ -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 "$partname"
+
+		# try to avoid fs changing while copying
+		mount -o remount,ro none / 2>&-
+
+		# copy ramoverlay to jffs2
+		mount "$mtdpart" /rom/jffs -t jffs2
+		echo -n "copying files ... "
+		cp -a /tmp/root/* /rom/jffs 2>&-
+		echo "done"
+
+		# switch back to squashfs (temporarily)
+		# and park the ramdisk ontop of /tmp/root
+		pivot /rom /mnt
+		mount -o move /mnt /tmp/root
+
+		# /jffs is the overlay
+		# /rom is the readonly
+		fopivot /jffs /rom
+
+		# try to get rid of /tmp/root
+		# this will almost always fail
+		umount /tmp/root 2>&-
+
+		# fs is clean
+		jffs2root --clean
+		exit 0
+	}
+
+	# script run manually
+	[ \! -z "$jffs" ] && {
+		echo "firstboot has already been run"
+		echo "jffs2 partition is mounted, only resetting files"
+		grep mini_fo /proc/filesystems >&-
+		[ $? != 0 ] && {
+			dupe $jffs $rom
+			exit 0
+		} || { 
+			rm -rf $jffs/* 2>&-
+			mount -o remount $jffs / 2>&-
+			exit 0
+		}
+	}
+
+	mtd erase "$partname"
+	mount "$mtdpart" /jffs -t jffs2
+	fopivot /jffs /rom 1
+}
+

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/etc/diag.sh
@@ -1,1 +1,29 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
 
+set_led() {
+	local led="$1"
+	local state="$2"
+	[ -f "/proc/diag/led/$1" ] && echo "$state" > "/proc/diag/led/$1"
+}
+
+set_state() {
+	case "$1" in
+		preinit)
+			set_led dmz 1
+			set_led diag 1
+			set_led power 0
+		;;
+		failsafe)
+			set_led diag f
+			set_led power f
+			set_led dmz f
+		;;
+		done)
+			set_led dmz 0
+			set_led diag 0
+			set_led power 1
+		;;
+	esac
+}
+

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/etc/init.d/done
@@ -1,1 +1,16 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
 
+START=95
+boot() {
+	[ -d /tmp/root ] && {
+		lock /tmp/.switch2jffs
+		firstboot switch2jffs
+		lock -u /tmp/.switch2jffs
+	}
+
+	# set leds to normal state
+	. /etc/diag.sh
+	set_state done
+}
+

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/etc/init.d/netconfig
@@ -1,1 +1,146 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
 
+START=05
+
+start() {
+	[ -e /etc/config/network ] && exit 0
+
+	mkdir -p /etc/config
+
+	(
+		if grep -E 'mtd0: 000(6|a)0000' /proc/mtd 2>&- >&-; then
+			# WGT634u
+			echo boardtype=wgt634u
+		else
+			strings /dev/mtdblock/3
+		fi
+	) | awk '
+	function p(cfgname, name) {
+		if (c[name] != "") print "	option " cfgname "	\"" c[name] "\""
+	}
+
+	function macinc(mac, maca, i, result) {
+		split(mac, maca, ":")
+		for (i = 1; i <= 6; i++) maca[i] = "0x" maca[i]
+		if (++maca[6] > 0xff) {
+			maca[5]++
+			maca[6] = 0
+		}
+		for (i = 1; i <= 6; i++) {
+			if (i != 1) result = result ":"
+			result = result sprintf("%02x", maca[i])
+		}
+		return result
+	}
+
+	BEGIN {
+		FS="="
+		c["lan_ifname"]="eth0.0"
+		c["wan_ifname"]="eth0.1"
+		c["vlan0ports"]="1 2 3 4 5*"
+		c["vlan1ports"]="0 5"
+		getline < "/proc/diag/model"
+		model=$0
+		for (i = 0; i < 6; i++) {
+			if (mac_check != "") mac_check = mac_check ":"
+			mac_check = mac_check "[0-9a-fA-F][0-9a-fA-F]"
+		}
+	}
+	
+	($1 == "boardnum") || ($1 == "boardtype") || ($1 == "boardflags") || ($1 ~ /macaddr/) {
+		nvram[$1] = $2
+	}
+	
+	END {
+		if ((model == "ASUS WL-HDD") || (model == "ASUS WL-300g") || (model == "Linksys WAP54G V1")) {
+			c["wan_ifname"] = ""
+			c["lan_ifname"] = "eth1"
+		}
+		if (model == "ASUS WL-500g") {
+			c["wan_ifname"] = "eth1"
+			c["lan_ifname"] = "eth0"
+		}
+		if (nvram["boardtype"] == "bcm94710r4") {
+			# Toshiba WRC-1000
+			c["lan_ifname"] = "eth0"
+			c["wan_ifname"] = "eth1"
+		}
+		if (nvram["boardtype"] == "wgt634u") {
+			c["vlan0ports"] = "0 1 2 3 5*"
+			c["vlan1ports"] = "4 5"
+		}
+		if (nvram["boardtype"] == "0x0467") {
+			c["vlan0ports"] = "0 1 2 3 5*"
+			c["vlan1ports"] = "4 5"
+		}
+		if ((nvram["boardtype"] == "0x042f") || (nvram["boardtype"] == "0x0472")) {
+			if (nvram["boardnum"] == "45") {
+				# WL-500gP
+				c["vlan0ports"] = "1 2 3 4 5*"
+				c["vlan1ports"] = "0 5"
+			} else {
+				# Generic BCM94704
+				c["vlan0ports"] = "0 1 2 3 4 5u"
+				c["vlan1ports"] = ""
+				c["lan_ifname"] = "eth0"
+				c["wan_ifname"] = "eth1"
+
+				# MAC addresses on 4704 tend to be screwed up. Add a workaround here
+				if (nvram["et0macaddr"] ~ mac_check) {
+					c["lan_macaddr"] = nvram["et0macaddr"]
+					c["wan_macaddr"] = macinc(c["lan_macaddr"])
+				}
+			}
+		}
+
+		# WAP54G
+		if ((nvram["boardnum"] == "2") || \
+			(nvram["boardnum"] == "1024")) {
+			c["lan_ifname"]="eth0"
+			c["wan_ifname"]=""
+		}
+	
+		# ASUS WL-700gE
+		# These are actually same as defaults above. For some reason this script applies
+		# Generic BCM94704 settings instead so we revert to proper settings here.	
+		# Hopefully someone will fix this properly soon.
+		if (model == "ASUS WL-700gE") {
+			c["lan_ifname"]="eth0.0"
+			c["wan_ifname"]="eth0.1"
+			c["vlan0ports"]="1 2 3 4 5*"
+			c["vlan1ports"]="0 5"
+		}
+		
+		print "#### VLAN configuration "
+		print "config switch eth0"
+		p("vlan0", "vlan0ports")
+		p("vlan1", "vlan1ports")
+		print ""
+		print ""
+		print "#### Loopback configuration"
+		print "config interface loopback"
+		print "	option ifname	\"lo\""
+		print "	option proto	static"
+		print "	option ipaddr	127.0.0.1"
+		print "	option netmask	255.0.0.0"
+		print ""
+		print ""
+		print "#### LAN configuration"
+		print "config interface lan"
+		print "	option type 	bridge"
+		p("ifname", "lan_ifname")
+		p("macaddr", "lan_macaddr")
+		print "	option proto	static"
+		print "	option ipaddr	192.168.1.1"
+		print "	option netmask	255.255.255.0"
+		print ""
+		print ""
+		print "#### WAN configuration"
+		print "config interface	wan"
+		p("ifname", "wan_ifname")
+		p("macaddr", "wan_macaddr")
+		print "	option proto	dhcp"
+	}' > /etc/config/network
+}
+

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/etc/preinit
@@ -1,1 +1,74 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
 
+. /etc/functions.sh
+. /etc/diag.sh
+
+failsafe() {
+	lock /tmp/.failsafe
+
+	echo "0 1 2 3 4 5u*" > /proc/switch/eth0/vlan/0/ports
+	
+	set_state failsafe
+	[ -x "/usr/sbin/nvram" ] && {
+		[ "$(nvram get boot_wait)" != "on" ] && {
+			nvram set boot_wait=on
+			nvram commit
+		}
+	}
+
+	netmsg 192.168.1.255 "Entering Failsafe!"
+	telnetd -l /bin/login <> /dev/null 2>&1
+
+	ash --login
+}
+
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin
+mount none /proc -t proc
+size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
+mount none /tmp -t tmpfs -o size=$size
+
+insmod diag
+set_state preinit
+trap 'FAILSAFE=true' USR1
+echo '/sbin/hotplug.failsafe' > /proc/sys/kernel/hotplug
+
+ifname=eth0
+
+# hardware specific overrides
+case "$(cat /proc/diag/model)" in
+	"Linksys WAP54G V1") ifname=eth1;;
+	"ASUS WL-HDD") ifname=eth1;;
+	"ASUS WL-300g") ifname=eth1;;
+	"ASUS (unknown, BCM4702)") ifname=eth1;;
+esac
+
+insmod switch-core
+insmod switch-robo || insmod switch-adm || rmmod switch-core
+
+ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
+
+[ -d /proc/switch/eth0 ] && {
+	echo 1 > /proc/switch/eth0/reset
+
+	# this would be easier if we blasted the message across all ports
+	# but we don't want packets leaking across interfaces
+	for port in $(seq 0 4); do {
+		echo "$port 5u*" > /proc/switch/eth0/vlan/0/ports
+		netmsg 192.168.1.255 "Press reset now, to enter Failsafe!"
+	}; done
+} || netmsg 192.168.1.255 "Press reset now, to enter Failsafe!"
+
+sleep 2
+
+eval ${FAILSAFE:+failsafe}
+
+lock -w /tmp/.failsafe
+set_state preinit
+echo /sbin/hotplug > /proc/sys/kernel/hotplug
+
+ifconfig $ifname 0.0.0.0 down
+
+mount_root
+exec /sbin/init
+

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/sbin/hotplug.failsafe
@@ -1,1 +1,5 @@
+#!/bin/sh
+case "$1" in
+	button) kill -USR1 1;;
+esac
 

--- /dev/null
+++ b/target/linux/brcm-2.4/base-files/default/sbin/mount_root
@@ -1,1 +1,32 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
 
+is_dirty() {
+	grep Broadcom /proc/cpuinfo >&- || return 1
+	OFFSET="$(($(hexdump -v /dev/mtdblock/1 -s 20 -n 2 -e '"%d"')-1))"
+	return $(hexdump -v /dev/mtdblock/1 -s $OFFSET -n 1 -e '"%d"')
+}
+
+if [ "$1" != "failsafe" ]; then 
+	mtd unlock linux
+	mount | grep jffs2 >&-
+	if [ $? = 0 ] ; then
+		mount -o remount,rw /dev/root /
+	else
+		. /bin/firstboot
+		is_dirty 
+		[ $? != 0 ] && {
+			echo "switching to jffs2"
+			mount /dev/mtdblock/4 /jffs -t jffs2
+			fopivot /jffs /rom
+		} || {
+			echo "jffs2 not ready yet; using ramdisk"
+			ramoverlay
+		}
+	fi
+fi
+
+mkdir -p /dev/pts
+mount none /dev/pts -t devpts 2>&-
+grep sysfs /proc/filesystems >/dev/null && mount -t sysfs none /sys 2>&-
+

--- a/target/linux/brcm-2.4/base-files/etc/diag.sh
+++ /dev/null
@@ -1,29 +1,1 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
 
-set_led() {
-	local led="$1"
-	local state="$2"
-	[ -f "/proc/diag/led/$1" ] && echo "$state" > "/proc/diag/led/$1"
-}
-
-set_state() {
-	case "$1" in
-		preinit)
-			set_led dmz 1
-			set_led diag 1
-			set_led power 0
-		;;
-		failsafe)
-			set_led diag f
-			set_led power f
-			set_led dmz f
-		;;
-		done)
-			set_led dmz 0
-			set_led diag 0
-			set_led power 1
-		;;
-	esac
-}
-

--- a/target/linux/brcm-2.4/base-files/etc/init.d/done
+++ /dev/null
@@ -1,16 +1,1 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
 
-START=95
-boot() {
-	[ -d /tmp/root ] && {
-		lock /tmp/.switch2jffs
-		firstboot switch2jffs
-		lock -u /tmp/.switch2jffs
-	}
-
-	# set leds to normal state
-	. /etc/diag.sh
-	set_state done
-}
-

--- a/target/linux/brcm-2.4/base-files/etc/init.d/netconfig
+++ /dev/null
@@ -1,146 +1,1 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
 
-START=05
-
-start() {
-	[ -e /etc/config/network ] && exit 0
-
-	mkdir -p /etc/config
-
-	(
-		if grep -E 'mtd0: 000(6|a)0000' /proc/mtd 2>&- >&-; then
-			# WGT634u
-			echo boardtype=wgt634u
-		else
-			strings /dev/mtdblock/3
-		fi
-	) | awk '
-	function p(cfgname, name) {
-		if (c[name] != "") print "	option " cfgname "	\"" c[name] "\""
-	}
-
-	function macinc(mac, maca, i, result) {
-		split(mac, maca, ":")
-		for (i = 1; i <= 6; i++) maca[i] = "0x" maca[i]
-		if (++maca[6] > 0xff) {
-			maca[5]++
-			maca[6] = 0
-		}
-		for (i = 1; i <= 6; i++) {
-			if (i != 1) result = result ":"
-			result = result sprintf("%02x", maca[i])
-		}
-		return result
-	}
-
-	BEGIN {
-		FS="="
-		c["lan_ifname"]="eth0.0"
-		c["wan_ifname"]="eth0.1"
-		c["vlan0ports"]="1 2 3 4 5*"
-		c["vlan1ports"]="0 5"
-		getline < "/proc/diag/model"
-		model=$0
-		for (i = 0; i < 6; i++) {
-			if (mac_check != "") mac_check = mac_check ":"
-			mac_check = mac_check "[0-9a-fA-F][0-9a-fA-F]"
-		}
-	}
-	
-	($1 == "boardnum") || ($1 == "boardtype") || ($1 == "boardflags") || ($1 ~ /macaddr/) {
-		nvram[$1] = $2
-	}
-	
-	END {
-		if ((model == "ASUS WL-HDD") || (model == "ASUS WL-300g") || (model == "Linksys WAP54G V1")) {
-			c["wan_ifname"] = ""
-			c["lan_ifname"] = "eth1"
-		}
-		if (model == "ASUS WL-500g") {
-			c["wan_ifname"] = "eth1"
-			c["lan_ifname"] = "eth0"
-		}
-		if (nvram["boardtype"] == "bcm94710r4") {
-			# Toshiba WRC-1000
-			c["lan_ifname"] = "eth0"
-			c["wan_ifname"] = "eth1"
-		}
-		if (nvram["boardtype"] == "wgt634u") {
-			c["vlan0ports"] = "0 1 2 3 5*"
-			c["vlan1ports"] = "4 5"
-		}
-		if (nvram["boardtype"] == "0x0467") {
-			c["vlan0ports"] = "0 1 2 3 5*"
-			c["vlan1ports"] = "4 5"
-		}
-		if ((nvram["boardtype"] == "0x042f") || (nvram["boardtype"] == "0x0472")) {
-			if (nvram["boardnum"] == "45") {
-				# WL-500gP
-				c["vlan0ports"] = "1 2 3 4 5*"
-				c["vlan1ports"] = "0 5"
-			} else {
-				# Generic BCM94704
-				c["vlan0ports"] = "0 1 2 3 4 5u"
-				c["vlan1ports"] = ""
-				c["lan_ifname"] = "eth0"
-				c["wan_ifname"] = "eth1"
-
-				# MAC addresses on 4704 tend to be screwed up. Add a workaround here
-				if (nvram["et0macaddr"] ~ mac_check) {
-					c["lan_macaddr"] = nvram["et0macaddr"]
-					c["wan_macaddr"] = macinc(c["lan_macaddr"])
-				}
-			}
-		}
-
-		# WAP54G
-		if ((nvram["boardnum"] == "2") || \
-			(nvram["boardnum"] == "1024")) {
-			c["lan_ifname"]="eth0"
-			c["wan_ifname"]=""
-		}
-	
-		# ASUS WL-700gE
-		# These are actually same as defaults above. For some reason this script applies
-		# Generic BCM94704 settings instead so we revert to proper settings here.	
-		# Hopefully someone will fix this properly soon.
-		if (model == "ASUS WL-700gE") {
-			c["lan_ifname"]="eth0.0"
-			c["wan_ifname"]="eth0.1"
-			c["vlan0ports"]="1 2 3 4 5*"
-			c["vlan1ports"]="0 5"
-		}
-		
-		print "#### VLAN configuration "
-		print "config switch eth0"
-		p("vlan0", "vlan0ports")
-		p("vlan1", "vlan1ports")
-		print ""
-		print ""
-		print "#### Loopback configuration"
-		print "config interface loopback"
-		print "	option ifname	\"lo\""
-		print "	option proto	static"
-		print "	option ipaddr	127.0.0.1"
-		print "	option netmask	255.0.0.0"
-		print ""
-		print ""
-		print "#### LAN configuration"
-		print "config interface lan"
-		print "	option type 	bridge"
-		p("ifname", "lan_ifname")
-		p("macaddr", "lan_macaddr")
-		print "	option proto	static"
-		print "	option ipaddr	192.168.1.1"
-		print "	option netmask	255.255.255.0"
-		print ""
-		print ""
-		print "#### WAN configuration"
-		print "config interface	wan"
-		p("ifname", "wan_ifname")
-		p("macaddr", "wan_macaddr")
-		print "	option proto	dhcp"
-	}' > /etc/config/network
-}
-

--- a/target/linux/brcm-2.4/base-files/etc/preinit
+++ /dev/null
@@ -1,74 +1,1 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
 
-. /etc/functions.sh
-. /etc/diag.sh
-
-failsafe() {
-	lock /tmp/.failsafe
-
-	echo "0 1 2 3 4 5u*" > /proc/switch/eth0/vlan/0/ports
-	
-	set_state failsafe
-	[ -x "/usr/sbin/nvram" ] && {
-		[ "$(nvram get boot_wait)" != "on" ] && {
-			nvram set boot_wait=on
-			nvram commit
-		}
-	}
-
-	netmsg 192.168.1.255 "Entering Failsafe!"
-	telnetd -l /bin/login <> /dev/null 2>&1
-
-	ash --login
-}
-
-export PATH=/bin:/sbin:/usr/bin:/usr/sbin
-mount none /proc -t proc
-size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
-mount none /tmp -t tmpfs -o size=$size
-
-insmod diag
-set_state preinit
-trap 'FAILSAFE=true' USR1
-echo '/sbin/hotplug.failsafe' > /proc/sys/kernel/hotplug
-
-ifname=eth0
-
-# hardware specific overrides
-case "$(cat /proc/diag/model)" in
-	"Linksys WAP54G V1") ifname=eth1;;
-	"ASUS WL-HDD") ifname=eth1;;
-	"ASUS WL-300g") ifname=eth1;;
-	"ASUS (unknown, BCM4702)") ifname=eth1;;
-esac
-
-insmod switch-core
-insmod switch-robo || insmod switch-adm || rmmod switch-core
-
-ifconfig $ifname 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up
-
-[ -d /proc/switch/eth0 ] && {
-	echo 1 > /proc/switch/eth0/reset
-
-	# this would be easier if we blasted the message across all ports
-	# but we don't want packets leaking across interfaces
-	for port in $(seq 0 4); do {
-		echo "$port 5u*" > /proc/switch/eth0/vlan/0/ports
-		netmsg 192.168.1.255 "Press reset now, to enter Failsafe!"
-	}; done
-} || netmsg 192.168.1.255 "Press reset now, to enter Failsafe!"
-
-sleep 2
-
-eval ${FAILSAFE:+failsafe}
-
-lock -w /tmp/.failsafe
-set_state preinit
-echo /sbin/hotplug > /proc/sys/kernel/hotplug
-
-ifconfig $ifname 0.0.0.0 down
-
-mount_root
-exec /sbin/init
-

--- a/target/linux/brcm-2.4/base-files/sbin/hotplug.failsafe
+++ /dev/null
@@ -1,5 +1,1 @@
-#!/bin/sh
-case "$1" in
-	button) kill -USR1 1;;
-esac
 

--- a/target/linux/brcm-2.4/base-files/sbin/mount_root
+++ /dev/null
@@ -1,32 +1,1 @@
-#!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
 
-is_dirty() {
-	grep Broadcom /proc/cpuinfo >&- || return 1
-	OFFSET="$(($(hexdump -v /dev/mtdblock/1 -s 20 -n 2 -e '"%d"')-1))"
-	return $(hexdump -v /dev/mtdblock/1 -s $OFFSET -n 1 -e '"%d"')
-}
-
-if [ "$1" != "failsafe" ]; then 
-	mtd unlock linux
-	mount | grep jffs2 >&-
-	if [ $? = 0 ] ; then
-		mount -o remount,rw /dev/root /
-	else
-		. /bin/firstboot
-		is_dirty 
-		[ $? != 0 ] && {
-			echo "switching to jffs2"
-			mount /dev/mtdblock/4 /jffs -t jffs2
-			fopivot /jffs /rom
-		} || {
-			echo "jffs2 not ready yet; using ramdisk"
-			ramoverlay
-		}
-	fi
-fi
-
-mkdir -p /dev/pts
-mount none /dev/pts -t devpts 2>&-
-grep sysfs /proc/filesystems >/dev/null && mount -t sysfs none /sys 2>&-
-

--- /dev/null
+++ b/target/linux/ixp4xx-2.6/base-files/default/etc/config/network
@@ -1,1 +1,12 @@
+# 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	dhcp
+

--- /dev/null
+++ b/target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig
@@ -1,1 +1,85 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
 
+START=15
+
+# hardware
+#  the 'Hardware' string from cpuinfo
+hardware(){
+	sed -n 's!^Hardware	*: !!p' /proc/cpuinfo
+}
+#
+# machine
+#  outputs an identifier of the current machine - i.e. the board
+#  slugos is running on.
+machine(){
+	case "$(hardware)" in
+	*Avila*)	echo avila;;
+	*Loft*)		echo loft;;
+	*NAS?100d*)	echo nas100d;;
+	*DSM?G600*)	echo dsmg600;;
+	*NSLU2*)	echo nslu2;;
+	*FSG?3*)	echo fsg3;;
+	*Gateway?7001*)	echo gateway7001;;
+	*)		echo unknown;;
+	esac
+}
+
+start() {
+	[ -e /etc/config/network ] && exit 0
+
+	mkdir -p /etc/config
+
+	(
+		case "$(machine)" in
+			nslu2)
+				sysconf=$(find_mtd_part "SysConf")
+				echo model=nslu2
+				strings $sysconf ;;
+			nas100d)
+				sysconf=$(find_mtd_part "sysconfig")
+				echo model=nas100d
+				strings $sysconf ;;
+			*)
+				echo model=$(machine) ;;
+		esac
+	) | awk '
+	function p(cfgname, name) {
+		if (c[name] != "") print "	option " cfgname "	\"" c[name] "\""
+	}
+
+	BEGIN {
+		FS="="
+	}
+	
+	{	c[$1] = $2	}
+	
+	END {
+		print "#### Loopback configuration"
+		print "config interface loopback"
+		print "	option ifname	\"lo\""
+		print "	option proto	static"
+		print "	option ipaddr	127.0.0.1"
+		print "	option netmask	255.0.0.0"
+		print ""
+		print ""
+		print "#### LAN configuration"
+		print "config interface lan"
+		print "	option ifname	\"eth0\""
+		if ((c["model"] == "nslu2") || (c["model"] == "nas100d")) {
+			p("proto", "bootproto")
+			p("ipaddr", "ip_addr")
+			p("netmask", "netmask")
+			p("gateway", "gateway")
+			p("dns", "dns_server1")
+			p("hostname", "disk_server_name")
+		}
+		else {
+			print "	option proto	dhcp"
+		}
+	}' > /etc/config/network
+
+	ifup loopback
+	ifup lan
+}
+

--- a/target/linux/ixp4xx-2.6/base-files/etc/config/network
+++ /dev/null
@@ -1,12 +1,1 @@
-# 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	dhcp
-

--- a/target/linux/ixp4xx-2.6/base-files/etc/init.d/netconfig
+++ /dev/null
@@ -1,85 +1,1 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
 
-START=15
-
-# hardware
-#  the 'Hardware' string from cpuinfo
-hardware(){
-	sed -n 's!^Hardware	*: !!p' /proc/cpuinfo
-}
-#
-# machine
-#  outputs an identifier of the current machine - i.e. the board
-#  slugos is running on.
-machine(){
-	case "$(hardware)" in
-	*Avila*)	echo avila;;
-	*Loft*)		echo loft;;
-	*NAS?100d*)	echo nas100d;;
-	*DSM?G600*)	echo dsmg600;;
-	*NSLU2*)	echo nslu2;;
-	*FSG?3*)	echo fsg3;;
-	*Gateway?7001*)	echo gateway7001;;
-	*)		echo unknown;;
-	esac
-}
-
-start() {
-	[ -e /etc/config/network ] && exit 0
-
-	mkdir -p /etc/config
-
-	(
-		case "$(machine)" in
-			nslu2)
-				sysconf=$(find_mtd_part "SysConf")
-				echo model=nslu2
-				strings $sysconf ;;
-			nas100d)
-				sysconf=$(find_mtd_part "sysconfig")
-				echo model=nas100d
-				strings $sysconf ;;
-			*)
-				echo model=$(machine) ;;
-		esac
-	) | awk '
-	function p(cfgname, name) {
-		if (c[name] != "") print "	option " cfgname "	\"" c[name] "\""
-	}
-
-	BEGIN {
-		FS="="
-	}
-	
-	{	c[$1] = $2	}
-	
-	END {
-		print "#### Loopback configuration"
-		print "config interface loopback"
-		print "	option ifname	\"lo\""
-		print "	option proto	static"
-		print "	option ipaddr	127.0.0.1"
-		print "	option netmask	255.0.0.0"
-		print ""
-		print ""
-		print "#### LAN configuration"
-		print "config interface lan"
-		print "	option ifname	\"eth0\""
-		if ((c["model"] == "nslu2") || (c["model"] == "nas100d")) {
-			p("proto", "bootproto")
-			p("ipaddr", "ip_addr")
-			p("netmask", "netmask")
-			p("gateway", "gateway")
-			p("dns", "dns_server1")
-			p("hostname", "disk_server_name")
-		}
-		else {
-			print "	option proto	dhcp"
-		}
-	}' > /etc/config/network
-
-	ifup loopback
-	ifup lan
-}
-

--- /dev/null
+++ b/target/linux/rb532-2.6/base-files/default/etc/config/network
@@ -1,1 +1,13 @@
+# Copyright (C) 2006 OpenWrt.org
 
+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	dhcp
+
+

--- /dev/null
+++ b/target/linux/rb532-2.6/base-files/default/sbin/cf2nand
@@ -1,1 +1,62 @@
+#!/bin/sh
+. /etc/functions.sh
 
+copy_kernel() {
+	local input="$1"
+	local output="$2"
+	local cmdline="$3"
+	size="$(echo -n "$cmdline" | wc -c)"
+	dd if="$input" bs=3M count=1 > "$output"
+	/sbin/patch-cmdline "$output" "$cmdline"
+}
+
+fstype="$(mount | grep ' / ' | awk '$5 != "rootfs" {print $5}')"
+case "$fstype" in
+	ext2|jffs2) echo "Copying from $fstype to yaffs2";;
+	*) echo "Invalid filesystem."; exit 1;;
+esac
+
+[ -d /tmp/cf2nand ] && {
+	echo "/tmp/cf2nand already exists"
+	exit 1
+}
+
+mkdir /tmp/cf2nand
+mkdir /tmp/cf2nand/rootfs
+mount -t "$fstype" /dev/root /tmp/cf2nand/rootfs || {
+	echo "Mounting rootfs failed."
+	exit 1
+}
+
+boot="$(find_mtd_part 'RouterBoard NAND Boot')"
+main="$(find_mtd_part 'RouterBoard NAND Main')"
+[ -z "$boot" -o -z "$main" ] && {
+	echo "Cannot find NAND Flash partitions"
+	exit 1
+}
+
+echo "Erasing filesystem..."
+mtd erase Boot 2>/dev/null >/dev/null
+mtd erase Main 2>/dev/null >/dev/null
+
+mkdir /tmp/cf2nand/p1
+mkdir /tmp/cf2nand/p2
+mount -t yaffs2 "$boot" /tmp/cf2nand/p1
+mount -t yaffs2 "$main" /tmp/cf2nand/p2
+
+echo "Copying kernel..."
+copy_kernel /dev/cf/card0/part1 /tmp/cf2nand/p1/kernel "root=/dev/mtdblock1 rootfstype=yaffs2 " 2>/dev/null >/dev/null
+umount /tmp/cf2nand/p1
+rmdir /tmp/cf2nand/p1
+
+echo "Copying filesystem..."
+( cd /tmp/cf2nand/rootfs; tar c . ) | ( cd /tmp/cf2nand/p2; tar x )
+sync
+umount /tmp/cf2nand/p2
+rmdir /tmp/cf2nand/p2
+
+umount /tmp/cf2nand/rootfs
+rmdir /tmp/cf2nand/rootfs
+rmdir /tmp/cf2nand
+
+

--- a/target/linux/rb532-2.6/base-files/etc/config/network
+++ /dev/null
@@ -1,13 +1,1 @@
-# Copyright (C) 2006 OpenWrt.org
 
-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	dhcp
-
-

--- a/target/linux/rb532-2.6/base-files/sbin/cf2nand
+++ /dev/null
@@ -1,62 +1,1 @@
-#!/bin/sh
-. /etc/functions.sh
 
-copy_kernel() {
-	local input="$1"
-	local output="$2"
-	local cmdline="$3"
-	size="$(echo -n "$cmdline" | wc -c)"
-	dd if="$input" bs=3M count=1 > "$output"
-	/sbin/patch-cmdline "$output" "$cmdline"
-}
-
-fstype="$(mount | grep ' / ' | awk '$5 != "rootfs" {print $5}')"
-case "$fstype" in
-	ext2|jffs2) echo "Copying from $fstype to yaffs2";;
-	*) echo "Invalid filesystem."; exit 1;;
-esac
-
-[ -d /tmp/cf2nand ] && {
-	echo "/tmp/cf2nand already exists"
-	exit 1
-}
-
-mkdir /tmp/cf2nand
-mkdir /tmp/cf2nand/rootfs
-mount -t "$fstype" /dev/root /tmp/cf2nand/rootfs || {
-	echo "Mounting rootfs failed."
-	exit 1
-}
-
-boot="$(find_mtd_part 'RouterBoard NAND Boot')"
-main="$(find_mtd_part 'RouterBoard NAND Main')"
-[ -z "$boot" -o -z "$main" ] && {
-	echo "Cannot find NAND Flash partitions"
-	exit 1
-}
-
-echo "Erasing filesystem..."
-mtd erase Boot 2>/dev/null >/dev/null
-mtd erase Main 2>/dev/null >/dev/null
-
-mkdir /tmp/cf2nand/p1
-mkdir /tmp/cf2nand/p2
-mount -t yaffs2 "$boot" /tmp/cf2nand/p1
-mount -t yaffs2 "$main" /tmp/cf2nand/p2
-
-echo "Copying kernel..."
-copy_kernel /dev/cf/card0/part1 /tmp/cf2nand/p1/kernel "root=/dev/mtdblock1 rootfstype=yaffs2 " 2>/dev/null >/dev/null
-umount /tmp/cf2nand/p1
-rmdir /tmp/cf2nand/p1
-
-echo "Copying filesystem..."
-( cd /tmp/cf2nand/rootfs; tar c . ) | ( cd /tmp/cf2nand/p2; tar x )
-sync
-umount /tmp/cf2nand/p2
-rmdir /tmp/cf2nand/p2
-
-umount /tmp/cf2nand/rootfs
-rmdir /tmp/cf2nand/rootfs
-rmdir /tmp/cf2nand
-
-

--- /dev/null
+++ b/target/linux/sibyte-2.6/base-files/default/etc/config/network
@@ -1,1 +1,15 @@
+# Copyright (C) 2006 OpenWrt.org
 
+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 type 	bridge
+	option ifname	"eth0 ath0"
+	option proto	static
+	option ipaddr	192.168.1.1
+	option netmask	255.255.255.0
+

--- /dev/null
+++ b/target/linux/sibyte-2.6/base-files/default/etc/inittab
@@ -1,1 +1,6 @@
+# Copyright (C) 2006 OpenWrt.org
 
+::sysinit:/etc/init.d/rcS
+duart/0::askfirst:/bin/ash --login
+#tts/1::askfirst:/bin/ash --login
+

--- a/target/linux/sibyte-2.6/base-files/etc/config/network
+++ /dev/null
@@ -1,15 +1,1 @@
-# Copyright (C) 2006 OpenWrt.org
 
-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 type 	bridge
-	option ifname	"eth0 ath0"
-	option proto	static
-	option ipaddr	192.168.1.1
-	option netmask	255.255.255.0
-

--- a/target/linux/sibyte-2.6/base-files/etc/inittab
+++ /dev/null
@@ -1,6 +1,1 @@
-# Copyright (C) 2006 OpenWrt.org
 
-::sysinit:/etc/init.d/rcS
-duart/0::askfirst:/bin/ash --login
-#tts/1::askfirst:/bin/ash --login
-

--- /dev/null
+++ b/target/linux/x86-2.6/base-files/default/etc/config/network
@@ -1,1 +1,20 @@
+# Copyright (C) 2006 OpenWrt.org
 
+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 type 	bridge
+	option ifname	"eth1 eth2"
+	option proto	static
+	option ipaddr	192.168.1.1
+	option netmask	255.255.255.0
+
+config interface wan
+	option ifname	eth0
+	option proto	dhcp
+
+

--- a/target/linux/x86-2.6/base-files/etc/config/network
+++ /dev/null
@@ -1,20 +1,1 @@
-# Copyright (C) 2006 OpenWrt.org
 
-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 type 	bridge
-	option ifname	"eth1 eth2"
-	option proto	static
-	option ipaddr	192.168.1.1
-	option netmask	255.255.255.0
-
-config interface wan
-	option ifname	eth0
-	option proto	dhcp
-
-

comments