WLAN-Adapter am Raspberry Pi einrichten

Typischerweise ist der Raspberry Pi per Ethernet mit dem lokalen Netzwerk verbunden. Um vom kabelgebundenen Netzwerk wegzukommen soll der Raspberry Pi mit dem vorhandenen Funknetzwerk verbunden werden. Dazu muss ein WLAN-Adapter an einem USB-Port eingesteckt sein und anschließend konfiguriert werden.

Aufgabe

  1. Stellen Sie sicher, dass der WLAN-Adapter physikalisch angeschlossen ist und innerhalb des Betriebssystems erkannt wurde.
  2. Ermitteln Sie die notwendige WLAN- und IP-Konfiguration.
  3. Konfigurieren Sie den WLAN-Adapter.
  4. Stellen Sie sicher, dass eine Funkverbindung zum Netzwerk besteht.
  5. Loggen Sie sich auf die Funkverbindung per SSH ein, um sie zu testen.

Hinweis: Bei der IP-Konfiguration ist Vorsicht geboten. Hier kann man das ganze System unbrauchbar machen. Bevor Sie die IP-Konfiguration speichern und einen Reboot auslösen, schauen Sie noch mal genau hin.

Lösung: Erste Schritte

Die folgende Anleitung bezieht sich auf die Einrichtung eines WLAN-Adapters unter der Distribution "Raspbian". Andere Distributionen erfordern unter Umständen eine Anpassung. Zum Beispiel das Installieren eines Treibers. Man sollte nicht davon ausgehen, dass jede Distribution immer die notwendigen Treiber mitbringt.

Als erstes empfiehlt sich ein Update zu machen:

sudo apt-get update
sudo apt-get upgrade

Dann steckt man den WLAN-Adapter an einen freien USB-Port ein. Dann geht es darum herauszufinden, ob der WLAN-Adapter überhaupt erkannt wurde. Dazu lässt man sich alle USB-Geräte anzeigen.

lsusb

Wenn hier etwas von "wireless" oder "802.11" steht, dann hat man schon fast gewonnen. Jetzt sollte auch eine Netzwerk-Schnittstelle mit der Bezeichnung "wlan0" vorhanden sein. Dazu lässt man sich alle Netzwerk-Schnittstellen anzeigen.

ifconfig

Befindet sich in der Liste eine Netzwerk-Schnittstelle mit der Bezeichnung "wlan0", dann ist mit der Hardware-Erkennung und Treiber-Installation alles optimal gelaufen. Jetzt kann man sich an die Konfiguration des WLAN-Clients und der IP-Einstellungen machen.

Lösung: WLAN manuell einrichten

Grundsätzlich gibt es verschiedene Vorgehensweisen, um einen WLAN-Adapter für den Raspberry Pi einzurichten. Die folgende ist die häufigste. Allerdings ist es auch die fehleranfälligste Lösung.

Zuerst installieren wir ein Tool, mit dem man sich bei der Konfiguration von WLANs etwas leichter tut.

sudo apt-get install iw

Danach prüfen wir, ob das WLAN, in das wir den Raspberry Pi einbuchen wollen, auch in Reichweite ist.

sudo iwlist wlan0 scan

Die Ausgabe zeigt alle WLAN-Netzwerke, die sich in der Umgebung befinden. Dasjenige, in das der Raspberry Pi eingebucht werden soll, sollte ebenfalls in der Liste sein. Voraussetzung dafür ist, dass der Pi sich in dessen Reichweite befindet.

Wenn die Ausgabe "wlan0 No scan results" ergibt, dann hat man vielleicht das "sudo" vergessen. Erst wenn man das richtige WLAN angezeigt wird, dann sollte man weitermachen.

Um die Verbindung einzurichten muss man die Netzwerk-Konfiguration bearbeiten. Dazu öffnet man folgende Datei:

sudo nano /etc/network/interfaces

Hier trägt man folgende Zeilen ein:

# WLAN
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "{WLANNAME}"
wpa-psk "{WLANPASSWORT}"

