Wer einen Raspberry Pi als Server betreibt, also ohne Bildschirm und Tastatur, der kann auch die Installation ‚headless‘ vornehmen. Das passiert per SSH über das Netzwerk. Dem Thema habe ich im Rahmen meiner Artikelreihe ‚Raspberry für die Wissenschaft‘ bereits einen eigenen Beitrag gewidmet. Dabei gehe ich aber davon aus, dass der RasPi per Kabel am Local Area Network hängt. Der Raspberry Pi 3 bringt nun – im Unterschied zu seinen Vorgängern – WiFi bereits onboard mit, so dass das Kabel in vielen Fällen entfallen kann. Aber wie soll man die WLAN Einstellungen headless konfigurieren? Wie es ohne LAN-Kabel, ohne Tastatur und ohne Monitor am RasPi funktioniert, zeige ich in diesem Artikel.
Ein LAN-Anschluss konfiguriert sich beim Anstecken des Kabels automatisch sofern ein DHCP-Server eine IP-Adresse liefert. So lässt sich sofort per SSH auf einen jungfräulich frisch aufgesetzten Raspberry Pi zugreifen und die Grundkonfiguration vornehmen. Ich verweise hier auf einen meiner vorangegangenen Artikel, in dem ich detailliert die Raspbian headless Installation per SSH beschreibe. So kann ich mich hier auf die Besonderheiten bei WiFi anstelle LAN beschränken.
Das Problem
Aus naheliegenden Gründen funktioniert eine headless Installation per WiFi erst mal nicht, da wir die SSID und den Netzwerkschlüssel nicht per SSH konfigurieren können, so lange das Netzwerk nicht funktioniert. Den Trick, wie man es trotzdem hinbekommt habe ich in einem englischsprachigen Artikel auf doughbtv.com gefunden, den ich hier ausdrücklich empfehle, speziell für Leute, die kein DHCP verwenden wollen.
Die Lösung
Ein neueres Raspbian hat natürlich alle Treiber für den WLAN-Chip des Raspberry Pi 3 bereits mit dabei. Der Raspberry wird auch von sich aus versuchen WLAN zu aktivieren, wenn kein LAN-Kabel vorhanden ist. Trotzdem müssen wir dem RasPi zumindest die SSID und das WLAN-Passwort unseres Netzes mitgeben, sonst geht gar nichts. Wenn wir weder Tastatur/Monitor noch LAN-Kabel anstecken wollen, dann bleibt nur übrig, diese Informationen bereits auf die Micro-SD-Karte zu schreiben, bevor sie in den Raspberry gesteckt wird.
Schritt für Schritt
Wir gehen erst mal genauso vor, wie in meinem Artikel Raspbian headless Installation beschrieben:
- Download der Raspbian Software (hier die Version 2016-03-18-raspbian-jessie-lite)
- Entpacken der Datei
- Schreiben auf die Micro-SD-Karte
Diese drei Schritte können auf einem Windows- oder einem Linux-Rechner vorgenommen werden. Für den nächsten Schritt brauchen wir aber unbedingt Linux, denn wir müssen ein EXT4-Dateisystem mounten. Wer keinen Linux-Rechner hat – nicht mal einen laufenden Raspberry Pi, der könnte über eine virtuelle Maschine zum Beispiel unter VMware nachdenken, oder einen Windowsrechner temporär von einer Linux-CD booten. Es geht nur darum, dass wir ein EXT4-Linux-Dateisystem mounten und dort eine Datei verändern können.
Das Mounten eines SD-Speichers funktioniert üblicherweise automatisch. Wenn wir das Raspbian-Image gerade eben mit dd
auf die SD-Karte geschrieben haben, dann ziehen wir nach dem sync
die SD-Karte, bzw den USB-Adapter kurz aus dem Rechner und stecken ihn dann zurück. Linux mountet dann zwei Dateisysteme: boot und eine 1,3GB große Partition mit einem langen kryptischen Namen.
Der Ubuntu-Screenshot zeigt das sehr schön. Wir brauchen genau diese große Partition, die alle Raspbian Dateien enthält. Zum Bearbeiten von Dateien auf dieser Partition benötigen wir allerdings Rootrechte. Am einfachsten starten wir den Linux Dateimanager – in Ubuntu ist das Nautilus – per sudo, dann können wir uns weiter in der grafischen Benutzeroberfläche bewegen und brauchen nicht so viel tippen:
gksudo nautilus &
GkSudo ist die grafische Variante des Sudo-Befehls und das kaufmännische Und hinter Nautilus bewirkt, dass der Dateimanager als unabhängiger Prozess gestartet wird und das Terminalfenster gleich wieder freigegeben wird (kann man auch weglassen). Im Dateimanager bewegen wir uns nun in besagter Partition ins Verzeichnis etc/wpa_supplicant
. Dort befindet sich die Datei wpa_supplicant.conf
, die wir editieren wollen. Dazu klicken wir die Datei mit der rechten Maustaste an und wählen ‚mit gedit öffnen‘. Der Inhalt der wpa_supplicant.conf
sieht in etwa so aus:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
Den Countrycode können wir hier gleich von GB auf DE abändern, oder wir erledigen das später mit raspi-config bei den Internationalisation Options. Die wichtigen Ergänzungen sind aber folgende:
network={
ssid="WLAN SSID"
psk="WLAN Netzwerkschlüssel"
}
Diesen Block fügen wir ans Ende der Datei ein und passen ssid und psk entsprechend dem eigenen Netzwerk an. An sich war es das schon – lediglich diejenigen, die bereits einen oder mehrere Raspberry Pis in ihrem Netzwerk betreiben, wollen vielleicht gleich den Rechnernamen abändern, damit nicht alle RasPis ‚raspberrypi‘ heißen. Dazu editiert man einfach die Datei etc/hostname
. In der steht nichts anderes drin, als der Rechnername.
Update: Ab Version Jessie 2016-11-25 ist in Raspbian der SSH-Dienst aus Sicherheitserwägungen standardmäßig deaktiviert. Um das zu umgehen fügen wir auf der SD-Karte in die Boot-Partition eine leere Datei mit dem Namen ssh
ein. Dann klappts auch wieder mit SSH.
An dieser Stelle, wenn alles gespeichert ist, kann die Micro-SD-Karte in den Raspberry Pi 3 gesteckt und der mit Strom versorgt werden. Vorher empfiehlt es sich, einen Blick auf die Weboberfläche des WLAN-Routers (Fritzbox, oder was auch immer) zu werfen um beim Boot des RasPi sehen zu können, ob und welche IP-Adresse er zugewiesen bekommt.
Die weitere Grundkonfiguration per SSH erfolgt dann wieder genau so, wie in meinem Artikel weiter beschrieben.
Fazit
Prima, dass der Raspberry Pi 3 bereits WiFi auf dem Board mitbringt. So muss kein LAN-Port an der Fritzbox verschwendet, noch ein extra WLAN-Stick gekauft werden. Und mit dem hier beschriebenen Kniff braucht man auch für die Raspbian-Installation weder LAN, noch Tastatur und Monitor.
In der neuen Version geht es etwas einfacher.
https://www.linux-survival-blog.de/2017/02/raspberry-pi-raspbian-jessie-headless-ueber-wlan-installieren/
Weil man die wpa_supplicant.conf auch in die boot-Partition legen kann und es dann auch unter Windows geht. Ja stimmt – vielen Dank für den Hinweis.