Raspberry Pi im Headless-Modus (mit Laptop statt externer Tastatur, Maus & Monitor)

Peter Voigt peter.voigt1 at gmx.net
So Okt 27 18:19:27 CET 2013


Dank der zügigen Abwicklung durch Wolfgang konnten die bestellten "Himbeeren"
schon beim letzten Treffen der Lugrav verteilt werden.

Für einen ersten Test müssen weder Maus, Tastatur noch Monitor angeschlossen
werden. Im sog. *Headless-Modus* füllt ein Laptop die Lücke. Mit einem PC 
funktioniert es natürlich auch.


Vorgehensweise Headless-Modus
-----------------------------

- Eine *SDHC-Karte* mit dem neuesten Raspbian beschreiben und am Raspberry Pi
  einklinken.

- Den Raspberry Pi mit einem Netzwerkkabel an den *Switch* eines lokalen Netzes
  anstöpseln, in welchem ein DHCP-Server aktiv ist.

- Den Raspberry Pi per Ladegerät eines Smartphones ans *Stromnetz* anschließen
  und kurze Zeit warten, bis die LEDs auf dem Board nicht mehr flackern.

- Ermitteln, welche *IP-Adresse* der Raspberry Pi nutzt.

- Per *SSH* als Benutzer 'pi' mit Passwort 'raspberry' auf das Gerät zugreifen.


Stolperstein SDHC-Karte
-----------------------

Zu Beginn sollte man eine Karte mit mindestens 4 GB aber nicht mehr als 32 GB
einsetzen.

Laut Forum soll nicht jede SDHC-Karte funktionieren. 

Jeder Hersteller hat Karten im Angebot, die laufen oder nicht laufen. 

Es gibt kein erkennbares Kriterium. Die Hersteller legen die verbauten Controller
nicht offen. Deshalb ist halt zu probieren, bis es mit einer Karte klappt.

Die im Internet verbreiteten Listen funktionierender Karten sind mit Vorsicht
zu genießen, weil die Hersteller die technische Auslegung ihrer Karten ohne
Vorwarnung ändern, ohne die Modellbezeichnung anzupassen.

(Bei mir lief bereits die erste Micro-SDHC-Karte mit NoName-Adapter auf dem Rasp-
berry Pi. Mein Problem war nur, einen Rechner zu finden, der gewillt war, diese
Karte mit dem Image zu beschreiben.)

Alternative: Man kann Karten mit vorinstalliertem OS kaufen. Solche Karten sollten
am Raspberry Pi funktionieren.


Auswahl OS
----------

Für den ersten Versuch habe ich Raspbian als OS gewählt, weil es sich um ein
Standard-Debian mit geringen Änderungen handelt, welches im Internet gut doku-
mentiert ist.

Die aktuelle Version findet sich auf 'http://www.raspberrypi.com/downloads'.

Es gibt mehrere Raspbian-Versionen. Ich habe das Raw-Image (im Download rund 0,5 GB)
gewählt.

Die herunter geladene Datei wurde mit 'unzip' in ein 2,8 GB großes Image 
expandiert und per 'dd' auf die SDHC-Karte geschrieben. Das Beschreiben dauerte
eine gefühlte Ewigkeit. Ich habe den Rechner 2 Stunden allein gelassen. Als
ich zurück kam, war der Schreibvorgang beendet.


Vorteile eines Switches
-----------------------

Am besten verbindet man den Raspberry Pi beim ersten Mal über einen Switch
mit dem Laptop. Damit erspart man sich mögliche Probleme:

- Manche Laptops verlangen Crossover-Kabel, falls kein Switch dazwischen
  hängt. Die LEDs am Raspberry Pi flackern zwar, Pakete werden aber nicht
  übertragen.

- Manche Laptops haben Schwiergkeiten, sich mit dem Raspberry Pi auf eine    
  Übertragungsgeschwindigkeit einzustellen. Ein Switch vermeidet dieses Problem.

  Ohne Switch bildet sich in solchen Fällen ein kritische Zeitfenster.

  Die Netzwerkkarte solcher Laptops darf erst hochfahren, nachdem die
  Netzwerkkarte am Raspberry Pi gestartet wurde, aber noch bevor dessen DHCP-
  Client seine eigenen DHCP-Pakete versandt hat. Mit jenen Paketen fordert 
  der Raspberry Pi die IP-Adresse von dem DHCP-Server an. Das macht Raspbian 
  anscheinend nicht beliebig lange.

