Christians Webseite        << zurueck        vor >>

Das Betriebssystem des Raspberry Pi

DigitalCockpit

Damit auf dem Raspberry Board überhaupt irgendwas funktioniert benötigt es zuerst ein Betriebssystem. Das wird auf eine SD-Karte geschrieben und in den Kartenleser eingesteckt.

Das aktuelle, "normale" Betriebssystem hat die Bezeichung Raspberry Pi OS. Es basiert im Kern auf Linux. Die Entwicklungsgeschichte ist im Wikipedia nachlessbar. Die momentane Version (Anfang 2022) hat die laufende Nummer 11 und den Arbeitstitel "Bullseye". Es liegt auf den Raspberry Pi Seiten zum Download bereit.

Es existieren noch ein Dutzend weitere Derivate und sonstige Portierungen. Die sind für mich momentan aber alle uninteressant.

Tools

Was man (auf dem PC) so ziemlich unbedingt an Tools haben sollte sind die folgenden:

Damit kann man das Raspberry OS auf eine SD-Karte schreiben, sichern und komprimieren. Alle Erläuterungen dazu und zum Getting-Started findet man auf den Raspberry Pi Seiten.

Mit einem Netzwerk verbinden

Der übliche nächste Schritt ist die Verbindung mit einem (dem eigenen) Netzwerk. Es wird zur Bedienung und Inbetriebnahme verwendet und um eine Internetverbindung aufzubauen über die der Raspberry Daten und Programme nachladen kann. Es gibt dafür 3 gängige Methoden:

  • Ethernetkabel
  • WiFi
  • USB Gadget Mode

Mit einem Ethernetkabel ist das trivial. Einfach in die passende Buchse des Routers/Switches im lokalen Netz einstöpseln und fertig.

Die WiFi-Konfiguration ist etwas umfangreicher. Die SD-Karte muss vor dem Einstecken bearbeitet werden:
Dazu vorab am PC im Root-Verzeichnis auf der SD-Karte eine Datei mit dem Namen "wpa_supplicant.conf" erstellen. Die Datei muss den folgenden Text enthalten: country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
scan_ssid=1
ssid="your_wifi_ssid"
psk="your_wifi_password"
}
Die Variablen "ssid" (=Netzwerkname) und "psk" (=Passwort) müssen passend eingetragen werden. Die "-Zeichen am Anfang und Ende beibehalten.

Beim USB Gadget Mode ist das Vorgehen deutlich komplizierter und wird später separat erläutert.

In allen Fällen wird der Raspi danach als neues Device im Netzwerk aufgelistet. Sobald man seine IP-Adresse herausgefunden hat kann man ihn ansprechen. Im eigenen WLAN geht das bequem über die Webseite der (Fritz-)Internet-Box.

Remote-Bedienung oder nicht oder beides

Für die Bedienung des Raspberry hat man (grob gesagt) 2 Methoden zur Auswahl:

  • Direkt am/auf dem Raspberry Pi, mit eigener Tastatur, Maus und Monitor
  • Remote vom PCs, auch "Headless" Mode geannnt

Auch hier ist die erste Methode trivial. Einfach alle einstöpseln und fertig.

Bei der Remote-Bedienung werden Tastatur, Maus und Bildschirm durch ein Programm auf dem PC emuliert. Dort hat man ein Spiegelbild des Displayinhalts und verwendet Tastatur und Maus des PC. Man kann die Geräte von "remote" und "direkt" auch beliebig mischen und parallel verwenden.

Als Vorraussetzung für eine Remote-Verbindung muss zunächst das SSH-Protokoll auf dem Raspberry aktiviert werden. Dazu am PC eine leere Datei mit dem Namen ssh erzeugen (ohne Dateiendung) und im Root-Verzeichnis der SD-Karte ablegen. Der Rasspberry erkennt diese Datei beim nächsten Aufstarten und ändert automatisch seine Konfiguration um das SSH-Protokoll dauerhaft zu aktivieren.

USB Gadget Mode

Der USB Gadget Mode ist ein relativ neues Feature und funktioniert möglicherweise nicht mit allen Raspi- oder Betriebssystem-Varianten. Zum Aktivieren sind einige Aktionen notwendig.

1. Auf der SD-Karte in der Datei config.txt die folgende Zeile am Ende hinzufügen:
dtoverlay=dwc2
2. In der Datei cmdline.txt den Text
modules-load=dwc2,g_ether direkt nach dem Wort rootwait einfügen. Achtung! In dieser Datei muss alles schön ordentlich in einer einzigen Zeile aufgelistet sein.

3. Den Bonjour Print Service von Apple.com herunterladen und installieren. Das vereinfacht es für den PC den Raspberry zu finden.

4. Einen der USB-Ports des Raspberry (aber nicht den speziellen der nur für die Stromversorgung ist!) mit dem PC verbinden. Achtung! Die USB-5V aus dem PC versorgen dadurch den Raspberry mit Strom und würden gegen ein bereits vorhandenes Netzteil arbeiten! Eine Lösung wäre z.B. ein Adapter der die 5V-Leitung unterbricht:
DigCockpit

5. Windows 10 benötigt einen RNDIS Treiber um den Raspbery als Ethernet Device zu erkennen. Sonst wird er nur als COM-Port erkannt. Den Treiber des COM-Port im Gerätemanager durch den RNDIS-Treiber ersetzen. Der "Bonjour Service" mapped den Hostnamen zu einer IP-Adresse:
- Systemsteuerung\Netzwerk und Internet\Netzwerkverbindungen
- Eigenschaften -> Freigabe -> RNDIS Adapter auswählen

Betriebssytem optimieren

Für den guten Betrieb am Motorrad müssen noch (mindestens) 2 Dinge optimiert werden:

  • Das Aufstarten muss beschleunigt werden
  • Die SD-Karte auf Read-only Modus konfigurieren

Das Aufstarten benötigt in meiner Ausgangskonfiguration ca 25s. Die übliche, einfachen Tips sind dabei schon eingeflossen. Das also noch eine ordentliche Aufgabe..

Das Read-Only Filesystem soll Datenkorruption der SD-Karte verhindern. Die Stromversorgung am Motorrad ist nicht sehr zuverlässig und man kann nicht ausschliessen dass der RasPi während eines Schreibvorgangs unterbrochen wird.

Um beide Optimierungen werde ich mich erst kümmern wenn die Anwendung stabil läuft. Ein Read-Only System wäre momentan zu lästig.