Raspberry Pi Zero W „headless“ Setup – so geht’s

Der Raspberry Pi Zero W kommt für wenig Geld daher. Er verfügt ab Werk über WLAN (und Bluetooth). Sind Adapter für Mini-HDMI und Micro-USB nicht im Haus, kommt ein Setup mit Monitor und Tastatur nicht infrage. Und die fehlende LAN-Buchse am Zero bedeutet: Der Kaugummistreifen muß erstmal ins WLAN.

Eine lösbare Herausforderung …

Den Zero W gibt es für unter 15 EUR (ohne Zubehör) bzw. für unter 30 Euro als Essential Paket (z.B. bei Amazon). Für die Installation wird eine geeignete Micro-SD-Karte mit mindestens 8GB Kapazität benötigt. Außerdem ein Kartenleser (z.B. von Lexar, bei Amazon), welcher an einen weiteren Rechner angeschlossen wird.

Vorbereitung

Das Bespielen der SD-Karte mit Raspbian lt. Install Guide ist schnell erledigt und mündet folgender Partitionierung:

  1. die boot-Partition, welche das DOS-Dateisystem nutzt und
  2. die root-Partition, welche das Linux Ext-Dateisystem nutzt.

Wir werden ausschließlich den Inhalt der boot-Partition erweitern, dank DOS-Dateisystem sind die folgenden Änderungen unter allen populären Betriebssystemen möglich.

OpenSSH-Service aktivieren

Gemäß offizieller Anleitung (Abs. 3) ist im Stammverzeichnis der boot-Partition eine Datei namens ssh zu erstellen. Die reine Existenz dieser Datei führt im Raspian-Boot-Prozess dazu, dass der OpenSSH Server automatisch aktiviert wird und eingehende Verbindungen auf Port 22 annimmt.

WLAN-Konfiguration vorbereiten

Der zweite Schritt ist etwas umfangreicher. Ebenfalls im Stammverzeichnis der boot-Partition wird die Datei wpa_supplicant.conf erstellt. Lt. ungeprüfter Aussagen muss sie Linux-Zeilenenden aufweisen. Wie in den Hintergrundinformationen angekündigt, wird diese Datei beim Start automatisch an die richtige Stelle /etc/wpa_supplicant/ verschoben.

Die Datei hat folgenden Inhalt:

country=DE 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev 
update_config=1 
network={
     ssid="WLAN SSID"
     scan_ssid=1
     psk="WLAN PASSWORT"
     key_mgmt=WPA-PSK
}

Die Werte WLAN SSID und WLAN PASSWORT sind natürlich durch die tatsächlichen Angaben zu ersetzen. Befindet man sich nicht in Deutschland, ist DE durch den ISO-Code des aktuellen Landes zu ersetzen.

Start

Damit sind die Vorbereitungen für den ersten Start abgeschlossen. Die SD-Karte wird nun in den Raspberry Pi gesteckt und dieser mit Energie versorgt. Nach einigen Sekunden sollte der Raspberry Pi im WLAN auftauchen, als Standard-Hostname wird dabei raspberrypi verwendet. Im WLAN-Access Point sollte sich auch die vergebene IP-Adresse ermitteln lassen.

Mittels eines geeigneten SSH-Clients kann nun die Anmeldung erfolgen. Das Passwort zum Standard-Benutzer pi ist in der offiziellen Dokumentation zu finden und sollte nach der 1. Anmeldung unbedingt geändert werden.

Das Verfahren zur WLAN-Client-Definition kann übrigens wiederholt werden und eignet sich somit auch, um eine nachträgliche Änderung headless durchzuführen.

