Операция проводилась на роутере TP-Link TL-WR1043ND с прошивкой OpenWrt Backfire 10.03.1 (r29592) по инструкции с официального сайта.
Подключаемся к роутеру по ssh и создаем директорию
# mkdir -p /etc/hotplug.d/button
переходим в эту директорию
# cd /etc/hotplug.d/button
создаем в ней файл
# touch 00-button
и вписываем туда
# vi 00-button
следующие строки
. /etc/functions.sh do_button () { local button local action local handler local min local max config_get button $1 button config_get action $1 action config_get handler $1 handler config_get min $1 min config_get max $1 max [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && { [ -z "$min" -o -z "$max" ] && eval $handler [ -n "$min" -a -n "$max" ] && { [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler } } } config_load system config_foreach do_button button
в файл
# vi /etc/config/system
дописываем следующие строки
config button option 'button' 'BTN_1' option 'action' 'pressed' option 'handler' '/usr/bin/wifionoff'
переходим в директорию
# cd /usr/bin
создаем файл
# touch wifionoff
меняем права доступа
# chmod 777 wifionoff
вписываем туда
# vi wifionoff
следующие строки
#!/bin/sh
SW=$(uci -q get wireless.@wifi-device[0].disabled)
[ "$SW" == "1" ] && uci set wireless.@wifi-device[0].disabled=0
[ "$SW" == "1" ] || uci set wireless.@wifi-device[0].disabled=1
wifi
перезагружаем роутер
# reboot