Для прошивки OpenWRT для роутеров существует множество различных пакетов. Больше всего мне нравятся блокировщик рекламы adblock и отключение wi-fi по расписанию Wi-Fi Schedule. К счастью, эти пакеты также предлагают luci пакеты для того, чтобы можно было изменять настройки из панели управления роутера.
Ещё один полезный для меня пакет -
wifitoggle, который позволяет включать/выключать Wi-Fi на роутеру по нажатию кнопки на нём. При этом данная кнопка настраивается. Поскольку большинство роутеров идёт с кнопкой WPS, пользоваться которой всё равно не приходится (из-за небезопасности WPS), то проще всего использовать именно эту кнопку.
Установить wifitoggle можно и из панели управления роутера (зайдите на
https://openwrt.lan и выберите в меню System -> Software). Также пакет можно установить и в командой строке, тем более что настраивать его придётся там же.
Как настроить включение Wi-Fi на роутере с прошивкой OpenWRT с автоматическим выключением по таймеру
- Для начала подключитесь к https://openwrt.lan с логином root и вашем паролем, используя SSH клиент (например, WinSCP для Windows, Putty для Linux). В Ubuntu достаточно выполнить ssh в Ubuntu в терминале:
ssh root@openwrt.lan
После этого нужно ввести пароль от своего root аккаунта на роутере. - Для установки пакета введите команду
opkg update && opkg install wifitoggle - Посмотреть настройки можно при помощи команды uci show wifitoggle
uci show wifitoggle
Например, мои настройки выглядят так:
wifitoggle.@wifitoggle[0]=wifitoggle
wifitoggle.@wifitoggle[0].button='wps'
wifitoggle.@wifitoggle[0].persistent='0'
wifitoggle.@wifitoggle[0].timer='7200'
wifitoggle.@wifitoggle[0].led_enable_trigger='timer'
wifitoggle.@wifitoggle[0].led_enable_delayon='500'
wifitoggle.@wifitoggle[0].led_enable_delayoff='500'
wifitoggle.@wifitoggle[0].led_disable_default='0'
- По умолчанию timer имеет значение 600, что означает, что Wi-Fi автоматически отключится через 600 секунд (10 минут) после нажатия на кнопку WPS. Я изменил значение на 7200 секунд (2 часа) при помощи команды
uci set wifitoggle.@wifitoggle[0].timer=7200
Чтобы выключить таймер, нужно использовать ноль вместо секунд:
uci set wifitoggle.@wifitoggle[0].timer=0
- Также настроил автоматическое выключение Wi-Fi при помощи следующих команд
uci set wireless.@wifi-device[0].disabled=1
uci set wifitoggle.@wifitoggle[0].persistent=0
На Linksys EA3500 работающий Wi-Fi может быть не на radio0, а на radio1 или radio2. Конечно же при этом Wi-Fi Toggle начинает работать включать/выключать Wi-Fi при нажатии на кнопку WPS, только если выполнить одну из следующих команд:
uci set wireless.@wifi-device[1].disabled=1
uci set wireless.@wifi-device[2].disabled=1
Для внесения изменений введите команду
uci commit - Можно показывать статус работы Wi-Fi при помощи светодиода. Для вывода списка светодиодов можно использовать команду
ls /sys/class/leds/
У роутера Linksys EA3500 в списке появляется всего один диод. А вот WNR3500L их гораздо больше. В том числе есть диод для Wi-Fi и для WPS. Я использовал светодиод для WPS, а не Wi-Fi
uci set wifitoggle.@wifitoggle[0].led_sysfs="название_диода"
По умолчанию Wi-Fi светодиод на WNR3500L при использовании wifitoggle работал довольно странно. Он переставал постоянно гореть при включенном Wi-Fi, но зато мерцал при передаче данных на подключенное устройство по Wi-Fi.
С WPS диодом происходила другая странность. Он горел при выключенном Wi-Fi, независимо от значения wifitoggle.@wifitoggle[0].led_disable_default равного 1 или 0 и не горел при включённом. Перезагрузка роутера не помогала. Помогите разобраться. - Не всегда кнопка на роутере называется WPS. Чтобы показать названия кнопок, выполните в командой строке:
mkdir -p /etc/hotplug.d/button
cat << "EOF" > /etc/hotplug.d/button/buttons
logger "the button was ${BUTTON} and the action was ${ACTION}"
EOF
Далее нажмите кнопку на роутере, после чего выполните команду
logread
Для кнопки wps у меня получилось
Thu Feb 20 09:02:07 2020 user.notice root: the button was wps and the action was pressed
Thu Feb 20 09:02:07 2020 user.notice root: the button was wps and the action was released
Кстати, openwrt позволяет вешать различные действия на кнопки при коротком и длинном нажатии.
p.s. Тестирование Wi-Fi Toggle проводилось на OpenWRT 19.07.1 - 19.07.4. Рекомендую обновить версию прошивки OpenWRT до последней стабильной.