diff options
Diffstat (limited to 'target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig')
-rwxr-xr-x | target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig b/target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig new file mode 100755 index 0000000..ded5f4b --- /dev/null +++ b/target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig @@ -0,0 +1,84 @@ +#!/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 +} |