Настройка беспроводной точки доступа в Debian Stretch на одноплатном компьютере HummingBoard

Целью данной заметки является детальное описание способа установки и настройки WiFi-точки доступа на одноплатном компьютере HummingBoard производства SolidRun.

На всех этапах для выполнения описанных операций на взрослом компьютере используется ОС Ubuntu и необходимое для выполнения тех или иных операций ПО, запускаемое в рамках данной ОС. В процессе настройки крайне рекомендуется подключить компьютер к сети через проводной Ethernet-интерфейс.

=== Установка Debian Stretch ===

Качаем образ операционной системы с сайта производителя по ссылке:

$ wget https://images.solid-build.xyz/IMX6/Debian/sr-imx6-debian-stretch-cli-20180203.img.xz

Распакуем загруженный образ:

$ xz -d sr-imx6-debian-stretch-cli-20180203.img.xz

Теперь необходимо подключить к компьютеру SD-карту, куда будет выполнено копирование распакованного образа ОС, т.е. ту SD-карту, с которой непосредственно будет грузится ОС на одноплатном компьютере. После выполнения команды dmesg | tail получаем следующий выхлоп в консоли:

[73347.578455] sd 6:0:0:0: [sdb] 15523840 512-byte logical blocks: (7.95 GB/7.40 GiB)
[73347.651927] sdb: sdb1

Т.е. SD-карта прописалась в нашей "взрослой" linux-системе как устройство /dev/sdb. Команда для копирования образа на SD выглядит следующим образом:

$ sudo dd if=sr-imx6-debian-stretch-cli-20180203.img of=/dev/sdb bs=1M conv=sync,noerror

Особенность дистрибутива по ссылке заключается в том, что доступное по его мнению пространство на SD-карте равно 1 Гбайт. Конкретно в нашем случае ёмкость SD-карты - 8 ГБайт, поэтому доразметим её для использования всего доступного пространства с использованием gparted:

 

 

=== Подключение и авторизация ===

После завершения копирования образа на SD-карту вставляем её в целевую HummingBoard и подаём на неё питание. На самой плате после подачи питания практически сразу начнёт моргать один из светодиодов, а через некоторое небольшое время плата станет доступна для подключения через SSH (к роутеру через сетевой кабель плата была подключена заблаговременно). Через WEB-интерфейс роутера выясняем IP-адрес платы: 192.168.0.2 и выполняем подключение:

$ ssh Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..0.2

Для пользователя debian пароль по умолчанию - debian. После авторизации можно проверить версию установленной ОС следующим образом:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:  Debian GNU/Linux 9.3 (stretch)
Release:    9.3
Codename:    stretch

Первым делом выполним полное обновление системы до актуального состояния. Примечателен тот факт, что если б ранее мы не доразметили SD-карту, добавив свободного пространства нашим разделам, то процесс обновления системы, команды для которого даны ниже, прервался бы в какой-то момент времени ввиду отсутствия свободного места на SD-карте:

$ sudo apt-get update && sudo apt-get upgrade

Перед началом настройки точки доступа установим несколько пакетов, которые потребуются в будущем:

$ sudo apt-get install nano net-tools hostapd dnsmasq

 

  • Пакет nano - не нуждающийся в представлении популярный консольный текстовый редактор.
  • Пакет net-tools содержит весьма необходимую и очень удобную утилиту ifconfig - для проверки текущего состояния того или иного сетевого интерфейса в системе.
  • Пакет hostapd, как следует из названия, содержит user-space ПО для организации непосредственно точки доступа.
  • Пакет dnsmasq представляет собой простой и лёгкий в настройке DNS+DHCP сервер. В нашем конкретном случае будет задействована только DHCP-часть данного ПО.

=== Настройка точки доступа WiFi (WiFi Access Point - WAP) ===

На плате HummingBoard для поддержки WiFi используется чип WL18xx от Texas Instruments. В соответствии с информацией о состоянии поддержки тех или иных драйверов, доступной по ссылке, приходим к выводу, что рассматриваемый чип может быть использован как точка доступа при работе в рамках ОС Linux. Выполняем настройку беспроводного интерфейса:

$ sudo nano /etc/netword/interfaces.d/wlan0

Сюда необходимо внести следующие строки:

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.8.1
netmask 255.255.255.240
hostapd /etc/hostapd/hostapd.conf

Обратите внимание на строку "allow-hotplug wlan0". Если взамен неё использовать "традиционную", мелькающую в интернете строку "auto wlan0", то беспроводной интерфейс не будет автоматически включаться (подниматься) на старте системы.

Выполняем настройку hostapd:

$ sudo nano /etc/hostapd/hostapd.conf

В этот свежесозданный файл необходимо внести следующие строки:

interface=wlan0
driver=nl80211
ssid=DEMO_AP
country_code=RU
hw_mode=g
channel=6
macaddr_acl=0
ignore_broadcast_ssid=0

auth_algs=1
wpa=2
wpa_passphrase=11111111
wpa_key_mgmt=WPA-PSK WPA-EAP WPA-PSK-SHA256 WPA-EAP-SHA256
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

disassoc_low_ack=0

Очевидно, параметры ssid и wpa_passphrase определяют название и пароль для подключения к поднимаемой беспроводной сети. Теперь созданный конфиг необходимо прописать в системе:

$ sudo nano /etc/default/hostapd

В этом файле необходимо найти строку:

#DAEMON_CONF=""

 и заменить её на:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

На предпоследнем шаге внесём изменения в конфиг dnsmasq. Сам по себе конфиг dnsmasq по умолчанию уже содержит много настроек и ещё больше комментариев. Наша задача - найти строки с перечисленными параметрами и отредактировать их:

$ sudo nano /etc/dnsmasq.conf

Список параметров, подлежащих изменению, таков:

port=0
interface=wlan0
no-dhcp-interface=lo,eth0
bind-dynamic (вместо закомментированного bind-interfaces)
dhcp-range=192.168.8.3,192.168.8.10,255.255.255.240,12h

Включаем автозапуск настроенных служб:

$ sudo systemctl enable hostapd
$ sudo systemctl enable dnsmasq

Самые последние приготовления подразумевают два действия. Во-первых, необходимо явным образом разрешить работу беспроводного интерфейса в рамках ОС:

$ sudo rfkill unblock wifi

Во-вторых, отключить одну из клиентских служб для доступа к беспроводным сетям, раз уж мы решили стать самостоятельной беспроводной сетью:

$ sudo systemctl mask wpa_supplicant.service

Система настроена, осталось лишь перезагрузить её:

$ sudo reboot

 

Сразу после перезагрузки появится защищённая беспроводная сеть с именем DEMO_AP и паролем доступа "11111111".

© ООО "Контроль-В" 2012 - 2018