Verfügt man über einen Router mit mehreren Netzwerkbuchsen für das lokale
Netz, kam man das Netzwerkkabel für den Raspberry Pi zwanglos ein-
stöpseln. Einen zusätzlichen Switch braucht man dann nicht. Man sollte 
vorsorglich prüfen, dass jener Netzwerkport aktiv ist. Neuere
Router (und manche Switches) schalten unbenutzte Ports zum Stromsparen
ab.


DHCP-Server zwingend
--------------------

Vor dem Anschließen der Stromversorgung sollte man sich vergewissern, dass
ein DHCP-Server das lokale Netz versorgt. Ohne DHCP-Server klappt es nicht.

Alle gängigen Home-Router lassen in ihrer Default-Einstellung einen DHCP-
Server mitlaufen.

Über die Weboberfläche des Routers kann man häufig in Erfahrung bringen, 
welches Gerät welche IP-Adresse erhalten hat.

Die Fritzbox ist dabei vorbildlich. Sie zeigt den Raspberry Pi sogar mit dem
richtigem Namen an.

Ansonsten hilft auf dem Laptop ein beherztes 'nmap -T5 -sP 192.168.1.0/24'
weiter. Die IP-Adresse ist dabei dem im lokalen Netz verwendeten Adress-
bereich anzupassen.

Gibt es keinen solchen Router, muss der Laptop als DHCP-Server herhalten.

Unter Debian & Co. installiert man beispielsweise das Paket isc-dhcp-server 
und ergänzt drei Zeilen in /etc/dhcp/dhcpd.conf:

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.20;
    }

Dieses Beispiel unterstellt, dass eth0 eine Adresse aus 192.168.1.0/24 
trägt und die Adressen von 192.168.1.10 bis 192.168.1.20 weder eth0 noch 
anderen Netzwerkgeräten zugewiesen sind.

Anschließend ist der DHCP-Server mittels 'service isc-dhcp-server start'
in Betrieb zu nehmen. 

Startet der DHCP-Server nicht, passen die eingesetzten IP-Adressen nicht 
zur aktuellen Adresse von eth0. Entweder ist dann eth0 mittels 
'ifconfig eth0 192.168.1.1' anzupassen oder es sind die Adressen in 
/etc/dhcp/dhcpd.conf passend abzuändern.

Nach dem Hochfahren des Raspberry Pi findet sich die an ihn vergebene 
IP-Adresse auf dem Laptop in der Datei '/var/lib/dhcp/dhcpd.leases'.

Geht man diesen Weg, ist zu beachten, dass der Start des DHCP-Servers das
kritische Zeitfenster, welches im Betrieb ohne Switch (siehe oben) entsteht, 
ein weiteres Mal verkürzt.


Ergebnis
--------

Nach Abschluss aller Vorbereitungen bootet der Raspberry Pi binnen kürzester
Zeit.

Nach dem Einloggen per 'ssh pi at 192.168.1.10' (IP-Adresse ist anzupassen)
mit dem Passwort 'raspberry' erschien ein kurzer Text mit Hinweis auf ein 
Konfigurationsprogramm.

Jenes Konfigurationsprogramm kam man ad hoc aufrufen. Es führt den Benutzer 
mit kurzen erklärenden Hinweisen durch die Erst-Konfiguration. 

Unter anderem muss das Image, das ja im Auslieferungsstand nur 2.8 GB umfasst,
auf die volle Kapazität der SDHC-Karte expandiert werden.

Wer schon mit Debian gearbeitet hat, fühlt sich gleich wie zuhause.

Man sollte daran denken, in der Datei /etc/network/interfaces auf dem
Raspberry Pi eine feste IP-Adresse zu vergeben, damit der DHCP-Server 
nicht mehr gebraucht wird. 

Das Password für den Nutzer pi sollte bald mit dem Befehl 'passwd pi' 
geändert werden.

Vorinstalliert ist bei Raspbian ein rudimentäres X. Man kann es mit 
dem erwähnten Konfigurationsprogramm zu einer vollständigen Desktop-
Umgebung ergänzen. Dafür wird ein funktionierender Internet-Anschluss 
(oder ein lokaler Spiegel) benötigt.

Als nächster Schritt steht das Einrichten eines VNC-Servers an, um mit
dem Raspberry Pi dauerhaft auf der X-Oberfläche arbeiten zu können,
ohne externe Maus, Tastatur oder Monitor anschaffen zu müssen.

:)pv


Nicht vergessen: Vor dem Stromausschalten den Raspberry Pi runterfahren!




Mehr Informationen über die Mailingliste Lugrav