Перейти к содержанию

Навигация

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

м (Отформатировал текст)
(не показано 15 промежуточных версий 2 участников)
Строка 1: Строка 1:
<languages/>
<translate>
<!--T:1-->
==Режимы работы==
==Режимы работы==
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
'''Wi-Fi''' в Wiren Board можно настроить на работу в одном из двух или трёх режимов:
Строка 18: Строка 15:


===Подключение к точке доступа===
===Подключение к точке доступа===
{{Wbincludes:WiFi Connect Default}}
Контроллер создает Wi-Fi точку доступа и мы можем подключиться к ней:
* Откройте на ноутбуке или телефоне список WiFi точек доступа.
* Выберите из списка точку доступа с именем <code>WirenBoard-XXXXXXXX</code>. Где XXXXXXXX - серийный номер контроллера.


== Настройка Wi-Fi в Linux == <!--T:4-->
При подключении по Wi-Fi контроллер будет доступен по IP-адресу '''192.168.42.1'''.
 
По умолчанию, для подключения к контроллеру по Wi-Fi не требуется пароль, но вы [[#Установка пароля на подключение к точке доступа | можете это изменить]].
 
== Настройка Wi-Fi на контроллере Wiren Board ==  


<!--T:5-->
Настройка производится стандартным для 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 подробная документация].


Строка 65: Строка 67:


=== Установка пароля на подключение к точке доступа ===
=== Установка пароля на подключение к точке доступа ===
{{Wbincludes:WiFi Set Password}}
Подключитесь к контроллеру по SSH и откройте файл настроек <code>/etc/hostapd.conf</code>, для этого введите команду:
<syntaxhighlight lang="bash">
nano /etc/hostapd.conf
</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">
/etc/init.d/hostapd restart
</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. Чтобы проверить, выполняются ли эти условия, выполните команды:
<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 инструкцию].''


#Отключите режим точки доступа:
Если условия выполнены:
#* откройте файл для редактирования
# Выполните команду
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
nano /etc/default/hostapd
iwconfig
</syntaxhighlight>
#:В её выводе должны быть показаны два интерфейса Wi-Fi: ''wlan0'' и ''wlan1''.
# Настройте по двум предыдущим инструкциям подключение в режиме клиента и подключение в режиме точки доступа, но используйте для них разные интерфейсы. Например, оставьте ''wlan0'' для точки доступа, а клиента сделайте на ''wlan1''. Соответствующая часть файла ''/etc/network/interfaces'' должна выглядеть так:
#: <syntaxhighlight lang="bash">
# 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
</syntaxhighlight>
</syntaxhighlight>
#* закомментируйте ссылку на файл <code>hostapd.conf</code>, то есть добавьте знак '''#''' в начало строки:
 
