summaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig')
-rwxr-xr-xtarget/linux/ixp4xx-2.6/base-files/default/etc/init.d/netconfig84
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 000000000..ded5f4b8d
--- /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
+}