Orange Pi : Wifi on Orange Pi Zero


1. Сlient mode

Устанавливаем пакеты для работы с сетью:

apt install wpasupplicant iw wireless-tools

Если есть – удалить из системы пакеты: network-manager / dnsmasq / hostapd

Командой dpkg -l | grep dhcp проверить наличие нескольких установленных DHCP-клиентов (например, dhcpcd5 и isc-dhcp-client). Удалить dhcpcd5 иначе из-за конфликта, во время загрузки системы, для eth будет получен ip, а для wlan – нет!

Если в системе запущен DHCP-сервер – удалить его или убрать из автозагрузки:

sudo systemctl disable dhcpcd.service &&  sudo systemctl reboot

1.1. Автозагрузка

Отключаем интерфейс и останавливаем процессы:

ip link set dev wlan0 down
ip addr flush dev wlan0

pkill dhclient
pkill wpa_supplicant

В файл /etc/network/interfaces дописываем:

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa.conf
iface default inet dhcp

Создаем файл /etc/wpa_supplicant/wpa.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="net1"
    psk="passwd1"
}

network={
    ssid="net2"
    psk="passwd2"
}

Для проверки работоспособности, включаем интерфейс и запрашиваем ip:

ip link set wlan0 up
dhclient -v -r wlan0

1.2. Скрипт / консольный ввод команд

ip link set wlan0 up
wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant/wpa.conf -dd -f /var/log/wpa_supplicant.log
dhclient -v -r wlan0

2. Access Point mode

Устанавливаем пакеты для работы с сетью:

apt install dnsmasq hostapd

Если есть – удалить из системы пакет network-manager из-за конфликта с hostapd

2.1. Автозагрузка

В файл /etc/network/interfaces дописываем:

auto wlan0
iface wlan0 inet static
address 192.168.10.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8

Hostapd

В /etc/default/hostapd раскомментировать строчку:

DAEMON_CONF="/etc/hostapd.conf"

Файл конфигурации /etc/hostapd.conf:

ssid=ARMBIAN
interface=wlan0
hw_mode=g
channel=1
driver=nl80211

logger_syslog=0
logger_syslog_level=0
wmm_enabled=1
wpa=2
preamble=1

wpa_psk=66eb31d2b48d19ba216f2e50c6831ee11be98e2fa3a8075e30b866f4a5ccda27
#wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

noscan=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

Dnsmasq

Файл конфигурации /etc/dnsmasq.conf

interface=wlan0
no-dhcp-interface=eth0
bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.10.1,192.168.10.10,12h

Restart

ifup wlan0
service hostapd restart
service dnsmasq start

2.2 Скрипт / консольный ввод команд

#!/bin/bash

pkill wpa_supplicant
service dnsmasq stop
sleep 3

ip link set wlan0 down
ip addr flush dev wlan0
sleep 3

ip link set wlan0 up
ip addr add 192.168.10.1/255.255.255.0 broadcast 192.168.10.255 dev wlan0
wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant/ap.conf #-dd -f /var/log/wpa_supplicant.log
sleep 3

service hostapd restart
service dnsmasq start

3. Ad-Hoc mode

Точка доступа не используется, а клиенты соединяются посредством сетевых адаптеров «напрямую»

Источники