Selber eintragen muss man noch den WLAN-Name (SSID) und das Passwort (Pre-Shared-Key, PSK). Beide Werte sollten in Anführungszeichen ("") gesetzt sein. Es ist nicht zwingend notwendig, aber zu empfehlen, wenn Name und Passwort Zeichen enthalten, die in dieser Datei anders gewertet werden. Beispielsweise ein Leerzeichen.
Anschließend speichern und schließen: Strg + O, Return, Strg + X

Nachdem die Datei geschlossen wurde starten wir den Netzwerkdienst neu. Erst danach werden die Netzwerk-Einstellungen übernommen.

sudo ifdown wlan0
sudo ifup wlan0

Ist die WLAN-Konfiguration in den Netzwerk-Einstellungen korrekt, dann hat der Raspberry Pi vom DHCP-Server eine IP-Adresse bekommen. Man erkennt das am "DHCPACK". In der darauffolgenden Zeile wird auch die IPv4-Adresse angezeigt. Wenn nicht, dann ist der WLAN-Name, das WLAN-Passwort oder beides falsch.

Mit "ifconfig" kann man sich nochmal die Netzwerk-Schnittstellen ausgeben lassen. Wenn die Schnittstelle "wlan0" eine IP-Adresse zugewiesen bekommen hat, dann ist der Raspberry Pi mit dem WLAN verbunden.

Lösung: WLAN mit "wicd-curses" einrichten

Das Einrichten eines WLANs für den Raspberry Pi ist nicht immer einfach. Vor allem deshalb, weil man Dateien editieren muss. Das ist sehr fehleranfällig und gelingt nur, wenn man eine bestimmte Reihenfolge so ziemlich exakt einhält.
Einfacher geht es mit "wicd-curses", ein grafischer Netzwerk-Manager, der alle wichtigen Informationen in einer Benutzeroberfläche darstellt, die mit der Tastatur bedient werden muss.

Zuerst muss man "wicd-curses" installieren:

sudo apt-get install wicd-curses

Danach führt man dieses Tool einfach aus.

sudo wicd-curses

Anschließend wird die Benutzeroberfläche dargestellt, die im wesentlichen aus einer Liste der verfügbaren kabelgebundenen und kabellosen Netzwerke besteht.

Screenshot wicd-curses

"wicd-curses" muss man mit der Tastatur bedienen. Allerdings zeigt ein Menü im unteren Teil des Fensters mögliche Eingaben an.
Mit den Pfeiltasten hoch und runter kann man das Netzwerk auswählen. Mit der "Pfeiltaste nach rechts" kann man den aktuell ausgewählten Eintrag bearbeiten. Hier erfolgen die Einstellungen für IP und DNS, sowie die WLAN-Verschlüsselung mit dem WLAN-Schlüssel (Pre-Shared-Key). Hier kann man auch festlegen, wenn eine Verbindung zu einem Netzwerk automatisch hergestellt werden soll. Bei einem WLAN, zu dem man nach einem Neustart automatisch eine Verbindung aufbauen will, eine feine Sache.
Mit "F10" bestätigt man die Einstellungen. Mit "Enter" oder "C" wird die Verbindung hergestellt. Mit "Q" kann man "wicd-curses" beenden.

Hinweis: Diese Art der Konfiguration hat leider einen Nachteil, wenn man es per SSH macht. Wenn die Verbindung zu einem WLAN mit "C" aufgebaut wird, dann geht die Ethernet-Verbindung außer Betrieb. Das merkt man aber erst mal nicht. Es ist nur merkwürdig, dass das Tool keine Tastatureingabe mehr annimmt. In dem Fall wurde die Ethernet-Verbindung beendet, aber der SSH-Client hat das noch nicht bemerkt, weil der SSH-Server auf dem Raspberry Pi die Verbindung nicht ordnungsgemäß beendet hat. Üblicherweise bricht der SSH-Client die Verbindung nach einiger Zeit mit der Fehlermeldung "Write failed: Broken pipe" selber ab. Es handelt sich dabei um eine Fehlermeldung, die durch einen Timeout ausgelöst wird.
Die Ethernet-Verbindung wird also abgeschaltet, sobald man eine WLAN-Verbindung mit "wicd-curses" herstellt. Die einzige Möglichkeit sich wieder mit dem Raspberry Pi per SSH zu verbinden ist das WLAN, sofern die Konfiguration und Verbindungsherstellung erfolgreich war.
Wenn nicht, dann schaltet man die Stromversorgung des Raspberry Pi einfach ab und das steckt das Ethernet-Kabel aus. Dann steckt man es wieder ein und nimmt den Raspberry Pi in Betrieb. Wenn "wicd-curses" beim Start ein per Ethernet angeschlossenes Netzwerk findet, dann bleibt die WLAN-Verbindung außer Betrieb, auch wenn man die automatische Verbindung dafür aktiviert hat.

