In diesem Howto erkläre ich, wie man einen WLAN Accesspoint auf einem Raspberry zum Laufen bringt – trotz des immer noch aktuellen 2014’er hostapd-Bugs.
Das Programm hostapd dient dazu, einen WLAN Access Point unter Linux zu errichten. Leider enthält es einen Bug, der dazu führt, dass es mitunter etwas störrisch ist – ich berichtete darüber auch schon bei meinen Experimenten mit Airplay im Auto. Als Notiz für mich selber hinterlege ich hier, was zu tun ist, wenn der WLAN Stick mal wieder nicht angenommen wird. In meinem Szenario errichtet hier ein Raspberry eine temporäres Gäste-WLAN. Es wird bei Bedarf von mir manuell gestartet und anschließend auch wieder beendet.
Kurzfassung für den Google Bot
Der folgende Beitrag löst diese Probleme:
- WLAN soft blocked
- Unable to setup interface
- Raspberry WLAN Problem
- hostapd Interface initialization failed
- Gäste WLAN auf den Raspberry einrichten
- could not connect to kernel driver raspberry
In diesem Howto gehe ich davon aus, dass es bereits ein Raspberry Grundsystem gibt. Das System hängt mit eth0 am Intranet und verfügt darüber hinaus über einen WLAN Stick.
Howto WLAN Accesspoint
apt-get install hostapd apt-get install dnsmasq
Tipp: Falls Sie über einen Edimax EW-7811Un Mini-WLAN-Dongle verfügen, installieren Sie nicht das normale hostapd. Nutzen Sie stattdessen die angepasste hostapd-Version von Jens Segers.
Wenn das erledigt ist, wird anschließend die Datei dnsmasq.conf erzeugt, z.B. mit mcedit dnsmasq.conf.
/etc/dnsmasq.conf
interface=wlan0 dhcp-range=10.0.0.10,10.0.0.20,12h
Jetzt wird die Datei hostapd.conf erzeugt, z.B. mit mcedit hostapd.conf
/etc/hostapd.conf
interface=wlan0 driver=nl80211 ssid=FreeWifi wpa=2 wpa_passphrase=freewifi channel=6
Die Konfiguration ist jetzt soweit vorbereitet – fehlt nur noch das Startup-Skript. In diesem Skript findet die eigentliche „Magie“ statt, hier wird ein Workaround für den Bug in der hostapd produziert. Es wird die Datei start_ap angelegt, z.B. mit mcedit start_ap.
/home/user/start_ap
#!/bin/bash # Workaround sudo nmcli radio wifi off sudo rfkill unblock wlan sudo ifconfig wlan0 10.0.0.1 sleep 1 sudo service hostapd restart sudo service dnsmasq restart # Routing sudo sysctl net.ipv4.ip_forward=1 # NAT sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo hostapd /etc/hostapd.conf # Wait for STRG+C # Restore NAT sudo iptables -D POSTROUTING -t nat -o eth0 -j MASQUERADE # Restore Routing sudo sysctl net.ipv4.ip_forward=0 # Stop Services sudo service dnsmasq stop sudo service hostapd stop
chmod 755 start_ap