Hi everybody I've found that some routers are not turning on and off their LEDs properly. I've tested it on Edimax br-610k. The problem is that their LED is not switching on if brightness is not set to 255 (their max_brightness level) in sysfs. Values <255 are ignored.
I've made simple patch for led management scripts. It now checks the max_brightness value from sysfs and sets LED to maximum brightness when it should be turned on. Hope you find it useful! Best regards, Diff below: diff -cNrB --exclude .svn attitude_adjustment_12.09.orig/package/base-files/files/etc/init.d/led attitude_adjustment_12.09.new/package/base-files/files/etc/init.d/led *** attitude_adjustment_12.09.orig/package/base-files/files/etc/init.d/led 2014-05-25 14:42:48.378219406 +0200 --- attitude_adjustment_12.09.new/package/base-files/files/etc/init.d/led 2014-05-25 15:01:16.599714779 +0200 *************** *** 13,18 **** --- 13,19 ---- local delayon local delayoff local interval + local max_brightness config_get sysfs $1 sysfs config_get name $1 name "$sysfs" *************** *** 25,35 **** config_get interval $1 interval "50" config_get port_state $1 port_state [ -e /sys/class/leds/${sysfs}/brightness ] && { echo "setting up led ${name}" [ "$default" != nil ] && { [ $default -eq 1 ] && ! echo 1 >/sys/class/leds/${sysfs}/brightness [ $default -eq 1 ] || echo 0 >/sys/class/leds/${sysfs}/brightness } --- 26,38 ---- config_get interval $1 interval "50" config_get port_state $1 port_state + max_brightness = `cat /sys/class/leds/${sysfs}/max_brightness` + [ -e /sys/class/leds/${sysfs}/brightness ] && { echo "setting up led ${name}" [ "$default" != nil ] && { [ $default -eq 1 ] && ! echo $max_brightness >/sys/class/leds/${sysfs}/brightness [ $default -eq 1 ] || echo 0 >/sys/class/leds/${sysfs}/brightness } diff -cNrB --exclude .svn attitude_adjustment_12.09.orig/package/base-files/files/sbin/led.sh attitude_adjustment_12.09.new/package/base-files/files/sbin/led.sh *** attitude_adjustment_12.09.orig/package/base-files/files/sbin/led.sh 2014-05-25 14:42:48.398219505 +0200 --- attitude_adjustment_12.09.new/package/base-files/files/sbin/led.sh 2014-05-25 15:01:38.711824427 +0200 *************** *** 7,17 **** do_led() { local name local sysfs config_get name $1 name config_get sysfs $1 sysfs [ "$name" == "$NAME" -o "$sysfs" = "$NAME" -a -e "/sys/class/leds/${sysfs}" ] && { [ "$ACTION" == "set" ] && ! echo 1 >/sys/class/leds/${sysfs}/brightness \ || echo 0 >/sys/class/leds/${sysfs}/brightness exit 0 } --- 7,19 ---- do_led() { local name local sysfs + local max_brightness config_get name $1 name config_get sysfs $1 sysfs + max_brightness = `cat /sys/class/leds/${sysfs}/max_brightness` [ "$name" == "$NAME" -o "$sysfs" = "$NAME" -a -e "/sys/class/leds/${sysfs}" ] && { [ "$ACTION" == "set" ] && ! echo $max_brightness >/sys/class/leds/${sysfs}/brightness \ || echo 0 >/sys/class/leds/${sysfs}/brightness exit 0 -- Karol Pucyński
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel