Skip to content

Commit 0401fc0

Browse files
committed
base-files: change LED default behaviour
makes /etc/init.d/led not change brightness by default To this point LEDs were being turned off by default before setting a trigger. Most kernel triggers set operational brightness to max_brightness if it was set to 0 initially. This caused RGB LEDs (or LEDs with non-binary brightness in general) to ignore 'option brightness' in uci unless 'option default 1' was set. Signed-off-by: Tomáš Macholda <[email protected]>
1 parent aa78fa7 commit 0401fc0

1 file changed

Lines changed: 16 additions & 5 deletions

File tree

  • package/base-files/files/etc/init.d

package/base-files/files/etc/init.d/led

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ load_led() {
5959
config_get dev $1 dev
6060
config_get ports $1 port
6161
config_get mode $1 mode
62-
config_get_bool default $1 default "0"
62+
config_get_bool default $1 default "nil"
6363
config_get delayon $1 delayon
6464
config_get delayoff $1 delayoff
6565
config_get interval $1 interval "50"
@@ -103,13 +103,24 @@ load_led() {
103103
}
104104
printf "\n" >> /var/run/led.state
105105

106-
[ "$default" = 0 ] &&
106+
case $default in
107+
"0")
107108
echo 0 >/sys/class/leds/${sysfs}/brightness
109+
;;
108110

109-
[ "$default" = 1 ] && {
110-
[ -z "$brightness" ] && brightness="$(cat /sys/class/leds/${sysfs}/max_brightness)"
111+
"1")
112+
[ -z "$brightness" ] && \
113+
brightness="$(cat /sys/class/leds/${sysfs}/max_brightness)"
111114
echo "$brightness" > /sys/class/leds/${sysfs}/brightness
112-
}
115+
;;
116+
117+
*)
118+
if [ -n "$brightness" ]; then
119+
brightness="$(cat /sys/class/leds/${sysfs}/max_brightness)"
120+
echo $(brightness) >/sys/class/leds/${sysfs}/brightness
121+
fi
122+
;;
123+
esac
113124

114125
led_color_set "$1" "$sysfs"
115126

0 commit comments

Comments
 (0)