Wir hatten auf der FrosCon11 ein wenig Zeit, um einige Sachen nochmal zu testen und auszuprobieren.
In diesem Artikel BananaPro - WLan-AccessPoint hatte ich erklärt, wie man einen WLanAP auf einem BananaPro installiert. Dieser Artikel ist mittlerweile ein wenig veraltet, deswegen hier in aktualisierter Form.
Voraussetzungen:
Installation:
Wir erstellen ganz normal eine SD-Karte mit Bananian 16.04 und starten unseren BananaPro. Danach wie gewohnt
bananian-config
aufrufen und alle Einstellungen vornehmen. Passwort wechseln, die restlichen Anpassungen vornehmen, ganz wichtig BananaPro auswählen und Rootsystem expandieren Danach einen Reboot durchführen.
shutdown -r now
Danach hat Bananian den Kernel 3.4.111 geladen.
root@bananapro ~ # uname -a
Linux bananapro 3.4.111-bananian #5 SMP PREEMPT Fri Mar 25 17:24:42 UTC 2016 armv7l GNU/Linux
Wenn wir jetzt nachsehen ob das WLan vorhanden ist, werden wir feststellen das das nicht der Fall ist.
root@bananapro ~ # iwconfig
lo no wireless extensions. tunl0 no wireless extensions.
eth0 no wireless extensions.
Der Grund ist relativ simpel. Das entsprechende Modul wird nicht automatisch geladen. Damit das beim Start passiert, müssen wir in der /etc/modules folgendes eintragen.
ap6210 op_mode=2
Das op_mode=2 stellt das WLan-Modul als AccessPoint ein.
Dazu die Datei mit
nano /etc/modules
aufrufen. Dann
ap6210 op_mode=2
eintragen und speichern.
Danach machen wir ein Reboot.
shutdown -r now
Nachschauen ob das WLan-Modul aktiv ist.
root@bananapro ~ # 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.
Da ist das WLan-Modul ;) Damit das WLan-Modul jetzt als AP arbeitet, müssen wir einige Dateien erstellen bzw. ändern.
/etc/dnsmasq.conf
interface=wlan0 no-dhcp-interface=eth0 dhcp-range=interface:wlan0,10.0.0.20,10.0.0.30,infinite
/etc/hostapd.conf
interface=wlan0 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=password wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
/etc/network/interfaces
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # WLAN mit fester Adresse für hostapd auto wlan0 iface wlan0 inet static address 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255 # Firewall zurücksetzen, Tabellen leeren up /sbin/iptables -F up /sbin/iptables -X up /sbin/iptables -t nat -F # Kabelnetzwerk maskieren, Port-Forwarding sowie Nat aktivieren up iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT up iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE up sysctl -w net.ipv4.ip_forward=1 # hostapd und dnsmasq (neu) starten up service hostapd restart up service dnsmasq restart
Wir benötigen zwei neue Programme. Zum einen hostapd und dnsmasq. Diese müssen nun installiert werden.
apt-get install hostapd dnsmasq
Danach einmal sauber durchstarten.
shutdown -r now
Es gibt nun noch ein kleines Problem, aber dazu später mehr. Man kann die vorhandene hostapd.conf jetzt erstmal testen.
hostapd -dd /etc/hostapd.conf
Danach läuft der hostapd und man kann ihn erstmal ausprobieren. Das Problem liegt darin, das der hostapd beim Starten die hostapd.conf nicht findet. Das liegt an einem fehlenden Eintrag in der Startdatei des hostapd.
nano /etc/init.d/hostapd
Dort dann folgendes eintragen.
DAEMON_CONF=/etc/hostapd.conf
Das ganze abspeichern. Danach
service networking restart
Jetzt funktioniert der WLanAP !
Nun das ganze für den 4er Kernel.
Die Installation läuft genau wie oben angegeben. Karte erstellen, bananian-config aufrufen, alles einstellen und reboot. Ab da machen wir dann hier weiter.
Danach holen wir uns erstmal die aktuellen Pakete.
apt-get update
apt-get upgrade
Dann installieren wir den 4er Kernel.
apt-get install linux-image-4.4-bananian
Danach der Reboot, damit der Kernel auch geladen wird.
shutdown -r now
Nachschauen ob der Kernel geladen wurde.
root@bananapro ~ # uname -a
Linux bananapro 4.4.14-bananian #2 SMP Sat Jul 9 17:37:43 UTC 2016 armv7l GNU/Linux
Mit iwconfig nachschauen ob das WLan-Modul geladen wurde.
root@bananapro ~ # iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
Ok, das ist nicht der Fall. Wie gut das Nico gerade neben mir sitzt und mir erklären kann, was jetzt gemacht werden muss. ;)
bananian-hardware
aufrufen.
Dort sieht man nun den installierten Uboot, der installierte Uboot ist mit einem i markiert. Da wir das WLan-Modul auf dem Pro aktivieren wollen, müssen wir jetzt den uboot für den Pro installieren.
apt-get install u-boot-pro-bananian
Nach dem obligatorischen Neustart steht uns nun das WLan-Modul zur Verfügung.
root@bananapro ~ # iwconfig
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
lo no wireless extensions.
eth0 no wireless extensions.
Nun erstellen/editieren wir die Dateien
/etc/dnsmasq.conf
/etc/hostapd.con
/etc/network/interfaces
wie oben schon beschrieben.
Nicht vergessen, die zwei Programme hostapd und dnsmasq zu installieren.
apt-get install hostapd dnsmasq
Danach einmal sauber durchstarten.
shutdown -r now
Es gibt nun noch ein kleines Problem, aber dazu später mehr. Man kann die vorhandene hostapd.conf jetzt erstmal testen.
hostapd -dd /etc/hostapd.conf
Danach läuft der hostapd und man kann ihn erstmal ausprobieren. Das Problem liegt darin, das der hostapd beim Starten die hostapd.conf nicht findet. Das liegt an einem fehlenden Eintrag in der Startdatei des hostapd.
nano /etc/init.d/hostapd
Dort dann folgendes eintragen.
DAEMON_CONF=/etc/hostapd.conf
Das ganze abspeichern. Danach
service networking restart
Jetzt funktioniert der WLanAP !
Ausgangspunkt, Installation vom aktuellen Image. Download
Danach
bananian-config
Alles einstellen, wie wir es immer machen ;)
shutdown -r now
Dann mit
apt-get update
apt-get upgrade
apt-get dist-upgrade
auf den aktuellen Stand bringen. Danch ein Reboot.
shutdown - r now
Nachschauen, welcher Kernel geladen wurde.
root@bananapi ~ # uname -a
Linux bananapi 4.4.14-bananian #2 SMP Sat Jul 9 17:37:43 UTC 2016 armv7l GNU/Linux
Dann
root@bananapim2 ~ # iwconfig
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
lo no wireless extensions
eth0 no wireless extensions.
Das Modul für das WLan wird automatisch geladen! Die zwei bekannten Programme installieren.
apt-get install hostapd dnsmasq
Konfigurationen anpassen, siehe oben!
Netzwerk neustarten mit
service networking restart
Done!
Fazit:
Aktuell braucht man keine besonderen Pakete mehr installieren, die Angaben dazu im FAQ auf bananian.org sind veraltet. Das läßt sich alles mit den ofiziellen Paketen machen. Nico hat sich das auf seiner ToDo-Liste notiert :)
Das nächste Release von Bananian wird auf dem 4er Kernel basieren, dort wird das Modul automatisch beim Start geladen. Und nun viel Spaß beim Ausprobieren.
Quellenangabe:
Nico (bananian.org)