diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-12-21 13:47:50 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-12-21 13:47:50 +0000 |
commit | 1b259a238750c4820d9df4e2069bf50e671ae6b0 (patch) | |
tree | f3aac444b274316ee34a400aff1ec938e678d04e | |
parent | 5fb086db47ffd1126066affe9abeb253512706b8 (diff) |
[lantiq] improve button handling
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34823 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh | 50 |
1 files changed, 39 insertions, 11 deletions
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh b/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh index e6dcb347f1..4b305fbdfb 100644 --- a/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh +++ b/target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh @@ -4,21 +4,49 @@ . /lib/functions.sh +logger "$BUTTON pressed for $SEEN seconds" + +local rfkill_state=0 + +wifi_rfkill_set() { + uci set wireless.$1.disabled=$rfkill_state +} + +wifi_rfkill_check() { + local disabled + config_get disabled $1 disabled + [ "$disabled" = "1" ] || rfkill_state=1 +} + case "${BUTTON}" in reset) - logger "reset pressed" - echo "REBOOT" > /dev/console - sleep 3 - sync - reboot + if [ "$SEEN" -lt 1 ] + then + echo "REBOOT" > /dev/console + sync + reboot + elif [ "$SEEN" -gt 5 ] + then + echo "FACTORY RESET" > /dev/console + firstboot && reboot & + fi ;; - BTN_1) - logger "factory pressed" - echo "FACTORY RESET" > /dev/console - jffs2_mark_erase "rootfs_data" - sync - reboot + + wps) + for dir in /var/run/hostapd-*; do + [ -d "$dir" ] || continue + hostapd_cli -p "$dir" wps_pbc + done + ;; + + rfkill) + config_load wireless + config_foreach wifi_rfkill_check wifi-device + config_foreach wifi_rfkill_set wifi-device + uci commit wireless + wifi up ;; + *) logger "unknown button ${BUTTON}" ;; |