diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index c8b253da5b..df221cc26c 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -366,11 +366,12 @@ generate_led() { ;; switch) - local port_mask speed_mask - json_get_vars port_mask speed_mask + local port_mask speed_mask mode + json_get_vars port_mask speed_mask mode uci -q batch <<-EOF set system.$cfg.port_mask='$port_mask' set system.$cfg.speed_mask='$speed_mask' + set system.$cfg.mode='$mode' EOF ;; diff --git a/package/base-files/files/etc/init.d/led b/package/base-files/files/etc/init.d/led index c790e3e181..a3f1224a1a 100755 --- a/package/base-files/files/etc/init.d/led +++ b/package/base-files/files/etc/init.d/led @@ -20,7 +20,7 @@ load_led() { config_get trigger $1 trigger "none" config_get dev $1 dev config_get ports $1 port - config_get mode $1 mode "link" + config_get mode $1 mode config_get_bool default $1 default "nil" config_get delayon $1 delayon config_get delayoff $1 delayoff @@ -71,7 +71,7 @@ load_led() { "netdev") [ -n "$dev" ] && { echo $dev > /sys/class/leds/${sysfs}/device_name - echo $mode > /sys/class/leds/${sysfs}/mode + echo "${mode:-link}" > /sys/class/leds/${sysfs}/mode echo $interval > /sys/class/leds/${sysfs}/interval } ;; @@ -110,6 +110,8 @@ load_led() { config_get speed_mask $1 speed_mask [ -n "$speed_mask" ] && \ echo $speed_mask > /sys/class/leds/${sysfs}/speed_mask + [ -n "$mode" ] && \ + echo "$mode" > /sys/class/leds/${sysfs}/mode ;; esac } diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh index 7fa328ac20..315df7b708 100755 --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -442,11 +442,13 @@ ucidef_set_led_switch() { local trigger_name="$4" local port_mask="$5" local speed_mask="$6" + local mode="$7" _ucidef_set_led_common "$1" "$2" "$3" json_add_string trigger "$trigger_name" json_add_string type switch + json_add_string mode "$mode" json_add_string port_mask "$port_mask" json_add_string speed_mask "$speed_mask" json_select ..