Wi-Fi Old: различия между версиями

Материал из Wiren Board
(не показаны 32 промежуточные версии 4 участников)
Строка 1: Строка 1:
<languages/>
<translate>
<!--T:1-->
==Режимы работы==
==Режимы работы==
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
Строка 10: Строка 7:
В очень редких случаях возможна несовместимость адаптера Wi-Fi в Wiren Board с некоторыми другими устройствами Wi-Fi. Это общая проблема реализаций Wi-Fi на чипсетах разных производителей. Если вы столкнулись с необъяснимыми проблемами при работе, рекомендуем поменять настройки шифрования, ширины канала и т.п.
В очень редких случаях возможна несовместимость адаптера Wi-Fi в Wiren Board с некоторыми другими устройствами Wi-Fi. Это общая проблема реализаций Wi-Fi на чипсетах разных производителей. Если вы столкнулись с необъяснимыми проблемами при работе, рекомендуем поменять настройки шифрования, ширины канала и т.п.


==Первое подключение по Wi-Fi== <!--T:2-->
==Первое подключение по Wi-Fi==


<!--T:3-->
===Антенны===
# [[File:connectors-sma-rpsma.jpg|thumb|right|300 px|Сравнение разъёмов для антенн Wi-Fi (RP-SMA) и GSM (SMA)]] Прикрутите антенну к разъёму для антенны Wi-Fi.
[[File:connectors-sma-rpsma.jpg|thumb|right|300 px|Сравнение разъёмов для антенн Wi-Fi (RP-SMA) и GSM (SMA)]] Прикрутите антенну к разъёму для антенны Wi-Fi.
#: Без антенны Wi-Fi в контроллерах Wiren Board работает на расстоянии не более одного метра. Чтобы получить стандартный для Wi-Fi радиус работы, нужно подключить к соответствующему разъёму контроллера антенну. Если контроллер находится в щитке (особенно в металлическом) или отдельной комнате, лучше использовать выносную антенну.
Без антенны Wi-Fi в контроллерах Wiren Board работает на расстоянии не более одного метра. Чтобы получить стандартный для Wi-Fi радиус работы, нужно подключить к соответствующему разъёму контроллера антенну. Если контроллер находится в щитке (особенно в металлическом) или отдельной комнате, лучше использовать выносную антенну.
#: Разъём для антенны - стандартный для Wi-Fi [https://en.wikipedia.org/wiki/SMA_connector#Reverse_polarity_SMA RP-SMA] ("гнездо", у GSM-антенн - наоборот).
Разъём для антенны стандартный для Wi-Fi [https://en.wikipedia.org/wiki/SMA_connector#Reverse_polarity_SMA RP-SMA] ("гнездо", у GSM-антенн - наоборот).
# По умолчанию Wiren Board работает в режиме точки доступа:
#* имя точки доступа: ''WirenBoard...''
#* пароль: нет
#* адрес контроллера в созданной сети: ''192.168.42.1''


== Настройка Wi-Fi в Linux == <!--T:4-->
===Подключение к точке доступа===
Контроллер создает Wi-Fi точку доступа и мы можем подключиться к ней:
* Откройте на ноутбуке или телефоне список WiFi точек доступа.
* Выберите из списка точку доступа с именем <code>WirenBoard-XXXXXXXX</code>. Где XXXXXXXX - серийный номер контроллера.
 
При подключении по Wi-Fi контроллер будет доступен по IP-адресу '''192.168.42.1'''.
 
По умолчанию, для подключения к контроллеру по Wi-Fi не требуется пароль, но вы [[#Установка пароля на подключение к точке доступа | можете это изменить]].
 
== Настройка Wi-Fi на контроллере Wiren Board ==


<!--T:5-->
Настройка производится стандартным для Linux Debian способом - через файл <code>/etc/network/interfaces</code>. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть [https://wiki.debian.org/ru/NetworkConfiguration подробная документация].
Настройка производится стандартным для Linux Debian способом - через файл <code>/etc/network/interfaces</code>. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть [https://wiki.debian.org/ru/NetworkConfiguration подробная документация].


=== Настройка в режиме точки доступа === <!--T:6-->
=== Настройка в режиме точки доступа ===


<!--T:7-->
Режим точки доступа включён по умолчанию. Работа в режиме точки доступа обеспечивается демоном '''[https://wireless.wiki.kernel.org/en/users/documentation/hostapd hostapd]'''.
Режим точки доступа включён по умолчанию. Работа в режиме точки доступа обеспечивается демоном '''[https://wireless.wiki.kernel.org/en/users/documentation/hostapd hostapd]'''.


<!--T:8-->
Сперва настраиваем демон <code>hostapd</code>:
Процесс настройки:
# в файле <code>/etc/default/hostapd</code> раскомментируйте строку (то есть удалите знак '''#''' в начале строки)
# Включите режим точки доступа. Для этого:
#:<syntaxhighlight lang="bash">
#* в файле <code>/etc/default/hostapd</code> раскомментируйте строку (то есть удалите знак '''#''' в начале строки)<syntaxhighlight lang="bash">DAEMON_CONF="/etc/hostapd.conf"</syntaxhighlight>
DAEMON_CONF="/etc/hostapd.conf"
#* отредактируйте файл <code>/etc/hostapd.conf</code>, чтобы он выглядел так:<syntaxhighlight lang="bash">
</syntaxhighlight>
# отредактируйте файл <code>/etc/hostapd.conf</code>, чтобы он выглядел так:
#:<syntaxhighlight lang="bash">
interface=wlan0
interface=wlan0
#driver=nl80211 # оставьте эту строку закомментированной
#driver=nl80211 # оставьте эту строку закомментированной
ssid=WirenBoard # вместо WirenBoard можете подставить другое имя для создаваемой точки доступа
ssid=WirenBoard # вместо WirenBoard можете подставить другое имя для создаваемой точки доступа
channel=1
channel=1
wpa=2
wpa_passphrase=your_password # вместо your_password подставьте пароль
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
</syntaxhighlight>
</syntaxhighlight>
# Отредактируйте <code>/etc/network/interfaces</code>:
 
#* раскомментируйте и отредактируйте (или добавьте, если их не было) строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash">
Теперь нужно настроить сам интерфейс. Настройка делается в файле <code>/etc/network/interfaces</code>:
# раскомментируйте и отредактируйте (или добавьте, если их не было) строки, относящиеся к настройке в режиме точки доступа:
#:<syntaxhighlight lang="bash">
iface wlan0 inet static
iface wlan0 inet static
       address 192.168.42.1 # здесь 192.168.42.1  - адрес, по которому в новой сети будет находиться Wiren Board; можете указать другой адрес
       address 192.168.42.1 # здесь 192.168.42.1  - адрес, по которому в новой сети будет находиться Wiren Board; можете указать другой адрес
       netmask 255.255.255.0
       netmask 255.255.255.0
</syntaxhighlight>
</syntaxhighlight>
#* закомментируйте строки, относящиеся к работе в режиме клиента:<syntaxhighlight lang="bash">
# закомментируйте строки, относящиеся к работе в режиме клиента:
#:<syntaxhighlight lang="bash">
#auto wlan0
#auto wlan0
#iface wlan0 inet dhcp  
#iface wlan0 inet dhcp  
Строка 58: Строка 58:
#                wpa-psk  {password}
#                wpa-psk  {password}
</syntaxhighlight>
</syntaxhighlight>
# Выполните команду
 
Выполните команду
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
/etc/init.d/hostapd restart
/etc/init.d/hostapd restart
</syntaxhighlight>
</syntaxhighlight>


=== Настройка в режиме клиента === <!--T:9-->
В итоге у нас получилась открытая точка доступа, для подключения к которой не требуется пароль.


<!--T:10-->
=== Установка пароля на подключение к точке доступа ===
# Отключите режим точки доступа.
Подключитесь к контроллеру по SSH и откройте файл настроек <code>/etc/hostapd.conf</code>, для этого введите команду:
#* Для этого в файле <code>/etc/default/hostapd</code> закомментируйте строку (то есть добавьте знак '''#''' в начало строки)<syntaxhighlight lang="bash">#DAEMON_CONF="/etc/hostapd.conf"</syntaxhighlight> Закомментировать можно командой: <syntaxhighlight lang="bash"> sed -i 's/^DAEMON_CONF/#DAEMON_CONF/' /etc/default/hostapd</syntaxhighlight>
#* И отключите hostapd
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl disable hostapd
nano /etc/hostapd.conf
</syntaxhighlight>.
# Отредактируйте <code>/etc/network/interfaces</code>:
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash">
#iface wlan0 inet static
#      address 192.168.42.1
#      netmask 255.255.255.0
</syntaxhighlight>
#* раскомментируйте и отредактируйте строки (или добавьте, если их не было):<syntaxhighlight lang="bash">
auto wlan0
iface wlan0 inet dhcp
                wpa-ssid {ssid} # вместо {ssid} подставьте имя точки доступа
                wpa-psk  {password} # вместо {password} подставьте пароль
</syntaxhighlight>
Если ssid точки доступа скрыт - то добавьте дополнительно
<syntaxhighlight lang="bash">
                wpa-scan-ssid 1
</syntaxhighlight>
</syntaxhighlight>


Для того чтобы в режиме клиента не выдавать в сеть IP-адреса, отключите DHCP-сервер:<syntaxhighlight lang="bash">
Добавьте в конец файла строки:
systemctl disable dnsmasq
<pre>
systemctl stop dnsmasq
wpa=2
</syntaxhighlight>
wpa_passphrase=your_password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP
</pre>
 
Придумайте свой пароль и замените в файле <code>your_password</code> на него. Сохраните файл нажатием клавиш <code>Ctrl+O</code> и выйдете из редактора <code>Ctrl+X</code>.
 
После этого выполните команду:


# Чтобы применить изменения, выполните команды
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ifdown wlan0
/etc/init.d/hostapd restart
ifup wlan0
</syntaxhighlight>
</syntaxhighlight>


=== Настройка в режиме точки доступа и клиента одновременно === <!--T:11-->
Контроллер применит новые настройки и связь с ним будет потеряна. Нужно будет заново подключиться к контроллеру по WiFi с указанным паролем. Если изменения настроек вы не можете подключиться к контроллеру по WiFi — подключитесь к нему по Ethernet и проверьте настройки в файле <code>/etc/hostapd.conf</code>.
 
=== Настройка в режиме точки доступа и клиента одновременно ===  


<!--T:12-->
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и на некоторых ревизиях WB5. Проверено, что он работает из коробки на Wiren Board с чипом Realtek 8723BU и ядром Linux 4.1.15. Чтобы проверить, выполняются ли эти условия, выполните команды:
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и на некоторых ревизиях WB5. Проверено, что он работает из коробки на Wiren Board с чипом Realtek 8723BU и ядром Linux 4.1.15. Чтобы проверить, выполняются ли эти условия, выполните команды:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 110: Строка 100:
''Если условия не выполнены, возможно, на вашем Wiren Board, всё равно, можно настроить Concurrent Mode. В качестве отправной точки используйте [http://randomstuffidosometimes.blogspot.ru/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html инструкцию].''
''Если условия не выполнены, возможно, на вашем Wiren Board, всё равно, можно настроить Concurrent Mode. В качестве отправной точки используйте [http://randomstuffidosometimes.blogspot.ru/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html инструкцию].''


<!--T:13-->
Если условия выполнены:
Если условия выполнены:
# Выполните команду
# Выполните команду
Строка 125: Строка 114:
     wpa-psk {password} # вместо {password} подставьте пароль
     wpa-psk {password} # вместо {password} подставьте пароль


<!--T:14-->
auto wlan0
auto wlan0
iface wlan0 inet static
iface wlan0 inet static
Строка 132: Строка 120:
</syntaxhighlight>
</syntaxhighlight>


=== Универcальный файл настроек Wi-Fi === <!--T:15-->
=== Отключение режима точки доступа ===
Если вы хотите перевести адаптер в [[#Настройка в режиме клиента | режим клиента]], подключиться к Wi-Fi точке доступа в [[#Подключение к Wi-Fi точке доступа вручную | ручном режиме]] или совсем отключить Wi-Fi на контроллере — отключите режим точки доступа:
#Отключите автоматический запуск сервиса <code>hostapd</code>:
#:<syntaxhighlight lang="bash">
systemctl disable hostapd
</syntaxhighlight>
#Остановите демон <code>hostapd</code>
#:<syntaxhighlight lang="bash">
service hostapd stop
</syntaxhighlight>
# Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента:
#* откройте файл для редактирования
#:<syntaxhighlight lang="bash">
mcedit /etc/network/interfaces
</syntaxhighlight>
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash">
#allow-hotplug wlan0
#iface wlan0 inet static
#  address 192.168.42.1
#  netmask 255.255.255.0
</syntaxhighlight>
# Сохраните и закройте файл настроек.
# Запретите раздачу IP-адресов, для этого остановите DHCP-сервер:
#:<syntaxhighlight lang="bash">
systemctl disable dnsmasq
service dnsmasq stop
</syntaxhighlight>
 
Режим точки доступа отключен, чтобы его включить, выполните инструкции из раздела [[#Настройка в режиме точки доступа | Настройка в режиме точки доступа]].
 
=== Настройка в режиме клиента ===
{{note|note|После настройки точки доступа в режиме клиента, контроллер будет подключаться к точке доступа автоматически при каждой загрузке операционной системы.}}
Вы можете настроить автоматическое подключение контроллера к Wi-Fi точке доступа:
# Отключите точку доступа по инструкции в разделе [[#Отключение режима точки доступа | Отключение режима точки доступа]]
# Откройте файл настроек:
#: <syntaxhighlight lang="bash">
mcedit /etc/network/interfaces
</syntaxhighlight>
# Раскомментируйте и отредактируйте строки (или добавьте, если их не было):
#:<syntaxhighlight lang="bash">
auto wlan0
iface wlan0 inet dhcp
  wpa-ssid ssid # вместо ssid подставьте имя точки доступа
  wpa-psk  password # вместо password подставьте пароль
</syntaxhighlight>
#Если точка доступа скрыта, то добавьте параметр:
#:<syntaxhighlight lang="bash">
  wpa-scan-ssid 1
</syntaxhighlight>
# Сохраните и закройте файл настроек.
# Завершите настройку, для этого перезапустите беспроводной интерфейс командами:
#:<syntaxhighlight lang="bash">
ifdown wlan0 && ifup wlan0
</syntaxhighlight>
 
=== Подключение к Wi-Fi точке доступа вручную ===
{{note|note| Подключение в ручном режиме будет разорвано после перезагрузки контроллера.}}
Если у вас возникла проблема с настройкой автоматического подключения, то вы можете попробовать подключиться к Wi-Fi точке доступа вручную:
# Отключите точку доступа по инструкции в разделе [[#Отключение режима точки доступа | Отключение режима точки доступа]]
# Запустите поиск доступных точек доступа с помощью команды <code>iwlist wlan0 scanning</code>:
#:<syntaxhighlight lang="bash">
~# iwlist wlan0 scanning | grep -i essid
                    ESSID:"DIR-615"
                    ESSID:"MTSRouter_2.4GHz_072433"
                    ESSID:"Smart_box-40B598"
                    ESSID:"TP-Link_0E5AW"
                    ESSID:"TP-LINK_78DC"
</syntaxhighlight>
#: в примере контроллер «видит» пять точек доступа.
# Этот шаг зависит от типа сетевой аутентификации, выбранной в настройках точки доступа, к которой вы хотите подключиться:
#* WPA-PSK:
## Задайте параметры подключения:
##: <syntaxhighlight lang="bash">
iwconfig wlan0 essid ИмяТочкиДоступа key ПарольОтТочкиДоступа
</syntaxhighlight>
## Запустите сетевой интерфейс:
##:<syntaxhighlight lang="bash">
ifconfig wlan0 up
</syntaxhighlight>
#* WPA2-PSK:
## Сгенерируйте файл с учётной записью для подключения к точке доступа:
##:<syntaxhighlight lang="bash">
wpa_passphrase ИмяТочкиДоступа ПарольОтТочкиДоступа > /root/wpa.conf
</syntaxhighlight>
## Установите подключение с использованием сгенерированного файла:
##:<syntaxhighlight lang="bash">
wpa_supplicant -Dwext -iwlan0 -c/root/wpa.conf &
</syntaxhighlight>
# Подождите 15 секунд и проверьте подключение командой <code>iwconfig wlan0</code>:
#:<syntaxhighlight lang="bash">
~# iwconfig wlan0 | grep -i essid
wlan0    IEEE 802.11bgn  ESSID:"DIR-615"  Nickname:"<WIFI@REALTEK>"
</syntaxhighlight>
#: в примере контроллер подключён к точке доступа с именем <code>DIR-615</code>. Если в строке будет <code>unassociated</code>, то контроллер не смог подключиться.
# Если контроллер успешно подключился к точке доступа и на ней запущен DHCP-сервер, то запустите <code>dhcpclient</code>:
#:<syntaxhighlight lang="bash">
dhclient wlan0
</syntaxhighlight>
# Проверьте, получил ли контроллер IP адрес, для этого используйте команду <code>ip a</code>:
#:<syntaxhighlight lang="bash">
~# ip a | grep wlan0
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.2.83/24 brd 192.168.2.255 scope global wlan0
</syntaxhighlight>
#: в примере контроллер получил ip-адрес <code>192.168.2.83</code>.


<!--T:16-->
Настройка подключения контроллера к точке доступа завершена.
Ниже дан текст файла, в котором показаны настройки для подключения к сетям с разными параметрами шифрования. Файл позаимствован [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 здесь].
 
=== Универcальный файл настроек Wi-Fi ===
 
Ниже приведен текст файла с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 на сайте www.raspberrypi.org].
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
####################
####################
Строка 159: Строка 254:
#wireless-mode managed
#wireless-mode managed


<!--T:17-->
###################
###################
#; WEP wireless config #
#; WEP wireless config #
Строка 166: Строка 260:
#; end of WEP config
#; end of WEP config


<!--T:18-->
########################
########################
#; WPA and WPA2 wireless config #
#; WPA and WPA2 wireless config #
Строка 188: Строка 281:
</syntaxhighlight>
</syntaxhighlight>


=== Автоматическое переподключение при проблемах с соединением === <!--T:19-->
=== Автоматическое переподключение при проблемах с соединением ===


<!--T:20-->
Способ заимствован [http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/ на сайте alexba.in].
Способ заимствован здесь: [http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/]


<!--T:21-->
Допустим, контроллер подключён к роутеру с адресом <code>192.168.0.1</code> через интерфейс <code>wlan1</code>:
Допустим, контроллер подключён к роутеру с адресом ''192.168.0.1'' через интерфейс ''wlan1''. Тогда:
# Создайте в папке <code>/root</code> скрипт <code>wifi_autoconnect.sh</code>:
# Создайте в папке <code>/root</code> скрипт <code>wifi_autoconnect.sh</code> с содержанием: <syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">mcedit /root/wifi_autoconnect.sh</syntaxhighlight>
#:с содержанием:
#:<syntaxhighlight lang="bash">
#!/bin/bash
#!/bin/bash


<!--T:22-->
# Подставьте имя интерфейса
# Подставьте имя интерфейса
WLANINTERFACE=wlan1
WLANINTERFACE=wlan1
Строка 204: Строка 297:
SERVER=192.168.0.1
SERVER=192.168.0.1


<!--T:23-->
PATH="/bin:/sbin:/usr/local/sbin:/usr/sbin:$PATH"
# Only send two pings, sending output to /dev/null
# Only send two pings, sending output to /dev/null
ping -I ${WLANINTERFACE} -c2 ${SERVER} > /dev/null
ping -I ${WLANINTERFACE} -c2 ${SERVER} > /dev/null


<!--T:24-->
# If the return code from ping ($?) is not 0 (meaning there was an error)
# If the return code from ping ($?) is not 0 (meaning there was an error)
if [ $? != 0 ]
if [ $? != 0 ]
Строка 217: Строка 309:
fi
fi
</syntaxhighlight>
</syntaxhighlight>
# Сделайте файл исполняемым, выполнив команду <syntaxhighlight lang="bash">
# Сделайте файл исполняемым, выполнив команду  
#:<syntaxhighlight lang="bash">
chmod +x /root/wifi_autoconnect.sh
chmod +x /root/wifi_autoconnect.sh
</syntaxhighlight>
</syntaxhighlight>
# Запланируйте выполнение скрипта каждую минуту. Для этого:
# Запланируйте выполнение скрипта каждую минуту:
## Установите ''cron'': <syntaxhighlight lang="bash">
#: Добавьте в конец файла <code>/etc/crontab</code> строку
apt-get install cron
#:<syntaxhighlight lang="bash">
</syntaxhighlight>
## Добавьте в конец файла <code>/etc/crontab</code> строку<syntaxhighlight lang="bash">
*  * * * * root /root/wifi_autoconnect.sh
*  * * * * root /root/wifi_autoconnect.sh
# обязательно добавьте пустую строку в конец файла
# Обязательно добавьте пустую строку в конец файла
</syntaxhighlight>
</syntaxhighlight>
</translate>

Версия 18:28, 13 октября 2021

Режимы работы

Wi-Fi в Wiren Board можно настроить на работу в одном из двух или трёх режимов:

  • Режим точки доступа (включён по умолчанию). Работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать как замену роутера.
  • Режим клиента.
  • Одновременная работа в режиме и точки доступа, и клиента.

В очень редких случаях возможна несовместимость адаптера Wi-Fi в Wiren Board с некоторыми другими устройствами Wi-Fi. Это общая проблема реализаций Wi-Fi на чипсетах разных производителей. Если вы столкнулись с необъяснимыми проблемами при работе, рекомендуем поменять настройки шифрования, ширины канала и т.п.

Первое подключение по Wi-Fi

Антенны

Сравнение разъёмов для антенн Wi-Fi (RP-SMA) и GSM (SMA)

Прикрутите антенну к разъёму для антенны Wi-Fi.

Без антенны Wi-Fi в контроллерах Wiren Board работает на расстоянии не более одного метра. Чтобы получить стандартный для Wi-Fi радиус работы, нужно подключить к соответствующему разъёму контроллера антенну. Если контроллер находится в щитке (особенно в металлическом) или отдельной комнате, лучше использовать выносную антенну. Разъём для антенны — стандартный для Wi-Fi RP-SMA ("гнездо", у GSM-антенн - наоборот).

Подключение к точке доступа

Контроллер создает Wi-Fi точку доступа и мы можем подключиться к ней:

  • Откройте на ноутбуке или телефоне список WiFi точек доступа.
  • Выберите из списка точку доступа с именем WirenBoard-XXXXXXXX. Где XXXXXXXX - серийный номер контроллера.

При подключении по Wi-Fi контроллер будет доступен по IP-адресу 192.168.42.1.

По умолчанию, для подключения к контроллеру по Wi-Fi не требуется пароль, но вы можете это изменить.

Настройка Wi-Fi на контроллере Wiren Board

Настройка производится стандартным для Linux Debian способом - через файл /etc/network/interfaces. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть подробная документация.

Настройка в режиме точки доступа

Режим точки доступа включён по умолчанию. Работа в режиме точки доступа обеспечивается демоном hostapd.

Сперва настраиваем демон hostapd:

  1. в файле /etc/default/hostapd раскомментируйте строку (то есть удалите знак # в начале строки)
    DAEMON_CONF="/etc/hostapd.conf"
    
  2. отредактируйте файл /etc/hostapd.conf, чтобы он выглядел так:
    interface=wlan0
    #driver=nl80211 # оставьте эту строку закомментированной
    ssid=WirenBoard # вместо WirenBoard можете подставить другое имя для создаваемой точки доступа
    channel=1
    

Теперь нужно настроить сам интерфейс. Настройка делается в файле /etc/network/interfaces:

  1. раскомментируйте и отредактируйте (или добавьте, если их не было) строки, относящиеся к настройке в режиме точки доступа:
    iface wlan0 inet static
          address 192.168.42.1 # здесь 192.168.42.1  - адрес, по которому в новой сети будет находиться Wiren Board; можете указать другой адрес
          netmask 255.255.255.0
    
  2. закомментируйте строки, относящиеся к работе в режиме клиента:
    #auto wlan0
    #iface wlan0 inet dhcp 
    #                wpa-ssid {ssid}
    #                wpa-psk  {password}
    

Выполните команду

/etc/init.d/hostapd restart

В итоге у нас получилась открытая точка доступа, для подключения к которой не требуется пароль.

Установка пароля на подключение к точке доступа

Подключитесь к контроллеру по SSH и откройте файл настроек /etc/hostapd.conf, для этого введите команду:

nano /etc/hostapd.conf

Добавьте в конец файла строки:

wpa=2
wpa_passphrase=your_password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

Придумайте свой пароль и замените в файле your_password на него. Сохраните файл нажатием клавиш Ctrl+O и выйдете из редактора Ctrl+X.

После этого выполните команду:

/etc/init.d/hostapd restart

Контроллер применит новые настройки и связь с ним будет потеряна. Нужно будет заново подключиться к контроллеру по WiFi с указанным паролем. Если изменения настроек вы не можете подключиться к контроллеру по WiFi — подключитесь к нему по Ethernet и проверьте настройки в файле /etc/hostapd.conf.

Настройка в режиме точки доступа и клиента одновременно

Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется Concurrent Mode или STA+SoftAP, и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и на некоторых ревизиях WB5. Проверено, что он работает из коробки на Wiren Board с чипом Realtek 8723BU и ядром Linux 4.1.15. Чтобы проверить, выполняются ли эти условия, выполните команды:

uname -a
lsmod | grep 8723bu

Если условия не выполнены, возможно, на вашем Wiren Board, всё равно, можно настроить Concurrent Mode. В качестве отправной точки используйте инструкцию.

Если условия выполнены:

  1. Выполните команду
    iwconfig
    
    В её выводе должны быть показаны два интерфейса Wi-Fi: wlan0 и wlan1.
  2. Настройте по двум предыдущим инструкциям подключение в режиме клиента и подключение в режиме точки доступа, но используйте для них разные интерфейсы. Например, оставьте wlan0 для точки доступа, а клиента сделайте на wlan1. Соответствующая часть файла /etc/network/interfaces должна выглядеть так:
    # Wireless interfaces
    auto wlan1
    iface wlan1 inet dhcp
        wpa-ssid {ssid} # вместо {ssid} подставьте имя точки доступа
        wpa-psk {password} # вместо {password} подставьте пароль
    
    auto wlan0
    iface wlan0 inet static
      address 192.168.42.1
      netmask 255.255.255.0
    

Отключение режима точки доступа

Если вы хотите перевести адаптер в режим клиента, подключиться к Wi-Fi точке доступа в ручном режиме или совсем отключить Wi-Fi на контроллере — отключите режим точки доступа:

  1. Отключите автоматический запуск сервиса hostapd:
    systemctl disable hostapd
    
  2. Остановите демон hostapd
    service hostapd stop
    
  3. Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента:
    • откройте файл для редактирования
    mcedit /etc/network/interfaces
    
    • закомментируйте строки, относящиеся к настройке в режиме точки доступа:
      #allow-hotplug wlan0
      #iface wlan0 inet static
      #  address 192.168.42.1
      #  netmask 255.255.255.0
      
  4. Сохраните и закройте файл настроек.
  5. Запретите раздачу IP-адресов, для этого остановите DHCP-сервер:
    systemctl disable dnsmasq
    service dnsmasq stop
    

Режим точки доступа отключен, чтобы его включить, выполните инструкции из раздела Настройка в режиме точки доступа.

Настройка в режиме клиента

После настройки точки доступа в режиме клиента, контроллер будет подключаться к точке доступа автоматически при каждой загрузке операционной системы. Вы можете настроить автоматическое подключение контроллера к Wi-Fi точке доступа:

  1. Отключите точку доступа по инструкции в разделе Отключение режима точки доступа
  2. Откройте файл настроек:
    mcedit /etc/network/interfaces
    
  3. Раскомментируйте и отредактируйте строки (или добавьте, если их не было):
    auto wlan0
    iface wlan0 inet dhcp 
      wpa-ssid ssid # вместо ssid подставьте имя точки доступа
      wpa-psk  password # вместо password подставьте пароль
    
  4. Если точка доступа скрыта, то добавьте параметр:
      wpa-scan-ssid 1
    
  5. Сохраните и закройте файл настроек.
  6. Завершите настройку, для этого перезапустите беспроводной интерфейс командами:
    ifdown wlan0 && ifup wlan0
    

Подключение к Wi-Fi точке доступа вручную

Подключение в ручном режиме будет разорвано после перезагрузки контроллера. Если у вас возникла проблема с настройкой автоматического подключения, то вы можете попробовать подключиться к Wi-Fi точке доступа вручную:

  1. Отключите точку доступа по инструкции в разделе Отключение режима точки доступа
  2. Запустите поиск доступных точек доступа с помощью команды iwlist wlan0 scanning:
    ~# iwlist wlan0 scanning | grep -i essid
                        ESSID:"DIR-615"
                        ESSID:"MTSRouter_2.4GHz_072433"
                        ESSID:"Smart_box-40B598"
                        ESSID:"TP-Link_0E5AW"
                        ESSID:"TP-LINK_78DC"
    
    в примере контроллер «видит» пять точек доступа.
  3. Этот шаг зависит от типа сетевой аутентификации, выбранной в настройках точки доступа, к которой вы хотите подключиться:
    • WPA-PSK:
    1. Задайте параметры подключения:
      iwconfig wlan0 essid ИмяТочкиДоступа key ПарольОтТочкиДоступа
      
    2. Запустите сетевой интерфейс:
      ifconfig wlan0 up
      
    • WPA2-PSK:
    1. Сгенерируйте файл с учётной записью для подключения к точке доступа:
      wpa_passphrase ИмяТочкиДоступа ПарольОтТочкиДоступа > /root/wpa.conf
      
    2. Установите подключение с использованием сгенерированного файла:
      wpa_supplicant -Dwext -iwlan0 -c/root/wpa.conf &
      
  4. Подождите 15 секунд и проверьте подключение командой iwconfig wlan0:
    ~# iwconfig wlan0 | grep -i essid
    wlan0     IEEE 802.11bgn  ESSID:"DIR-615"  Nickname:"<WIFI@REALTEK>"
    
    в примере контроллер подключён к точке доступа с именем DIR-615. Если в строке будет unassociated, то контроллер не смог подключиться.
  5. Если контроллер успешно подключился к точке доступа и на ней запущен DHCP-сервер, то запустите dhcpclient:
    dhclient wlan0
    
  6. Проверьте, получил ли контроллер IP адрес, для этого используйте команду ip a:
    ~# ip a | grep wlan0
    5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        inet 192.168.2.83/24 brd 192.168.2.255 scope global wlan0
    
    в примере контроллер получил ip-адрес 192.168.2.83.

Настройка подключения контроллера к точке доступа завершена.

Универcальный файл настроек Wi-Fi

Ниже приведен текст файла с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть на сайте www.raspberrypi.org.

####################
#; start of wireless bits
#; this command stays for all configs
auto wlan0
###################
#; comments indicated by #;
#; commands indicated by #
#; remove the # to enable the command
####################
#; if using static IP then....#
#iface wlan0 inet static
# address UR_IP
#gateway UR_ROUTER_IP
#netmask 255.255.255.0
##################
#; otherwise use dhcp #
#iface wlan0 inet dhcp
###################
#; OPEN wireless config #
#wireless-essid UR_ESSID
#wireless-mode managed

###################
#; WEP wireless config #
#wireless-essid UR_ESSID
#wireless-key UR_KEY
#; end of WEP config

########################
#; WPA and WPA2 wireless config #
#; all command config lines above HERE to be #'ed except the entry auto wlan0
########################
wpa-driver wext
wpa-ssid UR_ESSID
#; wpa-ap-scan is 1 for visible and 2 for hidden hubs
wpa-ap-scan 1
#; wpa-proto is WPA for WPA1 (aka WPA) or RSN for WPA2
wpa-proto WPA
#; wpa-pairwise and wpa-group is TKIP for WPA1 or CCMP for WPA2
wpa-pairwise TKIP
wpa-group TKIP
wpa-key-mgmt WPA-PSK
#; use "wpa_passphrase UR_ESSID UR_KEY" to generate UR_HEX_KEY
#; enter the result below
wpa-psk UR_HEX_KEY
##########################
# end of wireless bits

Автоматическое переподключение при проблемах с соединением

Способ заимствован на сайте alexba.in.

Допустим, контроллер подключён к роутеру с адресом 192.168.0.1 через интерфейс wlan1:

  1. Создайте в папке /root скрипт wifi_autoconnect.sh:
    mcedit /root/wifi_autoconnect.sh
    
    с содержанием:
    #!/bin/bash
    
    # Подставьте имя интерфейса
    WLANINTERFACE=wlan1
    # Подставьте адрес роутера или сервера в интернете, доступ к которому будет проверяться
    SERVER=192.168.0.1
    
    PATH="/bin:/sbin:/usr/local/sbin:/usr/sbin:$PATH"
    # Only send two pings, sending output to /dev/null
    ping -I ${WLANINTERFACE} -c2 ${SERVER} > /dev/null
    
    # If the return code from ping ($?) is not 0 (meaning there was an error)
    if [ $? != 0 ]
    then
    # Restart the wireless interface
    ifdown --force ${WLANINTERFACE}
    ifup ${WLANINTERFACE}
    fi
    
  2. Сделайте файл исполняемым, выполнив команду
    chmod +x /root/wifi_autoconnect.sh
    
  3. Запланируйте выполнение скрипта каждую минуту:
    Добавьте в конец файла /etc/crontab строку
    *  *	* * *	root	/root/wifi_autoconnect.sh
    # Обязательно добавьте пустую строку в конец файла