=== Отключение режима точки доступа ===
Если вы хотите перевести адаптер в [[#Настройка в режиме клиента | режим клиента]], подключиться к Wi-Fi точке доступа в [[#Подключение к Wi-Fi точке доступа вручную | ручном режиме]] или совсем отключить Wi-Fi на контроллере — отключите режим точки доступа:
#Отключите автоматический запуск сервиса <code>hostapd</code>:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
#DAEMON_CONF="/etc/hostapd.conf"
systemctl disable hostapd
</syntaxhighlight>
</syntaxhighlight>
#Отключите и остановите демон <code>hostapd</code>
#Остановите демон <code>hostapd</code>
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
systemctl disable hostapd
service hostapd stop
systemctl stop hostapd
</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
Строка 100: Строка 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>
# Запретите раздачу IP-адресов, для этого остановите DHCP-сервер:
# Сохраните и закройте файл настроек.
# Завершите настройку, для этого перезапустите беспроводной интерфейс командами:
#:<syntaxhighlight lang="bash">
ifdown wlan0 && ifup wlan0
</syntaxhighlight>
 
=== Подключение к Wi-Fi точке доступа вручную ===
{{note|note| Подключение в ручном режиме будет разорвано после перезагрузки контроллера.}}
Если у вас возникла проблема с настройкой автоматического подключения, то вы можете попробовать подключиться к Wi-Fi точке доступа вручную:
# Отключите точку доступа по инструкции в разделе [[#Отключение режима точки доступа | Отключение режима точки доступа]]
# Запустите поиск доступных точек доступа с помощью команды <code>iwlist wlan0 scanning</code>:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
systemctl disable dnsmasq
~# iwlist wlan0 scanning | grep -i essid
systemctl stop dnsmasq
                    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>
</syntaxhighlight>
# Завершите настройку перезагрузив беспроводной интерфейс:
# Подождите 15 секунд и проверьте подключение командой <code>iwconfig wlan0</code>:
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
ifdown wlan0
~# iwconfig wlan0 | grep -i essid
ifup wlan0
wlan0     IEEE 802.11bgn  ESSID:"DIR-615"  Nickname:"<WIFI@REALTEK>"
</syntaxhighlight>
</syntaxhighlight>
 
#: в примере контроллер подключён к точке доступа с именем <code>DIR-615</code>. Если в строке будет <code>unassociated</code>, то контроллер не смог подключиться.
=== Настройка в режиме точки доступа и клиента одновременно === <!--T:11-->
# Если контроллер успешно подключился к точке доступа и на ней запущен DHCP-сервер, то запустите <code>dhcpclient</code>:
 
#:<syntaxhighlight lang="bash">
<!--T:12-->
dhclient wlan0
Режим одновременной работы модуля 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>
</syntaxhighlight>
''Если условия не выполнены, возможно, на вашем Wiren Board, всё равно, можно настроить Concurrent Mode. В качестве отправной точки используйте [http://randomstuffidosometimes.blogspot.ru/2016/03/rtl8192cu-and-rtl8188cus-in-station-and.html инструкцию].''
# Проверьте, получил ли контроллер IP адрес, для этого используйте команду <code>ip a</code>:
 
<!--T:13-->
Если условия выполнены:
# Выполните команду
#:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
iwconfig
~# 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>
#:В её выводе должны быть показаны два интерфейса Wi-Fi: ''wlan0'' и ''wlan1''.
#: в примере контроллер получил ip-адрес <code>192.168.2.83</code>.
# Настройте по двум предыдущим инструкциям подключение в режиме клиента и подключение в режиме точки доступа, но используйте для них разные интерфейсы. Например, оставьте ''wlan0'' для точки доступа, а клиента сделайте на ''wlan1''. Соответствующая часть файла ''/etc/network/interfaces'' должна выглядеть так:
#: <syntaxhighlight lang="bash">
# Wireless interfaces
auto wlan1
iface wlan1 inet dhcp
    wpa-ssid {ssid} # вместо {ssid} подставьте имя точки доступа
    wpa-psk {password} # вместо {password} подставьте пароль


<!--T:14-->
Настройка подключения контроллера к точке доступа завершена.
auto wlan0
iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0
</syntaxhighlight>


=== Универcальный файл настроек Wi-Fi === <!--T:15-->
=== Универcальный файл настроек Wi-Fi ===  


<!--T:16-->
Ниже приведен текст файла с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 на сайте www.raspberrypi.org].
Ниже приведен текст файла с настройками для подключения к сетям с разными параметрами шифрования. Оригинал файла можно посмотреть [https://www.raspberrypi.org/forums/viewtopic.php?t=7592 на сайте www.raspberrypi.org].
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 174: Строка 254:
#wireless-mode managed
#wireless-mode managed


<!--T:17-->
###################
###################
#; WEP wireless config #
#; WEP wireless config #
Строка 181: Строка 260:
#; end of WEP config
#; end of WEP config


<!--T:18-->
########################
########################
#; WPA and WPA2 wireless config #
#; WPA and WPA2 wireless config #
Строка 219: Строка 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
Строка 235: Строка 314:
</syntaxhighlight>
</syntaxhighlight>
# Запланируйте выполнение скрипта каждую минуту:
# Запланируйте выполнение скрипта каждую минуту:
#* Если планировщик <code>cron</code> не установлен, установите его командой:  
#: Добавьте в конец файла <code>/etc/crontab</code> строку
#*:<syntaxhighlight lang="bash">
#:<syntaxhighlight lang="bash">
apt-get install cron
</syntaxhighlight>
#* Добавьте в конец файла <code>/etc/crontab</code> строку
#*:<syntaxhighlight lang="bash">
*  * * * * root /root/wifi_autoconnect.sh
*  * * * * root /root/wifi_autoconnect.sh
# Обязательно добавьте пустую строку в конец файла
# Обязательно добавьте пустую строку в конец файла
</syntaxhighlight>
</syntaxhighlight>
</translate>
wb_editors
884

правки