diff options
Diffstat (limited to 'target/linux/ar7')
| -rw-r--r-- | target/linux/ar7/base-files/etc/diag.sh | 33 | 
1 files changed, 20 insertions, 13 deletions
diff --git a/target/linux/ar7/base-files/etc/diag.sh b/target/linux/ar7/base-files/etc/diag.sh index af4a1f3c9..0ce17cae8 100644 --- a/target/linux/ar7/base-files/etc/diag.sh +++ b/target/linux/ar7/base-files/etc/diag.sh @@ -1,19 +1,26 @@  #!/bin/sh  # Copyright (C) 2007 OpenWrt.org -set_led() { -	local led="$1" -	local state="$2" -	[ -d "/sys/class/leds/$led" ] && echo "$state" > "/sys/class/leds/$led/brightness" -} +# This setup gives us 3.5 distinguishable states: +# +# Solid OFF:  Bootloader running, or kernel hung (timer task stalled) +# Solid ON:   Kernel hung (timer task stalled) +# 5Hz blink:  preinit +# Heartbeat:  normal operation  set_state() { -	case "$1" in -		preinit) -			set_led status 255 -		;; -		done) -			set_led status 0 -		;; -	esac +        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 +                        } +                ;; +                done) +                        [ -d /sys/class/leds/status ] && { +                                echo heartbeat >/sys/class/leds/status/trigger +                        } +                ;; +        esac  }  | 
