Raspberry Pi
Februar 26, 2020 Von marco 2

Raspi – Headless und Komfortabel

In der Vergangenheit habe ich meine Raspberry Pi Boards immer mit einer graphischen Oberfläche aufgesetzt. Und zwar auch wenn diese (die meiste Zeit) ohne Monitor genutzt wurden. Zwar lässt sich mit SSH auf die Kommandozeile zugreifen, aber das Schreiben von Code oder Editieren von Config Files über Vi/Vim ist nicht Jedermanns Sache. Einfacher ist es über VNC auf den Desktop zugegriffen, um Gedit oder einfache IDEs nutzen zu können.

Das ganze kostet natürlich Ressourcen und die Verhältnismäßigkeit von Kosten und Nutzen ist nicht wirklich gegeben.

Mit der Erweiterung Remote Development für VS Code gibt es nun eine komfortable Möglichkeit das lokal installierte VS Code zu nutzen, um remote auf dem Raspberry Pi (oder anderen Linux Systemen) zu arbeiten.

Installation

Bei der Installation des Raspberry Pi kann bereits Overhead eliminiert werden, indem man eine möglichst schlankes Betriebssystem wie Rasbian Buster Lite installiert.

Nachdem die ISO Datei heruntergeladen und z.B. über Etcher auf eine SD Karte geflashed wurde, kann man diese in den Raspberry einlegen und zum ersten man das System booten. Bei diesem ersten Boot wird noch ein angeschlossener Monitor, sowie eine Tastatur benötigt.

Nachdem man sich mit den Default Credentials (Benutzer: pi / Passwort: raspberry) angemeldet hat, kann man über mit dem Befehl

sudo raspi-config

den Konfigurationsdialog starten.

Als erste Aktion empfiehlt es sich die Tastatur auf die eigene Sprache umzustellen – insbesondere wenn man im neu zu setzenden Passwort Sonderzeichen verwenden will.

Option 4 – Für die Umstellung regional settings
Option I1 – Change Locale

Für ein deutsches Tastatur-Layout wählt man „de_DE ISO-8859-1“. Die Selektion der Sprache erfolgt über die Leertaste.

Auswahl des zu installierenden Sprache

Anschließend muss die neu hinzugefügte Sprache noch als Default festgelegt werden.

Auswahl der Default Sprache

Zurück im Hauptmenü lässt sich über die Option 1 das Passwort ändern.

Passwort anpassen

Mit der Option 2 können die Netzwerkeinstellungen geändert werden. Insbesondere wenn im Heimnetzwerk mehrere Raspberries eingebunden sind muss der Hostname geändert werden. Zudem können WLAN Einstellungen erfolgen, wenn der Pi an seinem Bestimmungsort nicht über ein Ethernet-Kabel angeschlossen werden kann.

Netzwerk Optionen für die Festlegung des Hostname und WLAN Setting

In der Lite Version startet Raspbian bereits ohne einen Desktop. Für andere Versionen kann man dies über die „Boot“ Option einstellen.

Boot Optionen
Desktop order Command Line Interface (CLI)
Console entspricht dem CLI

Ein wichtiger Schritt ist das Zulassen von SSH Verbindungen. Ohne dies kann sich VS Studio nicht mit dem Pi verbinden. Die SSH Option befindet sich unter Punkt 5 „Interfacing Options“ im Hauptmenü.

Interfacing Options
SSH muss für den Zugriff über VS Code erlaubt werden

Setup von Visual Studio Code

Für VS Code gibe es die Erweiterung „Remote Development“ von Microsoft. Mit dieser Erweiterung lässt sich Code remote über den lokalen Rechner editieren und ausführen.

Erweiterung „Remote Development“ für VS Code

Nutzt man einen SSH Key lässt sich die Verbindung ohne die Eingabe von Nutzer und Passwort aufbauen.

Unter Ubuntu muss hierzu zunächst ein Key erstellt werden (sofern keiner vorhanden ist). Dies erfolgt über den Befehl:

ssh-keygen -t rsa

Der Key lässt sich dann einfach über ssh-copy-id auf einen Remote-Rechner kopieren:

ssh-copy-id pi@<Hostname des Raspi>.local

Hier eine Beschreibung wie dies auf einem Windows 10 Rechner funktioniert.

Wenn dies erfolgt ist lässt sich Verbindung in VS Code über das grüne Symbol (ganz unten links) erstellen. Es empfiehlt sich zunächst ein Config File zu erstellen (zweiter Punkt der Liste) um den Raspberry in Zukunft direkt auswählen zu können.

Remote Connection starten über das grüne Symbol unten links

Im Config File muss lediglich ein Name gewählt, der Hostname angegeben und der Benutzer eingetragen werden.

ssh config file

Wählt man beim nächsten Mal „Remote-SSH: Connect to Host“, erscheint direkt der angegebene Rechner.

Direkte Auswahl des Remote Rechners

Wenn die Verbindung erstellt worden ist kann man Files vom Remote Rechner direkt aufwählen und editieren oder Befehle über das Terminal direkt ausführen.

Links: Home Verzeichnis des Remote Pi / Unten: Terminal für User Pi auf dem Raspi

Fazit

Für die meisten Anwendungsfälle benötigt der Raspberry Pi kein graphisches User Interface. Oft wird diese nur für die Entwicklungszeit verwendet.

Mit der „Remote Development“ Erweiterung ergeben sich direkt zwei Vorteile:

  1. Der Desktop wir völlig überflüssig – was Ressourcen spart
  2. Mit VS Code lässt sich noch besser arbeiten, als mit den Editoren/IDEs, welche auf dem Raspberry Desktop zur Verfügung stehen.

Die Remote-Development Erweiterung macht so das Entwickeln auf Edge-Devices komfortabler als es jemals war.