From 3973731301776ab81546fe09058a9df470aec666 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 21 Dec 2012 13:47:50 +0000 Subject: [PATCH] [lantiq] improve button handling git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34823 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../etc/hotplug.d/button/10-generic.sh | 50 +++++++++++++++---- 1 file 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}" ;;