Wi-Fi Old: различия между версиями
м (Отформатировал текст) |
|||
(не показано 38 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
==Режимы работы== | ==Режимы работы== | ||
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов: | '''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов: | ||
* Режим точки доступа (включён по умолчанию). Работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать как замену роутера. | * Режим точки доступа (включён по умолчанию). Работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать как замену роутера. | ||
Строка 17: | Строка 18: | ||
===Подключение к точке доступа=== | ===Подключение к точке доступа=== | ||
{{Wbincludes:WiFi Connect Default}} | |||
== Настройка Wi-Fi в Linux == <!--T:4--> | |||
<!--T:5--> | |||
Настройка производится стандартным для Linux Debian способом - через файл <code>/etc/network/interfaces</code>. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть [https://wiki.debian.org/ru/NetworkConfiguration подробная документация]. | |||
Настройка производится стандартным для Linux Debian способом | |||
=== Настройка в режиме точки доступа === | === Настройка в режиме точки доступа === | ||
Строка 53: | Строка 49: | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# закомментируйте строки, относящиеся к работе в режиме клиента: | # закомментируйте строки, относящиеся к работе в режиме клиента: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
Строка 70: | Строка 65: | ||
=== Установка пароля на подключение к точке доступа === | === Установка пароля на подключение к точке доступа === | ||
{{Wbincludes:WiFi Set Password}} | |||
=== Настройка в режиме клиента === | |||
#Отключите режим точки доступа: | |||
#* откройте файл для редактирования | |||
#:<syntaxhighlight lang="bash"> | |||
nano /etc/default/hostapd | |||
<syntaxhighlight lang="bash"> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
#* закомментируйте ссылку на файл <code>hostapd.conf</code>, то есть добавьте знак '''#''' в начало строки: | |||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
#DAEMON_CONF="/etc/hostapd.conf" | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | #Отключите и остановите демон <code>hostapd</code> | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl disable hostapd | |||
systemctl stop hostapd | systemctl stop hostapd | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 107: | Строка 86: | ||
#* откройте файл для редактирования | #* откройте файл для редактирования | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
/etc/network/interfaces | |||
</syntaxhighlight> | </syntaxhighlight> | ||
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash"> | #* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash"> | ||
#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> | ||
# | #* раскомментируйте и отредактируйте строки (или добавьте, если их не было): | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
auto wlan0 | auto wlan0 | ||
Строка 140: | Строка 100: | ||
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> | ||
# | # Запретите раздачу IP-адресов, для этого остановите DHCP-сервер: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
systemctl disable dnsmasq | |||
systemctl stop dnsmasq | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Завершите настройку перезагрузив беспроводной интерфейс: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
ifdown wlan0 | |||
ifup wlan0 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Настройка в режиме точки доступа и клиента одновременно === | === Настройка в режиме точки доступа и клиента одновременно === <!--T:11--> | ||
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и Wiren Board | <!--T:12--> | ||
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Он работает на всех версиях Wiren Board 6 и на некоторых ревизиях WB5. Проверено, что он работает из коробки на Wiren Board с чипом Realtek 8723BU и ядром Linux 4.1.15. Чтобы проверить, выполняются ли эти условия, выполните команды: | |||
<syntaxhighlight lang="bash"> | |||
uname -a | |||
lsmod | grep 8723bu | |||
</syntaxhighlight> | |||
''Если условия не выполнены, возможно, на вашем Wiren Board, всё равно, можно настроить Concurrent Mode. В качестве отправной точки используйте [http://randomstuffidosometimes.blogspot.ru/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html инструкцию].'' | |||
<!--T:13--> | |||
Если условия выполнены: | |||
# Выполните команду | # Выполните команду | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
Строка 172: | Строка 140: | ||
wpa-psk {password} # вместо {password} подставьте пароль | wpa-psk {password} # вместо {password} подставьте пароль | ||
<!--T:14--> | |||
auto wlan0 | auto wlan0 | ||
iface wlan0 inet static | iface wlan0 inet static | ||
Строка 178: | Строка 147: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Универcальный файл настроек Wi-Fi === <!--T:15--> | ||
Ниже приведен текст файла | <!--T:16--> | ||
Ниже приведен текст файла с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 на сайте www.raspberrypi.org]. | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
#################### | #################### | ||
Строка 257: | Строка 174: | ||
#wireless-mode managed | #wireless-mode managed | ||
<!--T:17--> | |||
################### | ################### | ||
#; WEP wireless config # | #; WEP wireless config # | ||
Строка 263: | Строка 181: | ||
#; end of WEP config | #; end of WEP config | ||
<!--T:18--> | |||
######################## | ######################## | ||
#; WPA and WPA2 wireless config # | #; WPA and WPA2 wireless config # | ||
Строка 284: | Строка 203: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Автоматическое переподключение при проблемах с соединением === | ||
Способ заимствован [http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/ на сайте alexba.in]. | |||
<syntaxhighlight lang="bash"> | Допустим, контроллер подключён к роутеру с адресом <code>192.168.0.1</code> через интерфейс <code>wlan1</code>: | ||
# | # Создайте в папке <code>/root</code> скрипт <code>wifi_autoconnect.sh</code>: | ||
# | #:<syntaxhighlight lang="bash">mcedit /root/wifi_autoconnect.sh</syntaxhighlight> | ||
# | #:с содержанием: | ||
# | #:<syntaxhighlight lang="bash"> | ||
# | #!/bin/bash | ||
# | |||
# | # Подставьте имя интерфейса | ||
# | WLANINTERFACE=wlan1 | ||
# | # Подставьте адрес роутера или сервера в интернете, доступ к которому будет проверяться | ||
# | SERVER=192.168.0.1 | ||
# 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 | |||
</syntaxhighlight> | |||
# Сделайте файл исполняемым, выполнив команду | |||
#:<syntaxhighlight lang="bash"> | |||
chmod +x /root/wifi_autoconnect.sh | |||
</syntaxhighlight> | |||
# Запланируйте выполнение скрипта каждую минуту: | |||
#* Если планировщик <code>cron</code> не установлен, установите его командой: | |||
#*:<syntaxhighlight lang="bash"> | |||
apt-get install cron | |||
</syntaxhighlight> | |||
#* Добавьте в конец файла <code>/etc/crontab</code> строку | |||
#*:<syntaxhighlight lang="bash"> | |||
* * * * * root /root/wifi_autoconnect.sh | |||
# Обязательно добавьте пустую строку в конец файла | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</translate> |
Версия 15:11, 12 апреля 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-антенн - наоборот).
Подключение к точке доступа
Wbincludes:WiFi Connect Default
Настройка Wi-Fi в Linux
Настройка производится стандартным для 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
В итоге у нас получилась открытая точка доступа, для подключения к которой не требуется пароль.
Установка пароля на подключение к точке доступа
Настройка в режиме клиента
- Отключите режим точки доступа:
- откройте файл для редактирования
nano /etc/default/hostapd
- закомментируйте ссылку на файл
hostapd.conf
, то есть добавьте знак # в начало строки:
#DAEMON_CONF="/etc/hostapd.conf"
- Отключите и остановите демон
hostapd
systemctl disable hostapd systemctl stop hostapd
- Теперь закомментируйте настройки точки доступа и задайте настройки WiFi-клиента:
- откройте файл для редактирования
/etc/network/interfaces
- закомментируйте строки, относящиеся к настройке в режиме точки доступа:
#iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0
- раскомментируйте и отредактируйте строки (или добавьте, если их не было):
auto wlan0 iface wlan0 inet dhcp wpa-ssid ssid # вместо ssid подставьте имя точки доступа wpa-psk password # вместо password подставьте пароль
- если точка доступа скрыта, то добавьте параметр:
wpa-scan-ssid 1
- Запретите раздачу IP-адресов, для этого остановите DHCP-сервер:
systemctl disable dnsmasq systemctl stop dnsmasq
- Завершите настройку перезагрузив беспроводной интерфейс:
ifdown wlan0 ifup wlan0
Настройка в режиме точки доступа и клиента одновременно
Режим одновременной работы модуля 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
Универ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 # 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
- Запланируйте выполнение скрипта каждую минуту:
- Если планировщик
cron
не установлен, установите его командой:apt-get install cron
- Добавьте в конец файла
/etc/crontab
строку* * * * * root /root/wifi_autoconnect.sh # Обязательно добавьте пустую строку в конец файла
- Если планировщик