Wi-Fi Old: различия между версиями
Brainroot (обсуждение | вклад) |
|||
(не показано 11 промежуточных версий 2 участников) | |||
Строка 15: | Строка 15: | ||
===Подключение к точке доступа=== | ===Подключение к точке доступа=== | ||
Контроллер создает | Контроллер создает Wi-Fi точку доступа и мы можем подключиться к ней: | ||
* Откройте на | * Откройте на ноутбуке или телефоне список WiFi точек доступа. | ||
* Выберите из списка точку доступа с именем <code>WirenBoard-XXXXXXXX</code>. Где XXXXXXXX - серийный номер контроллера. | * Выберите из списка точку доступа с именем <code>WirenBoard-XXXXXXXX</code>. Где XXXXXXXX - серийный номер контроллера. | ||
При подключении по | При подключении по Wi-Fi контроллер будет доступен по IP-адресу '''192.168.42.1'''. | ||
По умолчанию, для подключения к контроллеру по | По умолчанию, для подключения к контроллеру по Wi-Fi не требуется пароль, но вы [[#Установка пароля на подключение к точке доступа | можете это изменить]]. | ||
== Настройка Wi-Fi на контроллере Wiren Board == | == Настройка Wi-Fi на контроллере Wiren Board == | ||
Строка 120: | Строка 120: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Настройка в режиме клиента | === Отключение режима точки доступа === | ||
Если вы хотите перевести адаптер в [[#Настройка в режиме клиента | режим клиента]], подключиться к Wi-Fi точке доступа в [[#Подключение к Wi-Fi точке доступа вручную | ручном режиме]] или совсем отключить Wi-Fi на контроллере — отключите режим точки доступа: | |||
# | #Отключите автоматический запуск сервиса <code>hostapd</code>: | ||
# | |||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl disable hostapd | systemctl disable hostapd | ||
Строка 137: | Строка 128: | ||
#Остановите демон <code>hostapd</code> | #Остановите демон <code>hostapd</code> | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
service hostapd stop | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента: | # Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента: | ||
#* откройте файл для редактирования | #* откройте файл для редактирования | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
/etc/network/interfaces | mcedit /etc/network/interfaces | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash"> | #* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash"> | ||
#allow-hotplug wlan0 | |||
#iface wlan0 inet static | #iface wlan0 inet static | ||
# address 192.168.42.1 | # address 192.168.42.1 | ||
# netmask 255.255.255.0 | # netmask 255.255.255.0 | ||
</syntaxhighlight> | </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"> | #:<syntaxhighlight lang="bash"> | ||
auto wlan0 | auto wlan0 | ||
Строка 156: | Строка 165: | ||
wpa-psk password # вместо password подставьте пароль | wpa-psk password # вместо password подставьте пароль | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# | #Если точка доступа скрыта, то добавьте параметр: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
wpa-scan-ssid 1 | wpa-scan-ssid 1 | ||
</syntaxhighlight> | </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"> | #:<syntaxhighlight lang="bash"> | ||
dhclient wlan0 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Проверьте, получил ли контроллер IP адрес, для этого используйте команду <code>ip a</code>: | ||
#:<syntaxhighlight lang="bash"> | #:<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> | </syntaxhighlight> | ||
#: в примере контроллер получил ip-адрес <code>192.168.2.83</code>. | |||
Настройка подключения контроллера к точке доступа завершена. | |||
=== Универcальный файл настроек Wi-Fi === | === Универcальный файл настроек Wi-Fi === | ||
Строка 240: | Строка 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 | ||
Строка 256: | Строка 314: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Запланируйте выполнение скрипта каждую минуту: | # Запланируйте выполнение скрипта каждую минуту: | ||
# | #: Добавьте в конец файла <code>/etc/crontab</code> строку | ||
#:<syntaxhighlight lang="bash"> | |||
# | |||
* * * * * root /root/wifi_autoconnect.sh | * * * * * root /root/wifi_autoconnect.sh | ||
# Обязательно добавьте пустую строку в конец файла | # Обязательно добавьте пустую строку в конец файла | ||
</syntaxhighlight> | </syntaxhighlight> |
Версия 18:28, 13 октября 2021
Режимы работы
Wi-Fi в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
- Режим точки доступа (включён по умолчанию). Работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать как замену роутера.
- Режим клиента.
- Одновременная работа в режиме и точки доступа, и клиента.
В очень редких случаях возможна несовместимость адаптера Wi-Fi в Wiren Board с некоторыми другими устройствами Wi-Fi. Это общая проблема реализаций Wi-Fi на чипсетах разных производителей. Если вы столкнулись с необъяснимыми проблемами при работе, рекомендуем поменять настройки шифрования, ширины канала и т.п.
Первое подключение по Wi-Fi
Антенны
Прикрутите антенну к разъёму для антенны 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
:
- в файле
/etc/default/hostapd
раскомментируйте строку (то есть удалите знак # в начале строки)DAEMON_CONF="/etc/hostapd.conf"
- отредактируйте файл
/etc/hostapd.conf
, чтобы он выглядел так:interface=wlan0 #driver=nl80211 # оставьте эту строку закомментированной ssid=WirenBoard # вместо WirenBoard можете подставить другое имя для создаваемой точки доступа channel=1
Теперь нужно настроить сам интерфейс. Настройка делается в файле /etc/network/interfaces
:
- раскомментируйте и отредактируйте (или добавьте, если их не было) строки, относящиеся к настройке в режиме точки доступа:
iface wlan0 inet static address 192.168.42.1 # здесь 192.168.42.1 - адрес, по которому в новой сети будет находиться Wiren Board; можете указать другой адрес netmask 255.255.255.0
- закомментируйте строки, относящиеся к работе в режиме клиента:
#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. В качестве отправной точки используйте инструкцию.
Если условия выполнены:
- Выполните команду
iwconfig
- В её выводе должны быть показаны два интерфейса Wi-Fi: wlan0 и wlan1.
- Настройте по двум предыдущим инструкциям подключение в режиме клиента и подключение в режиме точки доступа, но используйте для них разные интерфейсы. Например, оставьте 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 на контроллере — отключите режим точки доступа:
- Отключите автоматический запуск сервиса
hostapd
:systemctl disable hostapd
- Остановите демон
hostapd
service hostapd stop
- Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента:
- откройте файл для редактирования
mcedit /etc/network/interfaces
- закомментируйте строки, относящиеся к настройке в режиме точки доступа:
#allow-hotplug wlan0 #iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0
- Сохраните и закройте файл настроек.
- Запретите раздачу IP-адресов, для этого остановите DHCP-сервер:
systemctl disable dnsmasq service dnsmasq stop
Режим точки доступа отключен, чтобы его включить, выполните инструкции из раздела Настройка в режиме точки доступа.
Настройка в режиме клиента
После настройки точки доступа в режиме клиента, контроллер будет подключаться к точке доступа автоматически при каждой загрузке операционной системы. Вы можете настроить автоматическое подключение контроллера к Wi-Fi точке доступа:
- Отключите точку доступа по инструкции в разделе Отключение режима точки доступа
- Откройте файл настроек:
mcedit /etc/network/interfaces
- Раскомментируйте и отредактируйте строки (или добавьте, если их не было):
auto wlan0 iface wlan0 inet dhcp wpa-ssid ssid # вместо ssid подставьте имя точки доступа wpa-psk password # вместо password подставьте пароль
- Если точка доступа скрыта, то добавьте параметр:
wpa-scan-ssid 1
- Сохраните и закройте файл настроек.
- Завершите настройку, для этого перезапустите беспроводной интерфейс командами:
ifdown wlan0 && ifup wlan0
Подключение к Wi-Fi точке доступа вручную
Подключение в ручном режиме будет разорвано после перезагрузки контроллера. Если у вас возникла проблема с настройкой автоматического подключения, то вы можете попробовать подключиться к Wi-Fi точке доступа вручную:
- Отключите точку доступа по инструкции в разделе Отключение режима точки доступа
- Запустите поиск доступных точек доступа с помощью команды
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"
- в примере контроллер «видит» пять точек доступа.
- Этот шаг зависит от типа сетевой аутентификации, выбранной в настройках точки доступа, к которой вы хотите подключиться:
- WPA-PSK:
- Задайте параметры подключения:
iwconfig wlan0 essid ИмяТочкиДоступа key ПарольОтТочкиДоступа
- Запустите сетевой интерфейс:
ifconfig wlan0 up
- WPA2-PSK:
- Сгенерируйте файл с учётной записью для подключения к точке доступа:
wpa_passphrase ИмяТочкиДоступа ПарольОтТочкиДоступа > /root/wpa.conf
- Установите подключение с использованием сгенерированного файла:
wpa_supplicant -Dwext -iwlan0 -c/root/wpa.conf &
- Подождите 15 секунд и проверьте подключение командой
iwconfig wlan0
:~# iwconfig wlan0 | grep -i essid wlan0 IEEE 802.11bgn ESSID:"DIR-615" Nickname:"<WIFI@REALTEK>"
- в примере контроллер подключён к точке доступа с именем
DIR-615
. Если в строке будетunassociated
, то контроллер не смог подключиться.
- Если контроллер успешно подключился к точке доступа и на ней запущен DHCP-сервер, то запустите
dhcpclient
:dhclient wlan0
- Проверьте, получил ли контроллер 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
:
- Создайте в папке
/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
- Сделайте файл исполняемым, выполнив команду
chmod +x /root/wifi_autoconnect.sh
- Запланируйте выполнение скрипта каждую минуту:
- Добавьте в конец файла
/etc/crontab
строку * * * * * root /root/wifi_autoconnect.sh # Обязательно добавьте пустую строку в конец файла
- Добавьте в конец файла