роутер WL500gp 1.9.2.7-rtn-r3702
Если wifi выключен в nvram (Wireless->Advanced->Enable Radio?->No),
то попытки включить его командой wl radio on или через web (Status & log->WiFi->enable) не приносят удачи.
После некоторых разбирательств нашел следующие отличия при включении wifi в Wireless->Advanced->Enable Radio?->Yes + последующей перезагрузки и при включении его в runtime (wl radio on) из иначально выключенного состояния (Wireless->Advanced->Enable Radio?->No).
В первом случае wl status выдает:
Code:
SSID: "wireless"
Mode: Managed RSSI: 0 dBm SNR: 0 dB noise: -10 dBm Channel: 6
BSSID: 00:22:15:02:EF:FC Capability: ESS ShortSlot
Supported Rates: [ 1(b) 2(b) 5.5(b) 6 9 11(b) 12 18 24 36 48 54 ]
Во втором, после wl radio on, wl status выдает:
Code:
SSID: "wireless"
Mode: Ad Hoc RSSI: 0 dBm SNR: 0 dB noise: 0 dBm Channel: 1
BSSID: 00:22:15:02:EF:FC Capability: IBSS
Supported Rates: [ 1(b) 2(b) 5.5(b) 6 9 11(b) 12 18 24 36 48 54 ]
Как видно, основное отличие в несовпадении режима (Mode: Managed vs Ad Hoc). Так же не совпадает номер канала.
Заставить wifi работать без перезагрузки при изначально выключенном состоянии получилось следующим образом:
Code:
wl radio on
wl bss up
После чего написал небольшой скрипт, который делает приблизительно то же, только считывает значения bss и channel из nvram:
Code:
#!/bin/sh
# read channel
nvchan=`nvram get wl_channel`
if [ "$nvchan" == "0" ]; then
nvchan="6"
fi
# set channel if needed
chan=`/usr/sbin/wl status | sed -ne '2p' | awk '{ print $13 }'`
if [ "$chan" != "$nvchan" ]; then
/usr/sbin/wl channel $nvchan
fi
# enable radio
/usr/sbin/wl radio on
# read BSS
nvbss=`nvram get wl_bss_enabled`
if [ "$nvbss" == "1" ]; then
nvbss="up"
else
nvbss="down"
fi
# set BSS if needed
bss=`/usr/sbin/wl bss`
if [ "$bss" != "$nvbss" ]; then
/usr/sbin/wl bss $nvbss
fi
После запуска скрипта wl status выдает правильные значения mode и channel.
Вопрос следующий, насколько такой способ run-time включения wifi надежен?
Надо ли устанавливать еще какие-нибудь параметры wifi?
Попробовал почитать значения уровня сигнала и других параметров командой wl [arg], они, вроде, изначально правлиьно установлены.
Можно как-нибудь поправить ситуацию с включением wifi в прошивке, чтобы Status & Log -> WiFi -> enable работал с изначально выключенным wifi?
Вариант с включением в Wireless->Advanced->Enable Radio?->Yes и убиранием галочек со всех дней недели, когда wifi должен запускаться, меня не очень устраивает. Он хоть и работает, но при этом wifi включается каждый раз секунд на 20 при включениии питания роутера.
Хотелось бы иметь возможность runtime управления с изначально выключенным wifi.
Спасибо,
В.