Raspberry Pi als WLAN Access Point

Veröffentlicht am von

Der Raspberry Pi lässt sich im Bereich der Homeautomation für die unterschiedlichsten Aufgaben verwenden. Ein Thema dabei ist die Steuerung des Hauses über Tablet oder Smartphone. Da diese ja keinen LAN-Anschluss haben, muss ein WLAN her. Sicherlich kann man geeignete WLAN Access Points oder Verstärker kaufen, aber so eine selbstgebaute Lösung ist doch erstens viel spannender und zweitens auch platzsparender. Ein Raspberry Pi kann ganz einfach in einer Zwischendecke oder Vorwand verschwinden, wo für einen voll ausgestatteten Plastikkasten von der Stange inklusive Antennen kein Platz mehr ist.

Benötigte Komponenten

  • Raspberry Pi
  • USB Netzteil
  • USB WLAN Stick (300 MBit)
  • SD-Card Class 10 (>= 4GB)
  • Netzwerkkabel

Installation

Basis Installation

Ich erkläre die Installation anhand eines Raspbian Systems. Auf anderen Betriebssystemen sollte die Installation ähnlich funktionieren. Wie man ein Basis-System aufsetzt, kannst Du im Raspberry Grundlagen Tutorial nachlesen. Danach geht es hier weiter.

Für das Tutorial gehe ich von folgenden Gegebenheiten aus. Die IP-Adressen musst Du für Deine Installation entsprechend anpassen:

  • Router/Gateway: 192.168.178.1
  • Nameserver: 192.168.178.1
  • Broadcast-Adresse: 192.168.178.255
  • Netmask: 255.255.255.0
  • Die Adressen von 192.168.178.2 bis 192.168.178.99 sind für Server, Router, NAS, etc. mit fixen IP-Adressen reserviert.
  • Die Adressen 192.168.178.100 bis 192.168.178.200 werden vom DHCP automatisch an angeschlossene Clients vergeben
  • Die Adressen 192.168.178.201 bis 192.168.178.254 sind für spezielle Verwendungszwecke vorgesehen (z.B. Bridge-Interfaces, Switches, etc.)

Netzwerk konfigurieren

Zuerst müssen wir die Netzwerkkonfiguration anpassen. Um den Remote-Zugang zu unserem Access Point zu vereinfachen, vergeben wir eine feste IP-Adresse für das LAN. Außerdem konfigurieren wir eine Bridge, die den Netzwerk-Verkehr vom WLAN in das LAN weiterleitet. Der WLAN-Adapter selbst benötigt keine feste IP-Adresse.

Dazu muss die Datei /etc/network/interfaces bearbeitet werden.

pi@accesspoint02 ~ $ sudo nano /etc/network/interfaces

Der Inhalt der Datei muss wie folgt ersetzt werden. Bitte beachte, dass Du die IP-Adressen entsprechend deinen Gegebenheiten anpassen musst.

auto lo
iface lo inet loopback


iface default inet dhcp


# Bestehendes Netzwek
iface eth0 inet static
address 192.168.178.3
netmask 255.255.255.0
broadcast 192.168.178.255
gateway 192.168.178.1
dns-nameservers 192.168.178.1


# WLAN Interface
allow-hotplug wlan0
iface wlan0 inet manual


# Netzwerkbrücke
auto br0
iface br0 inet static
address 192.168.178.203
netmask 255.255.255.0
broadcast 192.168.178.255
gateway 192.168.178.1
dns-nameservers 192.168.178.1
bridge_ports eth0 wlan0
bridge_fd 0
bridge_stp no

Danach die Konfiguration mit „STRG-X“, „Y“ und <ENTER> speichern. Damit die neuen Settings verwendet werden, muss der Raspberry Pi noch neu gestartet werden.


pi@accesspoint02 ~ $ sudo reboot

hostapd installieren

Um einen Access Point zu betreiben, wird das Paket „hostapd“ benötigt. Dieses wird via apt-get installiert:

