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
15set_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}
49