aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/kirkwood/base-files
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/kirkwood/base-files')
-rwxr-xr-xtarget/linux/kirkwood/base-files/etc/diag.sh38
-rw-r--r--target/linux/kirkwood/base-files/etc/uci-defaults/01_leds49
-rw-r--r--target/linux/kirkwood/base-files/etc/uci-defaults/02_network66
-rwxr-xr-xtarget/linux/kirkwood/base-files/lib/kirkwood.sh86
4 files changed, 239 insertions, 0 deletions
diff --git a/target/linux/kirkwood/base-files/etc/diag.sh b/target/linux/kirkwood/base-files/etc/diag.sh
new file mode 100755
index 0000000..716e6c9
--- /dev/null
+++ b/target/linux/kirkwood/base-files/etc/diag.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Copyright (C) 2014 OpenWrt.org
+
+. /lib/functions/leds.sh
+. /lib/kirkwood.sh
+
+get_status_led() {
+ case $(kirkwood_board_name) in
+ dockstar|\
+ goflexhome|\
+ goflexnet|\
+ pogo_e02)
+ status_led="status:orange:fault"
+ ;;
+ ea4500)
+ status_led="ea4500:white:health"
+ ;;
+ esac
+}
+
+set_state() {
+ get_status_led
+
+ case "$1" in
+ preinit)
+ status_led_blink_preinit
+ ;;
+ failsafe)
+ status_led_blink_failsafe
+ ;;
+ preinit_regular)
+ status_led_blink_preinit_regular
+ ;;
+ done)
+ status_led_on
+ ;;
+ esac
+}
diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
new file mode 100644
index 0000000..a8ba1f6
--- /dev/null
+++ b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# Copyright (C) 2012-2014 OpenWrt.org
+#
+
+. /lib/functions/uci-defaults.sh
+. /lib/kirkwood.sh
+
+board=$(kirkwood_board_name)
+
+case "$board" in
+"dockstar")
+ ucidef_set_led_default "health" "health" "status:green:health" "1"
+ ucidef_set_led_default "fault" "fault" "status:orange:fault" "1"
+ ;;
+"ea3500")
+ ucidef_set_led_default "power" "power" "ea3500:green:power" "1"
+ ;;
+"ea4500")
+ ucidef_set_led_default "health" "health" "ea4500:white:health" "1"
+ ucidef_set_led_default "pulse" "pulse" "ea4500:white:pulse" "1"
+ ;;
+"goflexhome" | \
+"goflexnet")
+ ucidef_set_led_default "health" "health" "status:green:health" "1"
+ ucidef_set_led_default "fault" "fault" "status:orange:fault" "0"
+ ;;
+"ib62x0")
+ ucidef_set_led_default "health" "health" "ib62x0:green:os" "1"
+ ucidef_set_led_default "fault" "fault" "ib62x0:red:os" "1"
+ ;;
+"pogo_e02")
+ ucidef_set_led_default "health" "health" "status:green:health" "1"
+ ucidef_set_led_default "fault" "fault" "status:orange:fault" "1"
+ ;;
+"guruplug-server-plus")
+ ucidef_set_led_timer "health" "health" "guruplug:red:health" "200" "800"
+ ;;
+"sheevaplug" | \
+"sheevaplug-esata")
+ ucidef_set_led_timer "health" "health" "sheevaplug:blue:health" "200" "800"
+ ;;
+*)
+ ;;
+esac
+
+ucidef_commit_leds
+
+exit 0
diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/02_network b/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
new file mode 100644
index 0000000..150926e
--- /dev/null
+++ b/target/linux/kirkwood/base-files/etc/uci-defaults/02_network
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# Copyright (C) 2012-2014 OpenWrt.org
+#
+
+[ -e /etc/config/network ] && exit 0
+
+touch /etc/config/network
+
+set_lan_dhcp() {
+ local ifname=$1
+ uci batch <<EOF
+set network.lan='interface'
+set network.lan.ifname='$ifname'
+set network.lan.proto='dhcp'
+set network.lan6='interface'
+set network.lan6.ifname='@lan'
+set network.lan6.proto='dhcpv6'
+set network.lan6.reqprefix='no'
+EOF
+}
+
+. /lib/functions/uci-defaults.sh
+. /lib/kirkwood.sh
+
+board=$(kirkwood_board_name)
+
+ucidef_set_interface_loopback
+
+case "$board" in
+"dockstar"|\
+"goflexhome"|\
+"goflexnet"|\
+"iconnect"|\
+"ib62x0"|\
+"nsa310s"|\
+"pogo_e02")
+ set_lan_dhcp "eth0"
+ ;;
+"ea3500")
+ ucidef_set_interfaces_lan_wan "eth0" "eth1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5"
+ ucidef_add_switch_vlan "switch0" "2" "4 6"
+ ;;
+"ea4500")
+ ucidef_set_interfaces_lan_wan "eth0" "eth1"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5"
+ ucidef_add_switch_vlan "switch0" "2" "4 6"
+ ;;
+"guruplug-server-plus")
+ set_lan_dhcp "eth0" "eth1"
+ ;;
+"sheevaplug" | \
+"sheevaplug-esata")
+ set_lan_dhcp "eth0"
+ ;;
+*)
+ ucidef_set_interface_lan "eth0"
+ ;;
+esac
+
+uci commit network
+
+exit 0
diff --git a/target/linux/kirkwood/base-files/lib/kirkwood.sh b/target/linux/kirkwood/base-files/lib/kirkwood.sh
new file mode 100755
index 0000000..6e0f444
--- /dev/null
+++ b/target/linux/kirkwood/base-files/lib/kirkwood.sh
@@ -0,0 +1,86 @@
+#!/bin/sh
+#
+# Copyright (C) 2014 OpenWrt.org
+#
+
+KIRKWOOD_BOARD_NAME=
+KIRKWOOD_MODEL=
+
+kirkwood_board_detect() {
+ local machine
+ local name
+
+ machine=$(cat /proc/device-tree/model)
+
+ case "$machine" in
+ "Seagate FreeAgent Dockstar")
+ name="dockstar"
+ ;;
+
+ "Seagate GoFlex Home")
+ name="goflexhome"
+ ;;
+
+ "Seagate GoFlex Net")
+ name="goflexnet"
+ ;;
+
+ "Iomega Iconnect")
+ name="iconnect"
+ ;;
+
+ "RaidSonic ICY BOX IB-NAS62x0 (Rev B)")
+ name="ib62x0"
+ ;;
+
+ "Cloud Engines Pogoplug E02")
+ name="pogo_e02"
+ ;;
+
+ "Linksys EA3500")
+ name="ea3500"
+ ;;
+
+ "Linksys EA4500")
+ name="ea4500"
+ ;;
+
+ "Globalscale Technologies Guruplug Server Plus")
+ name="guruplug-server-plus"
+ ;;
+
+ "Globalscale Technologies SheevaPlug")
+ name="sheevaplug"
+ ;;
+
+ "Globalscale Technologies eSATA SheevaPlug")
+ name="sheevaplug-esata"
+ ;;
+
+ "ZyXEL NSA310S")
+ name="nsa310s"
+ ;;
+
+ *)
+ name="generic"
+ ;;
+ esac
+
+ [ -z "$KIRKWOOD_BOARD_NAME" ] && KIRKWOOD_BOARD_NAME="$name"
+ [ -z "$KIRKWOOD_MODEL" ] && KIRKWOOD_MODEL="$machine"
+
+ [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
+
+ echo "$KIRKWOOD_BOARD_NAME" > /tmp/sysinfo/board_name
+ echo "$KIRKWOOD_MODEL" > /tmp/sysinfo/model
+}
+
+kirkwood_board_name() {
+ local name
+
+ [ -f /tmp/sysinfo/board_name ] || kirkwood_board_detect
+ [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
+ [ -z "$name" ] && name="unknown"
+
+ echo "$name"
+}