Wi-Fi Old: различия между версиями
Admin (обсуждение | вклад) |
|||
(не показано 87 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов: | '''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов: | ||
* | * режим точки доступа (включён по умолчанию); | ||
* | * режим клиента; | ||
* | * одновременная работа в режиме и точки доступа, и клиента (только в некоторых версиях контроллера; подробнее смотрите ниже). | ||
== Первое подключение по 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-антенн разъёма SMA). | |||
# По умолчанию Wiren Board работает в режиме точки доступа: | |||
#* имя точки доступа: ''WirenBoard...'' | |||
#* пароль: нет | |||
#* адрес контроллера в созданной сети: ''192.168.42.1'' | |||
== Настройка Wi-Fi в Linux == | |||
Настройка производится стандартным для 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>/etc/default/hostapd</code> раскомментируйте строку (то есть удалите знак '''#''' в начале строки) | # Включите режим точки доступа. Для этого: | ||
#* в файле <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>, чтобы он выглядел так | |||
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"> | |||
# раскомментируйте и отредактируйте (или добавьте, если их не было) строки, относящиеся к настройке в режиме точки доступа | |||
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 | ||
Строка 61: | Строка 43: | ||
# 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> | ||
=== Настройка в режиме клиента === | |||
# Отключите режим точки доступа. | |||
=== | #: Для этого в файле <code>/etc/default/hostapd</code> закомментируйте строку (то есть добавьте знак '''#''' в начало строки)<syntaxhighlight lang="bash">#DAEMON_CONF="/etc/hostapd.conf"</syntaxhighlight> | ||
# Отредактируйте <code>/etc/network/interfaces</code>: | |||
# | |||
</syntaxhighlight> | |||
# | |||
</ | |||
#* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash"> | #* закомментируйте строки, относящиеся к настройке в режиме точки доступа: <syntaxhighlight lang="bash"> | ||
#iface wlan0 inet static | #iface wlan0 inet static | ||
# | # address 192.168.42.1 | ||
# | # netmask 255.255.255.0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# | #* раскомментируйте и отредактируйте строки (или добавьте, если их не было):<syntaxhighlight lang="bash"> | ||
auto wlan0 | auto wlan0 | ||
iface wlan0 inet dhcp | iface wlan0 inet dhcp | ||
wpa-ssid {ssid} # вместо {ssid} подставьте имя точки доступа | |||
wpa-psk {password} # вместо {password} подставьте пароль | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# | # Чтобы применить изменения, выполните команды | ||
<syntaxhighlight lang="bash"> | |||
ifdown wlan0 | |||
ifup wlan0 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Настройка в режиме точки доступа и клиента одновременно === | |||
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется ''Concurrent Mode'' или ''STA+SoftAP'', и поддерживается не всеми Wi-Fi модулями. Также он работает не на всех версиях Wiren Board. Проверено, что он работает из коробки на Wiren Board с чипом Realtek 8723BU и ядром Linux 4.1.15. Чтобы проверить, выполняются ли эти условия, выполните команды: | |||
<syntaxhighlight lang="bash"> | |||
uname -a | |||
lsmod | grep 8723bu | |||
</syntaxhighlight> | </syntaxhighlight> | ||
''Если условия не выполнены, возможно, на вашем Wiren Board всё равно можно настроить Concurrent Mode. В качестве отправной точки используйте [http://randomstuffidosometimes.blogspot.ru/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html инструкцию].'' | |||
Если условия выполнены: | |||
# Выполните команду | # Выполните команду | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
Строка 177: | Строка 95: | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Автоматическое переподключение при проблемах с соединением === | |||
Способ заимствован здесь: [http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/] | |||
Допустим, контроллер подключён к роутеру с адресом ''192.168.0.1'' через интерфейс ''wlan1''. Тогда: | |||
# Создайте в папке <code>/root</code> скрипт <code>wifi_autoconnect.sh</code> с содержанием: <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> | |||
# Запланируйте выполнение скрипта каждую минуту. Для этого: | |||
## Установите ''cron'': <syntaxhighlight lang="bash"> | |||
apt-get install cron | |||
# | |||
# | |||
### | |||
</syntaxhighlight> | </syntaxhighlight> | ||
## Добавьте в конец файла <code>/etc/crontab</code> строку <syntaxhighlight lang="bash"> | |||
* * * * * root /root/wifi_autoconnect.sh | |||
# | |||
# | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Ограничения == | |||
# Wi-Fi в Wiren Board в режиме точки доступа работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать Wiren Board в качестве замены роутера. | |||
# В очень редких случаях возможна несовместимость адаптера Wi-Fi в Wiren Board с некоторыми другими устройствами Wi-Fi. Это общая проблема реализаций Wi-Fi на чипсетах разных производителей. Если вы столкнулись с необъяснимыми проблемами при работе, рекомендуем поменять настройки шифрования, ширины канала и т.п. |
Версия 18:43, 28 июня 2017
Wi-Fi в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
- режим точки доступа (включён по умолчанию);
- режим клиента;
- одновременная работа в режиме и точки доступа, и клиента (только в некоторых версиях контроллера; подробнее смотрите ниже).
Первое подключение по Wi-Fi
- Прикрутите антенну к разъёму для антенны Wi-Fi.
- Без антенны Wi-Fi в Wiren Board работает на расстоянии не более одного метра. Чтобы получить стандартный для Wi-Fi радиус работы, нужно подключить к соответствующему разъёму контроллера антенну. Если контроллер находится в щитке (особенно в металлическом) или отдельной комнате, лучше использовать выносную антенну.
- Разъём для антенны - стандартный для Wi-Fi RP-SMA (который при этом отличается от используемого для GSM-антенн разъёма SMA).
- По умолчанию Wiren Board работает в режиме точки доступа:
- имя точки доступа: WirenBoard...
- пароль: нет
- адрес контроллера в созданной сети: 192.168.42.1
Настройка Wi-Fi в Linux
Настройка производится стандартным для Linux Debian способом - через файл /etc/network/interfaces
. Краткие инструкции для типовых задач даны ниже, на сайте Linux Debian есть подробная документация.
Настройка в режиме точки доступа
Режим точки доступа включён по умолчанию. Работа в режиме точки доступа обеспечивается демоном hostapd.
Процесс настройки:
- Включите режим точки доступа. Для этого:
- в файле
/etc/default/hostapd
раскомментируйте строку (то есть удалите знак # в начале строки)DAEMON_CONF="/etc/hostapd.conf"
- отредактируйте файл
/etc/hostapd.conf
, чтобы он выглядел так:interface=wlan0 #driver=nl80211 # оставьте эту строку закомментированной ssid=WirenBoard # вместо WirenBoard можете подставить другое имя для создаваемой точки доступа channel=1 wpa=2 wpa_passphrase=your_password # вместо your_password подставьте пароль wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=TKIP CCMP
- в файле
- Отредактируйте
/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
Настройка в режиме клиента
- Отключите режим точки доступа.
- Для этого в файле
/etc/default/hostapd
закомментируйте строку (то есть добавьте знак # в начало строки)#DAEMON_CONF="/etc/hostapd.conf"
- Для этого в файле
- Отредактируйте
/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} подставьте пароль
- закомментируйте строки, относящиеся к настройке в режиме точки доступа:
- Чтобы применить изменения, выполните команды
ifdown wlan0
ifup wlan0
Настройка в режиме точки доступа и клиента одновременно
Режим одновременной работы модуля Wi-Fi и в режиме точки доступа, и в режиме клиента, называется Concurrent Mode или STA+SoftAP, и поддерживается не всеми Wi-Fi модулями. Также он работает не на всех версиях Wiren Board. Проверено, что он работает из коробки на 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
Автоматическое переподключение при проблемах с соединением
Способ заимствован здесь: [1]
Допустим, контроллер подключён к роутеру с адресом 192.168.0.1 через интерфейс wlan1. Тогда:
- Создайте в папке
/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
- Установите cron:
Ограничения
- Wi-Fi в Wiren Board в режиме точки доступа работает относительно медленно. Скорости вполне хватит для работы с веб-интерфейсом, но не стоит использовать Wiren Board в качестве замены роутера.
- В очень редких случаях возможна несовместимость адаптера Wi-Fi в Wiren Board с некоторыми другими устройствами Wi-Fi. Это общая проблема реализаций Wi-Fi на чипсетах разных производителей. Если вы столкнулись с необъяснимыми проблемами при работе, рекомендуем поменять настройки шифрования, ширины канала и т.п.