pi@accesspoint02 ~ $ sudo apt-get install hostapd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
hostapd
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 419 kB of archives.
After this operation, 908 kB of additional disk space will be used.
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main hostapd armhf 1:1.0-3 [419 kB]
Fetched 419 kB in 1s (241 kB/s)
Selecting previously unselected package hostapd.
(Reading database ... 68801 files and directories currently installed.)
Unpacking hostapd (from .../hostapd_1%3a1.0-3_armhf.deb) ...
Processing triggers for man-db ...
Setting up hostapd (1:1.0-3) ...

hostapd konfigurieren

Als nächstes erstellst Du eine Datei für die Konfiguration im Verzeichnis /etc/hostapd

sudo nano /etc/hostapd/hostapd.conf

in diese Datei fügst Du folgendes ein:

ssid=<SSID_DEINES_NETZWERKS>
wpa_passphrase=<DEIN_STRENG_GEHEIMES_PASSWORT>
ignore_broadcast_ssid=0


ctrl_interface=/var/run/hostapd
interface=wlan0
bridge=br0
driver=nl80211
hw_mode=g
channel=6
wpa=2


beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400

Mit „STRG-X“, „Y“, <ENTER> wird die Datei gespeichert.

<SSID_DEINES_NETZWERKS> und <DEIN_STRENG_GEHEIMES_PASSWORD> musst Du entsprechend ersetzen. Außerdem kannst Du bei channel, wenn benötigt, einen anderen Wert eintragen.

Jetzt muss noch in der /etc/default/hostapd die erstellte Konfiguration als Standard gesetzt werden:

sudo nano /etc/default/hostapd
...
DAEMON_CONF="/etc/hostapd/hostapd.conf"
...

Mit „STRG-X“, „Y“, wird die Datei, wie gehabt, gespeichert.

Danach kannst Du die Konfiguration testen:

pi@accesspoint02 ~ $ sudo hostapd -dd /etc/hostapd/hostapd.conf

Wenn alles gut läuft – prima. Falls nicht und Du bekommst einen Fehler wie den folgenden

random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd/hostapd.conf
nl80211: 'nl80211' generic netlink not found
Failed to initialize driver 'nl80211'
rmdir[ctrl_interface]: No such file or directory

Dann wird mit großer Wahrscheinlichkeit Dein WLAN-Stick nicht unterstützt. Ich verwende einen Stick, der auf dem Realtek RTL8192CU Chip basiert. Dieser wird von hostapd leider nicht unterstützt. Aber Realtek stellt eine gepatchte Version des hostapd zur Verfügung.

hostapd von Realtek installieren

Die angepasste Version von hostapd findest Du auf der Download-Seite von Realtek. Hier musst Du nach dem von Dir verwendeten Chipset suchen und den entsprechenden Treiber („Linux Kernel …“) in Dein Homeverzeichnis herunterladen.

Danach wird die ZIP-Datei entpackt und die neue Version von hostapd gebaut


pi@accesspoint02 ~ $ unzip RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
...


pi@accesspoint02 ~ $ tar zxvf RTL8188C_8192C_USB_linux_*/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8_rtw_*.tar.gz
...


pi@accesspoint02 ~ $ cd wpa_supplicant_hostapd-0.8_*/hostapd/
pi@accesspoint02 ~/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd $ nano Makefile


...
CFLAGS=-MMD -Os
...

STRG-X, Y, ENTER

pi@accesspoint02 ~/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd $ make
...


pi@accesspoint02 ~/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd $ sudo cp hostapd hostapd_cli /usr/sbin/

Danach muss in der hostapd.conf der Eintrag für den Treiber noch angepasst werden:

...
driver=rtl871xdrv
...

Jetzt kann die Konfiguration erneut getestet werden. Wenn alles klappt, mit STRG-C den hostapd beenden und dann als Daemon neu starten:


pi@accesspoint02 ~ $ sudo service hostapd restart

Viel Spaß mit Deinem neuen WLAN Access Point!

(Foto: Thorben Wengert  / pixelio.de)

Kommentare sind deaktiviert