summaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-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 e6dcb347f..4b305fbdf 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}"
;;