summaryrefslogtreecommitdiffstats
path: root/target/linux/ar7/base-files/etc/diag.sh
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar7/base-files/etc/diag.sh')
-rw-r--r--target/linux/ar7/base-files/etc/diag.sh62
1 files changed, 35 insertions, 27 deletions
diff --git a/target/linux/ar7/base-files/etc/diag.sh b/target/linux/ar7/base-files/etc/diag.sh
index b8e4dc874..37eed6a1a 100644
--- a/target/linux/ar7/base-files/etc/diag.sh
+++ b/target/linux/ar7/base-files/etc/diag.sh
@@ -1,34 +1,42 @@
#!/bin/sh
-# Copyright (C) 2007 OpenWrt.org
+# Copyright (C) 2007-2013 OpenWrt.org
# This setup gives us 4.5 distinguishable states:
#
-# Solid OFF: Bootloader running, or kernel hung (timer task stalled)
-# Solid ON: Kernel hung (timer task stalled)
-# 5Hz blink: preinit
-# 10Hz blink: failsafe
-# Heartbeat: normal operation
+# (1-LED) Solid OFF: Bootloader running, or kernel hung (timer task stalled)
+# (1-LED) Solid ON: Kernel hung (timer task stalled)
+# (2-LED) Solid RED: Bootloader running, or kernel hung (timer task stalled)
+# (2-LED) Solid YELLOW: Kernel hung (timer task stalled)
+# 5Hz blink: preinit
+# 10Hz blink: failsafe
+# (1-LED) Heartbeat: normal operation
+# (2-LED) Solid GREEN: normal operation
+
+. /lib/functions/leds.sh
+
+get_status_led() {
+ [ -d "/sys/class/leds/status" ] && status_led="status"
+ [ -d "/sys/class/leds/power:green" ] && status_led="power:green"
+}
set_state() {
- case "$1" in
- preinit)
- [ -d /sys/class/leds/status ] && {
- echo timer >/sys/class/leds/status/trigger
- echo 100 >/sys/class/leds/status/delay_on
- echo 100 >/sys/class/leds/status/delay_off
- }
- ;;
- failsafe)
- [ -d /sys/class/leds/status ] && {
- echo timer >/sys/class/leds/status/trigger
- echo 50 >/sys/class/leds/status/delay_on
- echo 50 >/sys/class/leds/status/delay_off
- }
- ;;
- done)
- [ -d /sys/class/leds/status ] && {
- echo heartbeat >/sys/class/leds/status/trigger
- }
- ;;
- esac
+ get_status_led
+
+ case "$1" in
+ preinit)
+ status_led_set_timer 100 100
+ ;;
+ failsafe)
+ status_led_set_timer 50 50
+ ;;
+ done)
+ [ "$status_led" = "status" ] && {
+ status_led_set_heartbeat
+ }
+ [ "$status_led" = "power:green" ] && {
+ status_led_set_on
+ led_off "power:red"
+ }
+ ;;
+ esac
}