Переключение Wi-Fi кнопкой на WDR4900

В корпусе роутера TP-Link WDR4900 имеется целая одна аппаратная кнопка, промаркированная как “WPS/Reset”. Задействуем ее в OpenWrt для переключения Wi-Fi передатчиков, а на случай непредвиденностей добавим на эту же кнопку функцию самоуничтожения сброса настроек (командой firstboot).

Составим скрипт 00-wifi и разместим его в каталог /etc/hotplug.d/button:

# Hardware button handler for WDR4900
# Copyright (C) 2013 Erinome.net

. /lib/functions/leds.sh

if [ "$BUTTON" = "reset" ] ; then
	if [ "$ACTION" = "released" ] ; then
		rlock="/var/run/.resetreq.lock"
		if [ -e $rlock ] ; then
			if [ $SEEN -ge 15 ] ; then
				logger 'hotplug.button: performing reset'
				led_timer "tp-link:blue:system" 500 500
				firstboot -y
				reboot
			else
				logger 'hotplug.button: reset cancelled'
				led_on "tp-link:blue:system"
				rm $rlock
			fi
			exit
		fi

		if [ $SEEN -ge 15 ] ; then
			logger 'hotplug.button: reset requested'
			led_timer "tp-link:blue:system" 100 100
			touch $rlock
			exit
		fi

		if [ $SEEN -ge 2 ] ; then
			radionum="radio1"
		else
			radionum="radio0"
		fi

		logger "hotplug.button: switching wireless $radionum"
		case "$(uci -q get wireless.$radionum.disabled)" in
			1)
				uci set wireless.$radionum.disabled=0
				wifi up $radionum
				;;
			*)
				uci set wireless.$radionum.disabled=1
				wifi down $radionum
				;;
		esac
	fi
fi

Теперь возможны следующие действия:

  • Короткое нажатие (менее 2 с) – включает или отключает Wi-Fi передатчик на 5 ГГц;
  • Среднее нажатие (более 2 с) – включает или отключает Wi-Fi на 2.4 ГГц;
  • Длительное нажатие (более 15 с) – активирует режим ожидания подтверждения сброса.

При переходе в этот режим системный светодиод (второй слева на передней панели) начинает мигать с частотой 10 Гц. Для подтверждения сброса и перехода к исходным настройкам необходимо повторно нажать и удерживать кнопку не менее 15 с, для отмены сброса необходимо просто однократно нажать на ту же кнопку. В процессе сброса системный светодиод мигает с частотой 2 Гц, после выполнения возврата к исходным настройкам роутер автоматически перезапустится.

Чтобы данный скрипт не пропал при обновлении прошивки, не забудьте добавить его в /etc/sysupgrade.conf.

Данный скрипт позволяет быстро и относительно удобно переключать состояние беспроводных сетей, а также выполнить ресет настроек на случай допущения серьезных ошибок при переконфигурировании устройства.

This entry was posted in Сеть и интернет and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>