Posted: Thu Jan 07, 2016 8:35 Post subject: Re: DIR-300 Rev A1, как вкл/выкл WiFi кнопко
Долго не разбирался, попробуйте сами еще раз посмотреть на данный скрипт и на его часть, которая ниже
Code:
# Check WLAN status.
check_wlan_status
# Process #1: Watch SES button.
while :; do
check_wlan_status
WIFI=`nvram get ath0_net_mode`
SES_BUTTON_IN=`cat /proc/gpio/${SES_BUTTON}_in`
[ "$SES_BUTTON_IN" = "1" ] && {
if [ "$WIFI" == "disabled" ]; then
# Enable WIFI.
set_leds blue
nvram set ath0_net_mode=mixed
ifconfig ath0 up
else
# Disable WIFI.
set_leds red
nvram set ath0_net_mode=disabled
ifconfig ath0 down
fi
echo "0" > /proc/gpio/${SES_BUTTON}_in
sleep 2
}
sleep 1
done &
Команды nvram set ath0_net_mode запись переменной в память, проверьте ее выполнение в ручную, т.е. выполнить и перегрузиться :
nvram set ath0_net_mode=disabled
disabled - запретить, и установить режим - mixed
nvram set ath0_net_mode=mixed
Примечание :
set - установить
но думаю не из-за этого, так как для запоминания чтоб не изменялось при перезагрузке нужна еще команда :
nvram commit
а ее тут нет.
А вот завязку на gpio так же проверить управление контактами проца возможна привязка к gpio LED или gpio SES_BUTTON, но к кнопке вряд ли :
gpio enable 2
и
gpio disable 2
или
gpio enable 4
и
gpio disable 4
да я понимаю что скрипт делает, но видимо что-то в системе периодически выполняет nvram commit
пробовал отвязаться от nvram set ath0_net_mode, заменил на nvram set wifi и в зависимости от установки это переменной - гасил/поднимал интерфейс в скрипте
но тогда, что-то в системе периодически проверяет ath0_net_mode и поднимает wifi
да я понимаю что скрипт делает, но видимо что-то в системе периодически выполняет nvram commit
Сами подумайте зачем?
В WEB делаются настройки они и записываются - например по wi-fi.
baza63 wrote:
пробовал отвязаться от nvram set ath0_net_mode, заменил на nvram set wifi и в зависимости от установки это переменной - гасил/поднимал интерфейс в скрипте но тогда, что-то в системе периодически проверяет ath0_net_mode и поднимает wifi
Естественно есть сервисы в которых жестко, прописана проверка именно данной переменной ath0_net_mode
Попробуйте при включенном wi-fi выполнить :
Code:
nvram set ath0_net_mode=disabled
nvram commit
ifconfig ath0 down
и перегрузить роутер, он должен загрузиться роутер.
Посмотрите и проверьте просто работу только gpio портов.
Вопрос - это все вам для чего, если нужно в определенное время чтоб wi-fi работал, то можно проще.