15 Antworten auf „Raspberry Pi Zero W „headless“ Setup – so geht’s“

  1. Eine gängige Beschreibung für die Kodierung des Zeilenumbruchs unter Linux. Dort wird ausschließlich das Line Feed („LF“, ASCII Code 10) Zeichen verwendet, während bei Windows bzw. DOS zunächst der Wagenrücklauf (Carriage Return, „CR“, ASCII Code 13) gefolgt von LF zum Einsatz kommt. Dieses (aus Linux-Sicht) überschüssige Zeichen am Zeilenende wird manchmal dem Zeileninhalt zugeordnet und verändert dadurch seine logische Bedeutung.

    Siehe auch Wikipedia.

  2. Danke für die schöne Beschreibung – in 5 Minuten ist alles erledigt und funktioniert prima. Was war das früher immer für ein Umstand, als ich mich noch mit dem neu zu installierenden Raspi im Wohnzimmer vor den Fernseher setzen musste …

    Zur Datei wpa_supplicant.conf mit den „Linux-Zeilenenden“: Wer – wie ich – auf seinem Windows-Rechner Cygwin hat, kann sie mit vi/vim erzeugen, dann passt bereits alles. (Die leere Datei ssh erzeugt man in der Shell dann mit „>ssh“.)

    Alternativ kann man sie unter Windows mit notepad++ anlegen (oder sonst einem Editor, bei dem sich das Format der Zeilenenden beeinflussen lässt).

    Thomas

  3. War ich froh, diese Anleitung gefunden zu haben. Leider hat es überhaupt nicht funktioniert. An der Micro-SD-Karte, dem Abbild von Raspian, dem Router und dem Netzteil liegt es nicht, denn mit einem Raspi 3b+ funktioniert das mit den Teilen ganz normal. Ich habe es mehrfach versucht, SSID und Passwort mal mit, mal ohne „“, keine Chance. Der Zero ist im WLAN nicht sichtbar. Muss man noch DHCP aktivieren? Oder irgendwo eine feste IP vergeben? Da in anderen Anleitungen im Netz exakt wie hier vorgegangen wird und es bei anderen Besuchern dieser Seite hier auch tadellos funktioniert hat, nehme ich mal an, dass höchstwahrscheinlich mein Zero defekt ist. Wäre ärgerlich… Wie kann man das feststellen? Nach Stromzufuht flackert die grüne LED ein paar mal, das hört nach ca. 1 Minute auf. Dabei zieht der Zero so zwischen 0,04 und 0,18 A. Nach einer Minute bleibt es bei 0,05 A. Sieht alles plausibel aus. Irgendwelche Ideen?

  4. Schwer zu sagen, woran es liegen könnte, zumal die gleiche SD-Karte mit einem RPi3 zum gewünschten Ergebnis führt. Wenn Du einen Mini-HDMI Adapter zur Hand hast, wäre ein Anschluß des Zeros an einen Fernseher oder Monitor vermutlich der einfachste Weg zu einer Analyse. Mehr fällt mir da leider auch nicht ein.

  5. OK, danke. An den HDMI-Anschluss habe ich noch gar nicht gedacht 😉 Ich besorge mir so einen Adapter und versuche es nochmal.

  6. Hallo Christoph, hallo Frank,

    ich hatte heute das gleiche Problem. Die Ursache liegt wohl in einem Zeilenumbruch im Listing oben (wie auch immer der da reingekommen ist):

    falsch (zwei Zeilen):
    ctrl_interface=DIR=/var/run/wpa_supplicant
    GROUP=netdev

    richtig (in einer Zeile):
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

    Siehe z.B. https://desertbot.io/blog/setup-pi-zero-w-headless-wifi

    Getestet mit dem aktuellen Raspbian Image (Raspbian Stretch Lite, Version: November 2018, Release date: 2018-11-13, Kernel version: 4.14)

    Grüße
    Johannes

  7. Hi!

    ich habe ebnen Stunden damit verbracht zu merken, dass
    die Zeile „GROUP=netdev“ dazu führt, dass das Skript nicht verarbeitet wird. Ohne Fehlermeldung.

    Also auskommentieren, dann geht es.

  8. *Kopfschüttel**Kopfschüttel**Kopfschüttel*

    1.) Das Wifi-Passwort als plaintext, in eine frei zugängliche Datei unter fat32, abzulegen ist besonders intelligent.

    wie wäre es z.B. mit
    $ sudo wpa_passphrase „WLAN SSID“ „WLAN PASSWORT“ >> /etc/wpa_supplicant/wpa_supplicant.conf

    und anschließendem Löschen der Quelldatei?

    2.) Der Verzicht auf ssh-keys steigert das ganze. Wenn ssh aktiviert wird, wird es auch benötigt, dann bitte aber keys (mit oder ohne Passwort) verwenden!
    $ ssh-keygen
    $ ssh-copy-id user@machine

    mit diesem extremen Aufwand, 3 Befehle einzutippen, krümmt sich niemand ein Haar.

    3.) Vielleicht geht man einen Schritt weiter und entfernt auch den Hinweis, das Startpasswort sofort zu ändern…
    $ passwd pi

    *Kopfschüttel**Kopfschüttel**Kopfschüttel*

  9. Hallo Mr. AtiX,

    danke für Deinen Kommentar. Die von Dir angeführten Schritte sind sinnvoll und wichtig zur Absicherung des Zielsystems. Sie gehen allerdings über den „Scope“ meines Beitrags hinaus.

    Gruß

    Christoph

  10. Sehr schöne Anleitung,

    leider löscht mein Raspberry pi Zero W immer wieder die SSH und wpa_supplicant Datei aus der Boot Partition. An der SD Card liegt es nicht. Insgesammt 10 Stück (Neue und etwas ältere) habe ich getestet, leider alle das selbe Ergebnis.

    Vielleicht jemand eine Idee woran es liegen könnte? Die Logs geben leider auch nichts sinnvolles dazu aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.