diff options
Diffstat (limited to 'target/linux/kirkwood/base-files')
-rw-r--r-- | target/linux/kirkwood/base-files/etc/uci-defaults/leds | 57 | ||||
-rw-r--r-- | target/linux/kirkwood/base-files/etc/uci-defaults/network | 42 | ||||
-rw-r--r-- | target/linux/kirkwood/base-files/lib/kirkwood.sh | 5 |
3 files changed, 104 insertions, 0 deletions
diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/leds b/target/linux/kirkwood/base-files/etc/uci-defaults/leds new file mode 100644 index 0000000000..a0b1c1c1fa --- /dev/null +++ b/target/linux/kirkwood/base-files/etc/uci-defaults/leds @@ -0,0 +1,57 @@ +#!/bin/sh +# +# Copyright (C) 2012 OpenWrt.org +# + +COMMIT_SYSTEM=0 + +set_led_netdev() { + local cfg="led_$1" + local sysfs=$2 + local dev=$3 + + uci -q get system.$cfg && return 0 + + uci batch <<EOF +set system.$cfg='led' +set system.$cfg.sysfs='$sysfs' +set system.$cfg.trigger='netdev' +set system.$cfg.dev='$dev' +set system.$cfg.mode='link tx rx' +EOF + COMMIT_SYSTEM=1 +} + +set_led_default() { + local cfg="led_$1" + local sysfs=$2 + local default=$3 + + uci -q get system.$cfg && return 0 + + uci batch <<EOF +set system.$cfg='led' +set system.$cfg.sysfs='$sysfs' +set system.$cfg.trigger='none' +set system.$cfg.default='$default' +EOF + COMMIT_SYSTEM=1 +} + +. /lib/kirkwood.sh + +hardware=$(kirkwood_hardware_name) + +case "$hardware" in +"Seagate FreeAgent DockStar") + set_led_netdev "eth0" "dockstar:orange:misc" "eth0" + set_led_default "health" "dockstar:green:health" "1" + ;; + +*) + ;; +esac + +[ "$COMMIT_SYSTEM" == "1" ] && uci commit system + +exit 0 diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/network b/target/linux/kirkwood/base-files/etc/uci-defaults/network new file mode 100644 index 0000000000..48c1232d3d --- /dev/null +++ b/target/linux/kirkwood/base-files/etc/uci-defaults/network @@ -0,0 +1,42 @@ +#!/bin/sh +# +# Copyright (C) 2012 OpenWrt.org +# + +[ -e /etc/config/network ] && exit 0 + +set_lan_dhcp() { + local ifname=$1 + uci batch <<EOF +set network.lan='interface' +set network.lan.ifname='$ifname' +set network.lan.proto='dhcp' +EOF +} + +. /lib/functions/uci-defaults.sh +. /lib/kirkwood.sh + +touch /etc/config/network + +ucidef_set_interface_loopback + +hardware=$(kirkwood_hardware_name) + +case "$hardware" in +"Seagate FreeAgent DockStar") + set_lan_dhcp "eth0" + ;; + +"RaidSonic ICY BOX IB-NAS6210") + 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 100644 index 0000000000..4fcd760778 --- /dev/null +++ b/target/linux/kirkwood/base-files/lib/kirkwood.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +kirkwood_hardware_name() { + grep ^Hardware /proc/cpuinfo | sed "s/Hardware.*: \(.*\)/\1/g" +} |