Операция проводилась на роутере 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
