wb_editors
893
правки
Garik (обсуждение | вклад) |
Brainroot (обсуждение | вклад) |
||
(не показано 37 промежуточных версий 4 участников) | |||
Строка 1: | Строка 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== | ==Первое подключение по 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 [https://en.wikipedia.org/wiki/SMA_connector#Reverse_polarity_SMA RP-SMA] ("гнездо", у GSM-антенн - наоборот). | |||
== | ===Подключение к точке доступа=== | ||
Контроллер создает Wi-Fi точку доступа и мы можем подключиться к ней: | |||
* Откройте на ноутбуке или телефоне список WiFi точек доступа. | |||
* Выберите из списка точку доступа с именем <code>WirenBoard-XXXXXXXX</code>. Где XXXXXXXX - серийный номер контроллера. | |||
При подключении по Wi-Fi контроллер будет доступен по IP-адресу '''192.168.42.1'''. | |||
По умолчанию, для подключения к контроллеру по Wi-Fi не требуется пароль, но вы [[#Установка пароля на подключение к точке доступа | можете это изменить]]. | |||
== Настройка Wi-Fi на контроллере Wiren Board == | |||
Настройка производится стандартным для 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 подробная документация]. | ||
=== Настройка в режиме точки доступа === | === Настройка в режиме точки доступа === | ||
Режим точки доступа включён по умолчанию. Работа в режиме точки доступа обеспечивается демоном '''[https://wireless.wiki.kernel.org/en/users/documentation/hostapd hostapd]'''. | Режим точки доступа включён по умолчанию. Работа в режиме точки доступа обеспечивается демоном '''[https://wireless.wiki.kernel.org/en/users/documentation/hostapd hostapd]'''. | ||
< | Сперва настраиваем демон <code>hostapd</code>: | ||
# в файле <code>/etc/default/hostapd</code> раскомментируйте строку (то есть удалите знак '''#''' в начале строки) | |||
#:<syntaxhighlight lang="bash"> | |||
# | DAEMON_CONF="/etc/hostapd.conf" | ||
# | </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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# | Теперь нужно настроить сам интерфейс. Настройка делается в файле <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"> | |||
#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> | ||
В итоге у нас получилась открытая точка доступа, для подключения к которой не требуется пароль. | |||
=== Установка пароля на подключение к точке доступа === | |||
Подключитесь к контроллеру по SSH и откройте файл настроек <code>/etc/hostapd.conf</code>, для этого введите команду: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
nano /etc/hostapd.conf | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Добавьте в конец файла строки: | |||
<pre> | |||
wpa=2 | |||
</ | 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"> | ||
/etc/init.d/hostapd restart | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Настройка в режиме точки доступа и клиента одновременно === | Контроллер применит новые настройки и связь с ним будет потеряна. Нужно будет заново подключиться к контроллеру по WiFi с указанным паролем. Если изменения настроек вы не можете подключиться к контроллеру по WiFi — подключитесь к нему по Ethernet и проверьте настройки в файле <code>/etc/hostapd.conf</code>. | ||
=== Настройка в режиме точки доступа и клиента одновременно === | |||
Режим одновременной работы модуля 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 инструкцию].'' | ||
Если условия выполнены: | Если условия выполнены: | ||
# Выполните команду | # Выполните команду | ||
Строка 125: | Строка 114: | ||
wpa-psk {password} # вместо {password} подставьте пароль | wpa-psk {password} # вместо {password} подставьте пароль | ||
auto wlan0 | auto wlan0 | ||
iface wlan0 inet static | iface wlan0 inet static | ||
Строка 132: | Строка 120: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Отключение режима точки доступа === | ||
Если вы хотите перевести адаптер в [[#Настройка в режиме клиента | режим клиента]], подключиться к 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>. | |||
Настройка подключения контроллера к точке доступа завершена. | |||
Ниже | |||
=== Универ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 | ||
################### | ################### | ||
#; WEP wireless config # | #; WEP wireless config # | ||
Строка 166: | Строка 260: | ||
#; end of WEP config | #; end of WEP config | ||
######################## | ######################## | ||
#; WPA and WPA2 wireless config # | #; WPA and WPA2 wireless config # | ||
Строка 188: | Строка 281: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Автоматическое переподключение при проблемах с соединением === | === Автоматическое переподключение при проблемах с соединением === | ||
Способ заимствован [http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/ на сайте alexba.in]. | |||
Способ заимствован | |||
Допустим, контроллер подключён к роутеру с адресом <code>192.168.0.1</code> через интерфейс <code>wlan1</code>: | |||
Допустим, контроллер подключён к роутеру с адресом | # Создайте в папке <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 | ||
# Подставьте имя интерфейса | # Подставьте имя интерфейса | ||
WLANINTERFACE=wlan1 | WLANINTERFACE=wlan1 | ||
Строка 204: | Строка 297: | ||
SERVER=192.168.0.1 | SERVER=192.168.0.1 | ||
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 | ||
# 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> | ||
# Запланируйте выполнение скрипта каждую минуту | # Запланируйте выполнение скрипта каждую минуту: | ||
# | #: Добавьте в конец файла <code>/etc/crontab</code> строку | ||
#:<syntaxhighlight lang="bash"> | |||
* * * * * root /root/wifi_autoconnect.sh | * * * * * root /root/wifi_autoconnect.sh | ||
# | # Обязательно добавьте пустую строку в конец файла | ||
</syntaxhighlight> | </syntaxhighlight> | ||