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.
Für ein deutsches Tastatur-Layout wählt man „de_DE ISO-8859-1“. Die Selektion der Sprache erfolgt über die Leertaste.
Anschließend muss die neu hinzugefügte Sprache noch als Default festgelegt werden.
Zurück im Hauptmenü lässt sich über die Option 1 das Passwort ändern.
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.
In der Lite Version startet Raspbian bereits ohne einen Desktop. Für andere Versionen kann man dies über die „Boot“ Option einstellen.
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ü.
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.
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.
Im Config File muss lediglich ein Name gewählt, der Hostname angegeben und der Benutzer eingetragen werden.
Wählt man beim nächsten Mal „Remote-SSH: Connect to Host“, erscheint direkt der angegebene Rechner.
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.
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:
- Der Desktop wir völlig überflüssig – was Ressourcen spart
- 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.
[…] Raspi – Headless und Komfortabel […]
[…] Broker soll auf einem Raspberry Pi installiert werden. Der Artikel „Raspi – Headless und Komfortabel“ beschreibt, wie ein Pi mit Remote Zugriff über VS Studio aufgesetzt werden […]