led 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/sh /etc/rc.common
  2. # (C) 2008 openwrt.org
  3. START=60
  4. load_led() {
  5. local name
  6. local sysfs
  7. local trigger
  8. local dev
  9. local mode
  10. local default
  11. local delayon
  12. local delayoff
  13. config_get name $1 name
  14. config_get sysfs $1 sysfs
  15. config_get trigger $1 trigger
  16. config_get dev $1 dev
  17. config_get mode $1 mode
  18. config_get default $1 default
  19. config_get delayon $1 delayon
  20. config_get delayoff $1 delayoff
  21. [ -e /sys/class/leds/${sysfs}/brightness ] && {
  22. logger "setting up led : ${name:-$sysfs}"
  23. [ -n "$default" ] && {
  24. [ $default -eq 1 ] &&
  25. echo 1 >/sys/class/leds/${sysfs}/brightness
  26. [ $default -eq 1 ] ||
  27. echo 0 >/sys/class/leds/${sysfs}/brightness
  28. }
  29. [ -z "$trigger" ] && trigger=none
  30. echo $trigger > /sys/class/leds/${sysfs}/trigger
  31. [ "$trigger" == "netdev" -a -n "$dev" ] && {
  32. [ -z "$mode" ] && mode=link
  33. echo $dev > /sys/class/leds/${sysfs}/device_name
  34. echo $mode > /sys/class/leds/${sysfs}/mode
  35. }
  36. [ "$trigger" == "timer" ] && {
  37. [ -n "$delayon" ] && echo $delayon > /sys/class/leds/${sysfs}/delay_on
  38. [ -n "$delayoff" ] && echo $delayoff > /sys/class/leds/${sysfs}/delay_off
  39. }
  40. }
  41. }
  42. start() {
  43. [ -e /sys/class/leds/ ] && {
  44. config_load system
  45. config_foreach load_led led
  46. }
  47. }