diff options
| -rw-r--r-- | target/linux/ixp4xx-2.6/base-files.mk | 5 | ||||
| -rwxr-xr-x | target/linux/ixp4xx-2.6/base-files/etc/init.d/netconfig | 94 | 
2 files changed, 99 insertions, 0 deletions
| diff --git a/target/linux/ixp4xx-2.6/base-files.mk b/target/linux/ixp4xx-2.6/base-files.mk new file mode 100644 index 000000000..d6682bd38 --- /dev/null +++ b/target/linux/ixp4xx-2.6/base-files.mk @@ -0,0 +1,5 @@ +define Package/base-files/install-target +	rm -f $(1)/etc/config/network +endef + + diff --git a/target/linux/ixp4xx-2.6/base-files/etc/init.d/netconfig b/target/linux/ixp4xx-2.6/base-files/etc/init.d/netconfig new file mode 100755 index 000000000..352a2a9a2 --- /dev/null +++ b/target/linux/ixp4xx-2.6/base-files/etc/init.d/netconfig @@ -0,0 +1,94 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006 OpenWrt.org + +START=05 + +# 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 +} + +# Returns the mtd device with the specified name (without leading /dev) +# $1 = name of mtd device +get_mtd() { +	grep "\"$1\"*$" /proc/mtd | cut -d : -f 1 +} + +# Returns the mtd block device with the specified name (without leading /dev) +# $1 = name of mtd device +get_mtdblock() { +	echo $(get_mtd "$1") | sed 's/mtd/mtdblock/' +} + +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="=" +		getline model +	} +	 +	{	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 ((model == "nslu2") || (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 +} | 
