diff options
Diffstat (limited to 'target/linux/kirkwood/base-files')
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" +} |