summaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/base-files/etc/hotplug.d
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/lantiq/base-files/etc/hotplug.d')
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/button/10-generic.sh49
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom7
2 files changed, 43 insertions, 13 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 b2fdda23f..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,18 +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
- BTN_0)
- logger "reset pressed"
- sync
- reboot
+ reset)
+ 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"
- 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}"
;;
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
index 1eee55e22..e3509bdd2 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -12,7 +12,7 @@ rt2x00_eeprom_extract() {
local count=$3
local mtd
- . /etc/functions.sh
+ . /lib/functions.sh
mtd=$(find_mtd_part $part)
[ -n "$mtd" ] || \
@@ -23,12 +23,11 @@ rt2x00_eeprom_extract() {
}
[ -e /lib/firmware/$FIRMWARE ] && exit 0
-
-. /lib/lantiq.sh
+. /lib/functions/lantiq.sh
case "$FIRMWARE" in
"RT2860.eeprom" )
- local board=$(lantiq_board_name)
+ local board=$(lantiq_board_id)
case $board in
ARV7525PW|ARV752DPW)
rt2x00_eeprom_extract "board_config" 1040 272