summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-12-21 13:47:50 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-12-21 13:47:50 +0000
commit1b259a238750c4820d9df4e2069bf50e671ae6b0 (patch)
treef3aac444b274316ee34a400aff1ec938e678d04e
parent5fb086db47ffd1126066affe9abeb253512706b8 (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.sh50
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}"
;;