openwrt/target/linux/bcm53xx/base-files/etc/diag.sh
Rafał Miłecki 86e5a6d985 bcm53xx: fix fallback code for picking status LED
Looking for a wrong LED file name was stopping this code from find any
LED. This affects devices with only a red/amber power LED.

Fixes: 3aaee1ba02 ("bcm53xx: failsafe support")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2018-02-27 16:52:25 +01:00

43 lines
812 B
Bash

#!/bin/sh
. /lib/functions/leds.sh
get_status_led() {
local status_led_file
# There may be more than one color of power LED, try to avoid amber/red
status_led_file=$(find /sys/class/leds/ -name "*:power" -a ! -name "*:amber:*" -a ! -name "*:red:*" | head -n1)
if [ -d "$status_led_file" ]; then
status_led=$(basename $status_led_file)
return
fi;
# Now just pick any power LED
status_led_file=$(find /sys/class/leds/ -name "*:power" | head -n1)
if [ -d "$status_led_file" ]; then
status_led=$(basename $status_led_file)
return
fi;
}
set_state() {
get_status_led
[ -z "$status_led" ] && return
case "$1" in
preinit)
status_led_blink_preinit
;;
failsafe)
status_led_blink_failsafe
;;
preinit_regular)
status_led_blink_preinit_regular
;;
done)
status_led_on
;;
esac
}