diff options
author | John Crispin <john@openwrt.org> | 2012-12-21 13:47:50 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2012-12-21 13:47:50 +0000 |
commit | 59cc6d9dddcead0f72277d0d13eb0dd773741349 (patch) | |
tree | 32d725466a0ca8fec260b2a460e9d2172aa0578d /target/linux/lantiq/base-files/etc/hotplug.d/button | |
parent | 7ce4c81647c98eb8105486b17f599b6933b22b63 (diff) | |
download | upstream-59cc6d9dddcead0f72277d0d13eb0dd773741349.tar.gz upstream-59cc6d9dddcead0f72277d0d13eb0dd773741349.tar.bz2 upstream-59cc6d9dddcead0f72277d0d13eb0dd773741349.zip |
improve button handling
SVN-Revision: 34823
Diffstat (limited to 'target/linux/lantiq/base-files/etc/hotplug.d/button')
-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}" ;; |