diff options
author | rwhitby <rwhitby@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-12-20 13:17:21 +0000 |
---|---|---|
committer | rwhitby <rwhitby@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-12-20 13:17:21 +0000 |
commit | c055409b247c164bb6797eda6bf4e5f966f97d38 (patch) | |
tree | 441d8b871b5892fb6199ffd6928828dd69d937d5 /target/linux | |
parent | 76b52ee4a204a1896754795433f25063cb703855 (diff) |
Initial stab at netconfig for nslu2 and nas100d
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5883 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux')
-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 +} |