Step 1: Нужно создать конфигурационный файл с настройками точки_доступа+клиента и просто точки доступа
cp /etc/config/wireless /etc/config/wireless.ap+sta
wireless.ap+sta должен содержать настройки клиента и точки доступа, например:
config wifi-device radio0 option type mac80211 option channel 11 option hwmode 11g option path 'platform/ar933x_wmac' option htmode HT20 # REMOVE THIS LINE TO ENABLE WIFI: option disabled 1 config wifi-iface option device 'radio0' option network 'lan' option mode 'ap' option ssid 'OpenWRT' option encryption 'psk2' option key '00000000' config wifi-iface option network 'wwan' option ssid 'Access Point' option encryption 'psk2' option device 'radio0' option mode 'sta' option bssid '00:00:00:00:00:00' option key '00000000'
cp /etc/config/wireless /etc/config/wireless.ap-only
wireless.ap-only должен содержать настройки только точки доступа
config wifi-device radio0 option type mac80211 option channel 11 option hwmode 11g option path 'platform/ar933x_wmac' option htmode HT20 # REMOVE THIS LINE TO ENABLE WIFI: option disabled 1 config wifi-iface option device radio0 option network lan option mode ap option ssid OpenWrt option encryption none
Обязательно установить iwinfo
opkg iwinfo (установить iwinfo)
Step 2: Создать файл fix_sta_ap.sh
Поместить его в /usr/local/bin/
#!/bin/sh # # Fix loss of AP when STA (Client) mode fails by reverting to default # AP only configuration. Default AP configuration is assumed to be in # /etc/config/wireless.ap-only # TIMEOUT=30 SLEEP=3 sta_err=0 while [ $(iwinfo wlan0-1 info | grep -c "ESSID: unknown") -ge 1 ]; do let sta_err=$sta_err+1 if [ $((sta_err * SLEEP)) -ge $TIMEOUT ]; then cp /etc/config/wireless.ap-only /etc/config/wireless wifi up # uncomment the following lines to try AP+STA after reboot # sleep 3 # cp /etc/config/wireless.ap+sta /etc/config/wireless break fi sleep $SLEEP done
Должна быть сеть клиента (указать номер сети вместо wlan0-1):
iwinfo wlan0-1 info | grep -c "ESSID: unknown"
(Сеть клиента - то есть роутера к которому подключается наш mr3020)
Step 3: Дать права файлу fix_sta_ap.sh
mkdir -p /usr/local/bin/
chmod +x /usr/local/bin/fix_sta_ap.sh
Step 4: Добавить строчку об fix_sta_ap.sh в /etc/rc.local
vi /etc/rc.local (можно сделать при помощи vi или другого редактора)
# Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. /bin/sh /usr/local/bin/fix_sta_ap.sh > /dev/null & exit 0
Всё. Теперь если роутер не увидит точку доступа в течение 30 секунд, то он загрузит конфиг точки доступа по умолчанию.