25ec89934db8ca41720cb6b4a2bb54c88d916dd7
[openwrt/openwrt.git] / target / linux / ar7 / base-files / etc / diag.sh
1 #!/bin/sh
2 # Copyright (C) 2007-2012 OpenWrt.org
3
4 # This setup gives us 4.5 distinguishable states:
5 #
6 # (1-LED) Solid OFF: Bootloader running, or kernel hung (timer task stalled)
7 # (1-LED) Solid ON: Kernel hung (timer task stalled)
8 # (2-LED) Solid RED: Bootloader running, or kernel hung (timer task stalled)
9 # (2-LED) Solid YELLOW: Kernel hung (timer task stalled)
10 # 5Hz blink: preinit
11 # 10Hz blink: failsafe
12 # (1-LED) Heartbeat: normal operation
13 # (2-LED) Solid GREEN: normal operation
14
15 set_state() {
16 case "$1" in
17 preinit)
18 [ -d /sys/class/leds/status ] && {
19 echo timer >/sys/class/leds/status/trigger
20 echo 100 >/sys/class/leds/status/delay_on
21 echo 100 >/sys/class/leds/status/delay_off
22 :; } || [ -d /sys/class/leds/power\:green ] && {
23 echo timer >/sys/class/leds/power\:green/trigger
24 echo 100 >/sys/class/leds/power\:green/delay_on
25 echo 100 >/sys/class/leds/power\:green/delay_off
26 }
27 ;;
28 failsafe)
29 [ -d /sys/class/leds/status ] && {
30 echo timer >/sys/class/leds/status/trigger
31 echo 50 >/sys/class/leds/status/delay_on
32 echo 50 >/sys/class/leds/status/delay_off
33 :; } || [ -d /sys/class/leds/power\:green ] && {
34 echo timer >/sys/class/leds/power\:green/trigger
35 echo 50 >/sys/class/leds/power\:green/delay_on
36 echo 50 >/sys/class/leds/power\:green/delay_off
37 }
38 ;;
39 done)
40 [ -d /sys/class/leds/status ] && {
41 echo heartbeat >/sys/class/leds/status/trigger
42 :; } || [ -d /sys/class/leds/power\:green ] && {
43 echo default-on >/sys/class/leds/power\:green/trigger
44 echo none >/sys/class/leds/power\:red/trigger
45 }
46 ;;
47 esac
48 }