Roaming Raspberry Pi

Mit folgender Konfiguration wird ein Raspberry Pi 2 unter Raspbian 4.1 (Debian 8 Jessie) dazu gebracht automatisches WLAN roaming durchzuführen.
Die Lösung arbeitet mit dem Daemon wpa_supplicant im wpa-ap-mode 2. Dieser Daemon hat den Vorteil, im Betrieb keine grafische Oberfläche zu genötigen.

# Inhalt von /etc/network/interfaces:
# ----------------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-driver wext
    wpa-ap-mode 2
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Die WLAN Konfigurationsdatei wpa_supplicant.conf spezifiziert dabei die zu verwendenden WLAN Netze und gleichzeitig deren Reihenfolge bei der Suche.

Die Datei wird am einfachsten mit dem (grafischen) Tool wpa_gui erstellt und verwaltet. Das Tool ist evtl. noch nach zu installieren mit:

sudo apt-get install wpagui

Nach dem Starten der grafischen Oberfläche mit startx, öffnen eines Terminals und Starten des Tools mit sudo wpa_gui & , kann Die eigentliche Konfiguration von neuen Netzen nun mit Hilfe von WLAN Scan entsprechender Auswahl und anschliessender Eingabe der WLAN Parameter erzeugt werden. Das Abspeichern der WLAN Konfiguration mit File->Save ist abschliessend Pflicht.

Um sicher zu gehen das in Zukunft alles auch automatisch funktioniert, sollte nun ein sudo reboot erfolgen.

Ein Prüfen mit welchem WLAN man gerade verbunden ist, kann auf der Kommandozeile mit Hilfe des Kommandos iwconfig jederzeit leicht durchgeführt werden.

# Beispiel Inhalt von /etc/wpa_supplicant/wpa_supplicant.conf
#------------------------------------------------------------
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="Android-AP-4711"
    psk=f72c74506cc80f080db5e2ece7fc830b1435c7b31785838051bfe6ec413814e2
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    auth_alg=OPEN
}

network={
    ssid="Welcome-Netz"
    key_mgmt=NONE
    auth_alg=OPEN
}