[ -e /sys/class/leds/${sysfs}/brightness ] && {
echo "setting up led ${name}"
+ printf "%s %s %d\n" \
+ "$sysfs" \
+ "$(sed -ne 's/^.*\[\(.*\)\].*$/\1/p' /sys/class/leds/${sysfs}/trigger)" \
+ "$(cat /sys/class/leds/${sysfs}/brightness)" \
+ >> /var/run/led.state
+
[ "$default" = 0 ] &&
echo 0 >/sys/class/leds/${sysfs}/brightness
echo $port_state > /sys/class/leds/${sysfs}/port_state
;;
- "morse")
- echo $message > /sys/class/leds/${sysfs}/message
- echo $delay > /sys/class/leds/${sysfs}/delay
- ;;
-
"gpio")
echo $gpio > /sys/class/leds/${sysfs}/gpio
echo $inverted > /sys/class/leds/${sysfs}/inverted
;;
switch[0-9]*)
- local port_mask
+ local port_mask speed_mask
config_get port_mask $1 port_mask
[ -n "$port_mask" ] && \
echo $port_mask > /sys/class/leds/${sysfs}/port_mask
+ config_get speed_mask $1 speed_mask
+ [ -n "$speed_mask" ] && \
+ echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask
;;
esac
}
start() {
[ -e /sys/class/leds/ ] && {
+ [ -s /var/run/led.state ] && {
+ local led trigger brightness
+ while read led trigger brightness; do
+ [ -e "/sys/class/leds/$led/trigger" ] && \
+ echo "$trigger" > "/sys/class/leds/$led/trigger"
+
+ [ -e "/sys/class/leds/$led/brightness" ] && \
+ echo "$brightness" > "/sys/class/leds/$led/brightness"
+ done < /var/run/led.state
+ rm /var/run/led.state
+ }
+
config_load system
config_foreach load_led led
}