Geschrieben von Frank Mankel
Kategorie: BananaPro

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:

BananaPro

BananaPi M2

Bananian 16.04

 

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:

wiki.debianforum.de

Nico (bananian.org)