X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/7aa11efc1796c29d446eca99ec7d9bc7ed2c0072..9dfcd7e5e27c47a9d16323e055092ce1a9abf931:/target/linux/ar7/base-files/etc/diag.sh?ds=sidebyside diff --git a/target/linux/ar7/base-files/etc/diag.sh b/target/linux/ar7/base-files/etc/diag.sh index 22acc71ab..b8e4dc874 100644 --- a/target/linux/ar7/base-files/etc/diag.sh +++ b/target/linux/ar7/base-files/etc/diag.sh @@ -1,19 +1,34 @@ #!/bin/sh # Copyright (C) 2007 OpenWrt.org -set_led() { - local led="$1" - local state="$2" - [ -d "/sys/class/leds/ar7:$led" ] && echo "$state" > "/sys/class/leds/ar7:$led/brightness" -} +# 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 set_state() { - case "$1" in - preinit) - set_led status 1 - ;; - 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 + } + ;; + 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 }