Настройка 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/
https://adminblog.net.ua/raspberry/sozdanie-wi-fi-tochki-dostupa-raspberry-pi.html