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

Материал из Wiren Board
(Новая страница: «# Disable hotspot mode. #: To do this, in the <code>/etc/default/hostapd</code> file, comment out the line (that is, add the '''#''' sign to the beginning of the…»)
(Новая страница: «=== Setting up in hotspot and client mode simultaneously ===»)
Строка 78: Строка 78:
</syntaxhighlight>
</syntaxhighlight>


=== Настройка в режиме точки доступа и клиента одновременно ===
=== Setting up in hotspot and client mode simultaneously ===


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

Версия 16:55, 23 апреля 2019

Другие языки:

The Wi-Fi function in the Wiren Board controller can be configured to operate in one of two or three modes:

  • hotspot mode (enabled by default);
  • client mode;
  • simultaneous operation in both modes(only in some versions of the controller; see below for details).


First Wi-Fi connection

  1. Wi-Fi (RP-SMA) and GSM (SMA) terminals comparasion
    Connect antenna to the Wi-Fi connector.
    The Wiren Board Wi-Fi is available at a distance of no more than one meter without the antenna.To get a standart Wi-Fi radius of operation, you need to connect antenna to the appropriate connector of the controller. If the controller is in the closet(especially in a metal one) or a separate room, it is better to use a remote antenna.
    The antenna has standart Wi-Fi connector: RP-SMA (differs from SMA-connector for GSM antennas)RP-SMA
  2. Wiren Board controller's WI-Fi works in hotspot mode by default:
    • hotspot name: WirenBoard...
    • password: none
    • adress of the controller in the created network: 192.168.42.1

\Wi-Fi configuration in Linux

The configuration is usually proceed in a standart way for Linux Debian: via file /etc/network/interfaces. The following are brief instructions for common tasks on Linux Debian, there is a detailed documentation on the Linux site. detailed documentation.

Setting in a hotspot mode

Access point mode is enabled by default. Operation in the access point mode is provided by the hostapd daemon.

Configuration process:

  1. Enable access point mode. For this:
    • open file /etc/default/hostapd and uncomment the string(e.g.,remove the # at the beginning of the string)
      DAEMON_CONF="/etc/hostapd.conf"
      
    • edit the /etc/hostapd.conf file like in the example:
      interface=wlan0
      #driver=nl80211 # this line should stay commented
      ssid=WirenBoard # you can substitute WirenBoard with a different name for the hotspot
      channel=1
      wpa=2
      wpa_passphrase=your_password # replace your_password with your own password
      wpa_key_mgmt=WPA-PSK
      wpa_pairwise=TKIP CCMP
      rsn_pairwise=TKIP CCMP
      
  2. Edit/etc/network/interfaces:
    • uncomment and edit the lines(or add them, if there were none) related to the hotspot settings:
      iface wlan0 inet static
            address 192.168.42.1 # here 192.168.42.1  - is the address where the Wiren Board controller will be located in the new network; you can specify a different address
            netmask 255.255.255.0
      
    • comment out the lines related to the operating in client mode:
      #auto wlan0
      #iface wlan0 inet dhcp 
      #                wpa-ssid {ssid}
      #                wpa-psk  {password}
      
  3. Execute the command
/etc/init.d/hostapd restart


Setup in client mode

  1. Disable hotspot mode.
    To do this, in the /etc/default/hostapd file, comment out the line (that is, add the # sign to the beginning of the line)
    #DAEMON_CONF="/etc/hostapd.conf"
    
  2. Edit /etc/network/interfaces:
    • comment out the lines related to the setting in access point mode:
      #iface wlan0 inet static
      #      address 192.168.42.1
      #      netmask 255.255.255.0
      
    • uncomment and edit the lines (or add them if there were none):
      auto wlan0
      iface wlan0 inet dhcp 
                      wpa-ssid {ssid} # replace {ssid} with the name of the hotspot
                      wpa-psk  {password} # replace {password} with your own password
      
  3. To apply the changes, run the following commands
ifdown wlan0
ifup wlan0

Setting up in hotspot and client mode simultaneously

Режим одновременной работы модуля 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. В качестве отправной точки используйте инструкцию.

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

  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
    


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

Ниже дан текст файла, в котором показаны настройки для подключения к сетям с разными параметрами шифрования. Файл позаимствован здесь.

####################
#; 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


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

Способ заимствован здесь: [1]

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

  1. Создайте в папке /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
    
  2. Сделайте файл исполняемым, выполнив команду
    chmod +x /root/wifi_autoconnect.sh
    
  3. Запланируйте выполнение скрипта каждую минуту. Для этого:
    1. Установите cron:
      apt-get install cron
      
    2. Добавьте в конец файла /etc/crontab строку
      *  *	* * *	root	/root/wifi_autoconnect.sh
      # обязательно добавьте пустую строку в конец файла
      


Ограничения

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