Dienstag, 7. Oktober 2014

Der kopflose Raspberry Pi

Ich arbeite immer mit meinem Notebook und verwende keine externen Geräte wie Tastatur, Maus oder Monitor am Arbeitsplatz. Als ich meinen ersten Raspberry Pi hatte, hat es mich darum genervt, dass ich meinen Schreibtisch mit diesem ganzen Equipment vollgestellt habe und den winzigen Pi auch noch mit einem unterarmdicken HDMI-Kabel mit dem Monitor verbinden musste. Meistens habe ich dann das Betriebssystem konfiguriert, dem Pi eine statische IP-Adresse verpasst und ihn dann headless (also ohne Dipslay) in das lokale Netzwerk integriert. Weil ich hinterher aufräumen musste, war der Spaß aber deutlich beeinträchtigt.



In diesem Beitrag, beschreibe ich, wie wir den Pi auch weitgehend ohne externes Zubehör, insbesondere ohne Display einrichten und ihn untern seinem Namen also ohne statische IP-Adresse (die man ja möglicherweise vergisst) einrichten können. Die Beschreibung ist für Unix System wie Linux oder Mac OS ausgelegt, analog funktioniert das aber auch unter Windows. Wir brauchen nur ein USB auf UART Kabel, das es für kleines Geld zu kaufen gibt.

Die serielle Schnittstelle

Wir verbinden das Kabel zunächst mit der USB-Schnittstelle unseres Notebooks und finden heraus unter welchem  Namen das Kabel dort verwaltet wird. Unter Linux geht das einfach mit der Anweisung dmesg. Bei mir ergibt sich

  [25.608737] usb 2-2.2: pl2303 converter now attached to ttyUSB0

Damit das Notebook mit dem Pi kommunizieren kann, bedarf es noch einer Terminal-Software. Hier sind Minicom oder PuTTY sehr beliebt. Ich mag screen, weil es auch im nicht-graphischen Betrieb läuft:
Wir installieren screen
  sudo apt-get install screen

und starten das Werkzeug
  sudo screen /dev/XX 115200

Dabei ist XX, der Name des Knotens, den wir mit dmesg ermittelt haben - in meinem Fall also ttyUSB0. Der letzte Parameter ist die verwendete Baudraute (Bits pro Sekunde).



Anschließend legen wir eine SD-Karte mit einem Raspbian-Image in den SD-Kartenschacht und verbinden das Kabel ganz genau wie in der Abbildung mit den passenden GPIO-Pins des Pi. Wir achten unbedingt darauf, dass der Pi nicht gleichzeitig noch vom Netzteil mit Strom versorgt wird. Das wäre zuviel des Guten und würde den Pi zerstören! Der Pi sollte jetzt starten. Wenn man keine ordentliche Bootsequenz sieht, sollte man das Kabel von Notebook und Pi entfernen und es noch einmal versuchen. Ich habe hier selten aber immer mal wieder Probleme gesehen. Wenn man den Login-Prompt hat, meldet man sich wie gewohnt mit der Kombination pi/raspberry an.

Mit eigenen Namen ins Netzwerk

Im Grunde war es das schon. In den folgenden Schritten beschreibe, wie wir das serielle Kabel durch eine Netzwerkschnittstelle ersetzen können.

Damit alles reibungslos klappt bringen wir unser System auf den aktuellen Stand:
  sudo apt-get update
  sudo apt-get upgrade

Mit
  sudo raspi-config
kommen wir ins Konfigurationsmenü und ändern den Hostnamen so, dass er auf .local endet, also etwa in pi.local.

Um sich mit Hilfe des Hostnamens etwa per ssh anzumelden, braucht man normalerweise einen Eintrag im DNS. Für Namen im lokalen Netzwerk, die auf .local enden, geht das einfacher mit dem (offenen) Apple-Protokoll Bonjour. Dazu installieren wir zwei Pakete:
  sudo apt-get install avahi-daemon libnss-mdns

Wir fahren den Pi mit dem Befehl poweroff herunter und entfernen das USB-Kabel. Wir verbinden den Pi mit einem Netzwerkkabel mit unserem Netzwerk und versorgen ihn jetzt mit Hilfe des Netzteils mit Strom.

Mit einem Ubntu-Notebook sollte ein ping auch mit Hilfe des Namens erfolgreich sein. Auf einen Befehl wie
  ping pi.local
sollte es also eine sinnvolle Antwort geben. Auf anderen Linux Derivaten - und dazu zähle ich auch Ubuntu-Server - muss Bonjour genau wie auf dem Pi nachinstalliert werden:
  sudo apt-get install avahi-daemon libnss-mdns

Auf Mac OS Systemen ist Bonjour natürlich bereits vorhanden, für Windows gibt es kostenlose Bonjour-Software im Internet. Unser Ziel ist erreicht und wir haben unseren Pi ohne externen Geräte konfiguriert und in Betrieb genommen.

Geteiltes Internet

Teilweise verbinde ich den Pi gar nicht mit meinem lokalen Netzwerk, sondern einfach direkt mit einem Netzwerkkabel mit der Ethernetschnittstelle meines Notebooks. Die IP-Adresse bezieht der Pi dann vom Notebook. Damit das funktioniert, muss dieses Feature natürlich eingerichtet werden. Unter Mac OS nennt sich das 'Internet Sharing'. Die gleiche Funktionalität gibt es ebenfalls unter Linux und Windows.


Keine Kommentare:

Kommentar veröffentlichen