|
|
|
@ -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" |
|
|
|
|
if [ "$SEEN" -lt 1 ] |
|
|
|
|
then |
|
|
|
|
echo "REBOOT" > /dev/console |
|
|
|
|
sleep 3 |
|
|
|
|
sync |
|
|
|
|
reboot |
|
|
|
|
;; |
|
|
|
|
BTN_1) |
|
|
|
|
logger "factory pressed" |
|
|
|
|
elif [ "$SEEN" -gt 5 ] |
|
|
|
|
then |
|
|
|
|
echo "FACTORY RESET" > /dev/console |
|
|
|
|
jffs2_mark_erase "rootfs_data" |
|
|
|
|
sync |
|
|
|
|
reboot |
|
|
|
|
firstboot && reboot & |
|
|
|
|
fi |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
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}" |
|
|
|
|
;; |
|
|
|
|