Zum Verständnis: "wicd-curses" ist ein Netzwerk-Manager. Er stellt Verbindungen zu bekannten Netzwerken her und baut sie auch selbständig ab. Das heißt, wird ein Raspberry Pi gestartet, dann wird "wicd-curses" bevorzugt das kabelgebundene Netzwerk in Betrieb nehmen, auch wenn ein WLAN-Adapter angeschlossen und konfiguriert ist. Ist das der Fall und das Netzwerkkabel wird abgesteckt, dann verbindet sich der WLAN-Adapter automatisch mit dem konfigurierten Netzwerk. Steckt man das Netzwerkkabel wieder an, bleibt die WLAN-Verbindung bestehen. Steckt man jetzt den WLAN-Adapter aus, dann geht die Ethernet-Verbindung in Betrieb und zwar so, wie es konfiguriert ist. Wenn man das kabelgebundene Netzwerk in "wicd-curses" nicht konfiguriert hat, dann ist DHCP aktiviert.
Hierzu muss man auch wissen, dass "wicd-curses" die Konfiguration in der "/etc/network/interfaces" beim "Management" ignoriert. Wenn man also bisher die Netzwerk-Einstellungen dort gemacht hat und jetzt "wicd-curses" verwenden will, dann sollte man konsequenterweise auch das kabelgebundene Netzwerk dort konfigurieren.

Es ist zu empfehlen die Datei "/etc/network/interfaces" zu bearbeiten. Dort muss man alle Interfaces von "static" oder "dhcp" auf "manual" umstellen. Wenn man das nicht macht, kann es zu unvorhergesehenen Problemen kommen.

Problem: Kein Auto-Reconnect

Wenn man das WLAN manuell eingerichtet hat und der Access Point einmal abgeschaltet wird, dann bricht die WLAN-Verbindung ab. Logisch. Wenn der Access Point wieder in Betrieb geht, dann verbindet sich der Raspberry Pi allerdings nicht automatisch mit dem WLAN. Wenn man das möchte, dann muss man das konfigurieren. Dazu muss man ein paar Dateien kopieren.

Zuerst wechselt man in ein anderes Verzeichnis:

cd /etc/ifplugd/action.d

Dann benennt man die Datei "ifupdown" um:

sudo mv ifupdown ifupdown.alt

Anschließend kopiert man die Datei, in der der Befehl für den WLAN-Reconnect steht an die Stelle der Datei "ifupdown".

sudo cp /etc/wpa_supplicant/ifupdown.sh /etc/ifplugd/action.d/ifupdown

Nach einem Neustart sollte der WLAN-Reconnect automatisch erfolgen.

sudo reboot

Erweiterung: Energiesparmodus des WLAN-Adapters abschalten

Standardmäßig ist bei einigen WLAN-Adaptern das „Power Saving“ aktiviert. Das ist ein „Schlafmodus“ oder besser gesagt eine Energiesparfunktion. Das bedeutet, dass der Adapter bei Inaktivität die Netzwerkverbindung abschaltet. Das ist kein Problem, wenn man den Raspberry Pi als Client benutzt. Dann wird die WLAN-Verbindung einfach wieder aktiviert. Doch wenn man aus der Ferne über WLAN zum Beispiel per SSH auf den Raspberry Pi zugreifen möchte, dann ist dieser unter Umständen nicht erreichbar.