19.01.2013
RaspberryPi - WLAN einrichten
Ich beschreibe hier kurz, welche Schritte notwendig sind, um eine WLAN-Stick auf dem RaspberryPi einzurichten. In dem Beispiel wird der WLan-Stick TP-Link TL-WN727N mit einen Ralink-Chip verwendet. Der TP-Link TL-WN721N mit Athos-Chipsatz funktioniert aber auch problemlos.

Als erstes verbindet man sich mit dem RaspberryPi. In der Anleitung wird davon ausgegangen, dass man sich remote per SSH mit dem RaspberryPi verbunden hat. D.h., da das WLan ja noch nicht eingerichtet ist, muss ein Netzwerkkabel vom RaspberryPi zum Netzwerk-Router (FritzBox oder ähnliches) gelegt werden. Allerdings können die beschriebenen Schritte auch direkt am RaspberryPi mit angeschlossenem Monitor und Tastatur durchgeführt werden.
Wenn man eine FritzBox verwendet, kann über die URL http://fritz.box herausgefunden werden, welche IP-Adresse der RaspberryPi hat. Diese IP-Adresse wird für den Verbindungsaufbau mit SSH benötigt.
Die Verbindung über die Netzwerkverbindung und SSH funktioniert so, dass man ein Terminal öffnet und folgendes Kommando ausführt:
$ ssh pi@192.178.168.40
Man verbindet sich also als Benutzer pi mit dem Rechner 192.178.168.40. Standardmäßig lautet das Passwort: raspberry.
Wenn die Verbindung offen ist, wird der WLAN-Stick an einen der USB-Ports angeschlossen. Ich empfehle einen USB-Hub zu benutzen. Grund dafür ist, dass es mir nach dem Einrichten des WLan hin und wieder passiert ist, dass ich keine Verbindung mehr zum Raspberry herstellen konnte. Grund dafür war wohl ein Problem mit dem WLan-Treiber. Durch den USB-Hub ist es problemlos möglich, den WLan-Stick zu entfernen und erneut mit dem Hub zu verbinden. Wenn man den USB-Port direkt am RaspberryPi verwendet, dann startet dieser sich neu und laufende Prozesse werden beendet.

Zum Überprüfen, ob der WLan-Stick erkannt wurde, wird folgendes Kommando aufgerufen:
pi@raspberrypi / $ dmesg
Die Ausgabe sollte ungefähr so aussehen:
... [ 3.683545] usb 1-1.3.4: new high-speed USB device number 5 using dwc_otg [ 3.821555] usb 1-1.3.4: New USB device found, idVendor=148f, idProduct=5370 [ 3.843113] usb 1-1.3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 3.866144] usb 1-1.3.4: Product: 802.11 n WLAN [ 3.876042] usb 1-1.3.4: Manufacturer: TPlink [ 3.882852] usb 1-1.3.4: SerialNumber: 1.0 [ 4.032430] udevd[137]: starting version 175 [ 5.547217] cfg80211: Calling CRDA to update world regulatory domain [ 6.493501] usb 1-1.3.4: reset high-speed USB device number 5 using dwc_otg [ 6.731617] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 6.733397] Registered led device: rt2800usb-phy0::radio [ 6.733528] Registered led device: rt2800usb-phy0::assoc [ 6.733666] Registered led device: rt2800usb-phy0::quality [ 6.733796] usbcore: registered new interface driver rt2800usb ...
In dem Beispiel wird ein TP-Link TL-WN727N mit einen Ralink-Chip angeschlossen, der den Treiber rt2800usb
verwendet. Ich habe allerdings auch mit einem TP-Link TL-WN721N mit Athos-Chipsatz getestet. Auch dieser Chipsatz funktioniert.

Anschließend sollte man noch schnell überprüfen, ob die Treiber-Module alle geladen wurden:
pi@raspberrypi / $ lsmod
Als Ausgabe sollte man folgendes erhalten:
... rt2800usb 13009 0 rt2800lib 47242 1 rt2800usb crc_ccitt 1465 1 rt2800lib rt2x00usb 11075 1 rt2800usb rt2x00lib 41057 3 rt2x00usb,rt2800lib,rt2800usb mac80211 236178 3 rt2x00lib,rt2x00usb,rt2800lib cfg80211 171957 2 mac80211,rt2x00lib ...
Wenn die Treiber geladen wurden, kann ein Scan des WLan-Netzes durchgeführt werden:
pi@raspberrypi / $ sudo iwlist wlan0 scan
Wichtig dabei ist das Kommando sudo
. Wenn man das vergißt, dann wird nichts gefunden. :-)
Wenn man eine Liste mit Netzwerken gefunden wird, dann wählt man sein eigenes Netz aus und konfiguriert die SSID
. Dazu wird folgende Kommando verwendet:
sudo iwconfig wlan0 essid "WLAN_NAME"
Da sich der Raspberry Pi automatisch verbinden und nicht jedesmal das WLan-Passwort eingetippt werden soll, muss dieses auf dem RaspberryPi hinterlegt werden. Da das Passwort nicht unverschlüsselt auf der SD-Karte abgelegt werden sollte, kann mit dem Tool wpa_passphrase
ein verschlüsselter Hash für den WPA2-Key erstellt werden. Das Kommando dafür ist wpa_passphrase WLAN_NAME 'WLAN_PASSWORD'
.
pi@raspberrypi /etc/wpa_supplicant $ wpa_passphrase WLAN_NAME 'Geheimes Passwort' network={ ssid="WLAN_NAME" #psk="Geheimes Passwort" psk=81ab545f5a7e5ccd360abfcdede8ed8fedcdade5f648f6deda413de5a8b8bb8e }
In der Ausgabe ist noch das geheime Passwort enthalten. Das sollte entfernt werden, wenn der erstelle network-Block in die Konfigurationsdatei übertragen wird.
Als nächstes wechselt man in das Verzeichnis /etc
und ruft ls
auf.
pi@raspberrypi /etc/wpa_supplicant $ ls action_wpa.sh functions.sh ifupdown.sh wpa_supplicant.conf
In dem Verzeichnis sollte sich die Datei wpa_supplicant.conf
befinden.
Wenn noch kein WLan eingerichtet ist, dass sollte sie folgenden Inhalt haben, wenn man sie sich mit more
ansieht:
pi@raspberrypi /etc/wpa_supplicant $ sudo more wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
Nun wird der oben generierte "network"-Block mit dem vi
hinzugefügt.
pi@raspberrypi /etc/wpa_supplicant $ sudo vi wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="WLAN_NAME" psk=81ab545f5a7e5ccd360abfcdede8ed8fedcdade5f648f6deda413de5a8b8bb8e }
Nach einem Neustart des RaspberryPi sollte das Wlan verfügbar sein. Nun kann man versuchen sich per SSH über die WLan-Verbindung mit des Raspberry Pi zu verbinden.
Hinweis: Die IP-Adresse kann sich im Vergleich zu der, die oben bei der Verbindung über das Netzwerkabel verwendet wurde, verändert haben. Ggf. muss man über die Fritzbox die IP-Adresse erneut nachschauen.
Weitere Informationen
Wenn das WLan fertig eingerichtet ist, dann hat man vielleicht auch Spass daran, seinen RaspberryPi zu einer Wetterstation zu erweitern. In dem Artikel RaspberryPi - Wetterstation habe ich beschrieben, wie das funktioniert.