Это старая версия документа!
Настройка Banana Pi M1+ с ОС Вananian
uname -a Linux bananapi 3.4.108-bananian #2 SMP PREEMPT Thu Aug 13 06:08:25 UTC 2015 armv7l GNU/Linux
В Banana Pi M1+ используется WI-FI чип AP6181. Для этого чипа подходит драйвер от чипа AP6210. Драйвер загружается командой:
modprobe ap6210
root@bananapi /mnt # iwconfig
lo no wireless extensions.
tunl0 no wireless extensions.
eth0 no wireless extensions.
root@bananapi /mnt # modprobe ap6210
root@bananapi /mnt # iwconfig
lo no wireless extensions.
tunl0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:""
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:65 Mb/s Tx-Power:32 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Power Managementmode:All packets received
Link Quality=5/5 Signal level=0 dBm Noise level=0 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
eth0 no wireless extensions.
Посмотреть загруженные модули можно командой:
root@bananapi /etc/network # lsmod Module Size Used by ap6210 584108 0 cfg80211 173441 1 ap6210 cpufreq_conservative 5966 0 cpufreq_powersave 1197 0 cpufreq_userspace 3294 0 cpufreq_stats 5901 0 8021q 18594 0 garp 6114 1 8021q stp 1993 1 garp llc 5491 2 stp,garp
Если нужно, чтобы драйвер загружался автоматически при запуске системы, то в файл /etc/modules нужно добавить строку «ap6210».
root@bananapi /etc/network # cat /etc/modules # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. # VLAN support for BPI-R1 8021q ap6210
В линуксе Armbian используется драйвер brcmfmac и он уже есть в системе
uname -a Linux BPI 5.10.60-sunxi #21.08.2 SMP Tue Sep 14 16:28:44 UTC 2021 armv7l GNU/Linux lsmod | grep brcmfmac brcmfmac 176128 0 brcmutil 16384 1 brcmfmac cfg80211 495616 1 brcmfmac
НО!!! Оказывается, по умолчанию M1+ думает, что это просто M1, у которого нет Wi-Fi, это можно проверить командой
cat /proc/device-tree/model LeMaker Banana Pi
Если это действительно так, можно добавить следующую строку к своему /boot/armbianEnv.txt и перезагрузиться, и система должна показать правильно определить модель устройства и появится сетевой интерфейс wlan0 и т. Д.
fdtfile=sun7i-a20-bananapi-m1-plus.dtb
cat /boot/armbianEnv.txt verbosity=1 bootlogo=false console=both disp_mode=1920x1080p60 overlay_prefix=sun7i-a20 rootdev=UUID=42fa45e0-b41c-4985-8257-b549c8bd7070 rootfstype=ext4 fdtfile=sun7i-a20-bananapi-m1-plus.dtb usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
cat /proc/device-tree/model Banana Pi BPI-M1-Plus
Сканирую доступные WI-FI сети.
root@bananapi /etc # iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 40:4A:03:78:B1:5D
ESSID:"My-WI-FI"
Mode:Managed
Frequency:2.422 GHz (Channel 3)
Quality:3/5 Signal level:-69 dBm Noise level:-92 dBm
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: Unknown: DDA80050F204104A0001101044000102103B000103104700102880288028801880A880404A0378B15D1021001A5A7958454C20436F6D6D756E69636174696F6E7320436F72702E10230014486F6D6520496E7465726E65742043656E7465721024000F4B45454E4554494320736572696573104200046E6F6E651054000800060050F2040001101100155A7958454C20496E7465726E65742043656E746572100800020084103C000101
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
18 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 12 Mb/s
24 Mb/s; 48 Mb/s
Для системы без графической оболочки рекомендуется использовать supplicant tool для подключения к закрытым WI-FI сетям.
Установка пакета:
apt-get install wpasupplicant
Необходимо отредактировать файл /etc/wpa_supplicant/wpa_supplicant.conf. Если файла нет, то необходимо создать.
root@bananapi /etc/network # cat /etc/wpa_supplicant/wpa_supplicant.conf
ap_scan=1
network={
ssid="My-WI-FI"
psk="*************"
}
root@bananapi /etc/network #
Где ssid - имя WI-FI сети, psk - пароль сети.
В файл /etc/network/interfaces дописываю следующее:
auto wlan0
# dhcp configuration
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Активирую WI-FI интерфейс.
root@bananapi /etc/network # ifup wlan0 Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/wlan0/98:3b:16:c6:3e:ad Sending on LPF/wlan0/98:3b:16:c6:3e:ad Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 20 DHCPREQUEST on wlan0 to 255.255.255.255 port 67 DHCPOFFER from 10.215.130.1 DHCPACK from 10.215.130.1 bound to 10.215.130.179 -- renewal in 37933 seconds.
Проверяю, что получилось.
root@bananapi /etc/network # iwconfig
lo no wireless extensions.
tunl0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:"My-WI-FI"
Mode:Managed Frequency:2.412 GHz Access Point: 40:4A:03:78:B1:5D
Bit Rate=39 Mb/s Tx-Power:32 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=2/5 Signal level=-70 dBm Noise level=-92 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
eth0 no wireless extensions.
root@bananapi /etc/network # ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 98:3b:16:c6:3e:ad
inet addr:10.215.130.179 Bcast:10.215.130.255 Mask:255.255.255.0
inet6 addr: fe80::9a3b:16ff:fec6:3ead/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1646 (1.6 KiB) TX bytes:3662 (3.5 KiB)
Проверяю какие паке установлены в сиситеме
bananapi# dpkg -l | grep ssl ii libgnutls-openssl27:armhf 3.3.8-6+deb8u4 armhf GNU TLS library - OpenSSL wrapper ii libio-socket-ssl-perl 2.002-2+deb8u2 all Perl module implementing object oriented interface to SSL sockets ii libnet-ssleay-perl 1.65-1+deb8u1 armhf Perl module for Secure Sockets Layer (SSL) ii libssl1.0.0:armhf 1.0.1t-1+deb8u6 armhf Secure Sockets Layer toolkit - shared libraries ii openssl 1.0.1t-1+deb8u6 armhf Secure Sockets Layer toolkit - cryptographic utility bananapi# dpkg -l | grep libnl ii libnl-3-200:armhf 3.2.24-2 armhf library for dealing with netlink sockets ii libnl-genl-3-200:armhf 3.2.24-2 armhf library for dealing with netlink sockets - generic netlink
Устанавливаю hostap
bananapi# git clone git://w1.fi/srv/git/hostap.git Cloning into 'hostap'... remote: Counting objects: 78515, done. remote: Compressing objects: 100% (14137/14137), done. remote: Total 78515 (delta 64276), reused 78373 (delta 64180) Receiving objects: 100% (78515/78515), 15.86 MiB | 927.00 KiB/s, done. Resolving deltas: 100% (64276/64276), done. Checking connectivity... done. bananapi# cp defconfig .config
Дополнительно устанавливаю
bananapi# apt-get install libnl-3-dev bananapi# apt-get install libnl-genl-3-dev bananapi# apt-get install libnl-dev bananapi# apt-get install libssl-dev
Создаю ссылку
bananapi# ln -s /usr/include/libnl3/netlink netlink
Устанавливаю
bananapi# make
bananapi#
cp hostapd /usr/sbin cp hostapd_cli /usr/sbin
mkdir -p /etc/hostapd cd /etc/hostapd cat >> hostapd.conf interface=wlanx driver=nl80211 ssid=ap6210_ap_test channel=6 hw_mode=g macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=12345678 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Проверяю
cat /etc/hostapd/hostapd.conf interface=wlan0 driver=nl80211 ssid=banana channel=10 hw_mode=g macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=12345678 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
hostapd -B /etc/hostapd/hostapd.conf Configuration file: /etc/hostapd/hostapd.conf nl80211: Could not re-add multicast membership for vendor events: -2 (No such file or directory) Using interface wlan0 with hwaddr 98:3b:16:c6:3e:ad and ssid "banana" wlan0: Could not connect to kernel driver Interface initialization failed wlan0: interface state UNINITIALIZED->DISABLED wlan0: AP-DISABLED wlan0: Unable to setup interface. wlan0: interface state DISABLED->DISABLED wlan0: AP-DISABLED wlan0: CTRL-EVENT-TERMINATING hostapd_free_hapd_data: Interface wlan0 wasn't started nl80211: deinit ifname=wlan0 disabled_11b_rates=0
Смотрю, что получилось
bananapi# ifconfig
eth0 Link encap:Ethernet HWaddr 02:17:02:01:d0:e8
inet addr:10.215.130.6 Bcast:10.215.130.255 Mask:255.255.255.0
inet6 addr: fe80::17:2ff:fe01:d0e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:329 errors:0 dropped:0 overruns:0 frame:0
TX packets:275 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:42062 (41.0 KiB) TX bytes:52593 (51.3 KiB)
Interrupt:117 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1200 (1.1 KiB) TX bytes:1200 (1.1 KiB)
wlan0 Link encap:Ethernet HWaddr 98:3b:16:c6:3e:ad
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::9a3b:16ff:fec6:3ead/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:492 (492.0 B)
bananapi# iwconfig
lo no wireless extensions.
tunl0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:"banana"
Mode:Master Frequency:2.457 GHz Access Point: 98:3B:16:C6:3E:AD
Bit Rate=65 Mb/s Tx-Power:32 dBm
Retry min limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Managementmode:All packets received
eth0 no wireless extensions.
bananapi#
/ etc / init.d / hostapd
#!/bin/sh
### BEGIN INIT INFO
# Provides: hostapd
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Should-Start: $network
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Advanced IEEE 802.11 management daemon
# Description: Userspace IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP
# Authenticator
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON_SBIN=/usr/sbin/hostapd
DAEMON_DEFS=/etc/default/hostapd
DAEMON_CONF=
NAME=hostapd
DESC="advanced IEEE 802.11 management"
PIDFILE=/var/run/hostapd.pid
[ -x "$DAEMON_SBIN" ] || exit 0
[ -s "$DAEMON_DEFS" ] && . /etc/default/hostapd
[ -n "$DAEMON_CONF" ] || exit 0
DAEMON_OPTS="-B -P $PIDFILE $DAEMON_OPTS $DAEMON_CONF"
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE" -- $DAEMON_OPTS >/dev/null
log_end_msg "$?"
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --oknodo --quiet --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE"
log_end_msg "$?"
;;
reload)
log_daemon_msg "Reloading $DESC" "$NAME"
start-stop-daemon --stop --signal HUP --exec "$DAEMON_SBIN" \
--pidfile "$PIDFILE"
log_end_msg "$?"
;;
restart|force-reload)
$0 stop
sleep 8
$0 start
;;
status)
status_of_proc "$DAEMON_SBIN" "$NAME"
exit $?
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|reload|status}" >&2
exit 1
;;
esac
exit 0
/ etc / default / hostapd # Defaults for hostapd initscript # # See /usr/share/doc/hostapd/README.Debian for information about alternative # methods of managing hostapd. # # Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration # file and hostapd will be started during system boot. An example configuration # file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz # #DAEMON_CONF="" # Additional daemon options to be appended to hostapd command:- # -d show more debug messages (-dd for even more) # -K include key data in debug messages # -t include timestamps in some debug messages # # Note that -B (daemon mode) and -P (pidfile) options are automatically # configured by the init.d script and must not be added to DAEMON_OPTS. # #DAEMON_OPTS=""
Установка автоматического запуска hostapd при загрузке:
$sudo update-rc.d hostapd defaults
———— SystemD ————
$ sudo systemctl enable hostapd.service
———— SysVinit ————
$ sudo service hostapd enable
Отключение автоматического запуска hostapd при загрузке:
$sudo update-rc.d hostapd disable
———— SystemD ————
$ sudo systemctl disable hostapd.service
———— SysVinit ————
$ sudo service hostapd disable
Команда для перезапуска hostapd
$ sudo /etc/init.d/hostapd restart
———— SystemD ————
$ sudo systemctl restart hostapd.service
———— SysVinit ————
$ sudo service hostapd restart
reboot
Проверка запуска hostapd
# ps -ef | grep hostapd root 512 1 0 20:51 ? 00:00:00 /usr/sbin/hostapd -B -P /var/run/hostapd.pid /etc/hostapd/hostapd.conf /etc/init.d/hostapd status
———— SystemD ————
systemctl status hostapd
———— SysVinit ————
service hostapd status
В линуксе Armbian для управления сетью используется NetworkManager и утилиты nmcli, nmtui Для нормальной работы в качестве точки доступа нужно его отключить
systemctl disable NetworkManager
Если хочется то можно и удалить
apt-get purge network-manager
Далее просто нужно настроить hostapd который уже установлен в системе. Проверить можно командой.
dpkg -l | grep hostapd ii hostapd 3:2.9-102~armbian21.05.1+1 armhf IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
Ссылки:
http://forum.banana-pi.org/t/wifi-on-bpi-m1/246
http://wiki.lemaker.org/BananaPro/Pi:WiFi_configuration
http://geekelectronics.org/raspberry-pi/banana-pi-nastroyka-wi-fi.html
http://www.awasu.com/weblog/bpi-gateway/wifi-access-point
http://www.myhsd.net/bananapro-wifi-access-point
http://wiki.lemaker.org/BananaPro/Pi:WiFi_configuration
https://www.linux.org.ru/forum/general/9869417
https://www.apt-browse.org/browse/ubuntu/trusty/universe/i386/hostapd/1:2.1-0ubuntu1/file/etc/init.d/hostapd
https://www.apt-browse.org/browse/ubuntu/trusty/universe/i386/hostapd/1:2.1-0ubuntu1/file/etc/default/hostapd
http://www.fedora.md/2015/03/26/bpi-r1-часть-3-bananian-настройка-точки-доступа-wifi
http://hizz.livejournal.com/3817.html
http://blog.tian.it/banana-pi-pro-wlan-configuration
https://forum.banana-pi.org/t/no-wifi-on-banana-pi-m1-running-armbian-buster/9911
https://awasu.com/weblog/bpi-gateway/wifi-access-point
http://www.myhsd.net/bananapro-wifi-access-point
https://www.fedora.md/2015/03/26/bpi-r1-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-fedora-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%82%d0%be%d1%87%d0%ba%d0%b8-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%b0-wifi
https://blog.tian.it/banana-pi-pro-wlan-configuration/