Software für den Raspberry Pi

Ganz anders sieht es aus, wenn Sie einen Raspberry Pi 4 B zur Wiedergabe von H.265 Videodateien bewegen möchten. Dann wird der MicroHDMI Ausgang genutzt, und ein Flachbildschirm ist angeschlossen. In diesem Szenario werden sie sehr wahrscheinlich auch eine graphische Benutzeroberfläche und eine externe USB-Festplatte oder SSD verwenden. Sie sehen an diesem Beispiel, wie unterschiedlich Software und Hardware für einen Raspberry Pi ausfallen können. Wenn Sie Software entwickeln wollen, die auf allen Modellen des Raspberry Pi funktioniert, dann sind Sie allerdings an Linux gebunden. Inzwischen lässt sich das Raspberry Pi OS auch ohne Festplatte als Zwischenspeicher auf eine SD-Karte schreiben – siehe Raspberry Pi Imager.
Eine 40-polige GPIO-Steckerleiste – das hat kein PC

Die meisten Nutzer eines Desktop-PC haben an Elektronik kein Interesse. Der Raspberry Pi wurde dagegen mit dem Zweck geschaffen eine Brücke zwischen Elektronik und der Softwareprogrammierung zu schaffen. Deshalb hatte bereits der erste Raspberry Pi einen GPIO-Port zum Anschluß elektronischer Schaltungen. In der Galerie finden Sie dazu ein paar Abbildungen. Im Gegensatz zum Asus Tinker haben die GPIO-Pins aller Raspberry Pi Modelle bisher einheitlich schwarze Kunststoffsockel. Auf die GPIO-Kontakte können Erweiterungsplatinen aufgesteckt werden. Aber manchmal genügt auch ein einziges Bauteil am GPIO-Port. Das gilt z.B. für einen IR-Empfänger am Raspberry Pi. Ein PIR-Sensor reagiert dagegen auf die Wärmestrahlung die z.B. von einer Hand ausgeht. Derartige Sensoren (Passiv InfraRot ) können als Bewegungsdetektor am Raspberry Pi angeschlossen werden. Die Funktion einer Lichtschranke kann auch durch eine Kamera übernommen werden, deren Bilder über OpenCV interpretiert werden. Die GPIO-Kontakte können entweder als Eingang für Sensoren oder z.B. zur Ansteuerung eines Optokoppler mit nachgeschaltetem Relais genutzt werden. Die Pinbelegung kann z.B. mit „pinout“ ermittelt werden. Asus Tinker, Jetson Nano, Banana Pi, Orange Pi und weitere Einplatinencomputer haben die GPIO-Kontakte des Raspberry Pi übernommen. Damit können Aufsteckplatinen für den Raspberry Pi oft auch dort verwendet werden.
Linux oder Windows ?
Wer als Anwender mit Linux arbeiten will, kann seinen PC mit einer sogenannten LIVE-DVD testen. So kann man die unterschiedlichen Linux Betriebssysteme leicht ausprobieren. Irgendwann kommt der Entschluss Linux fest zu installieren. Einsteiger haben dabei Angst Daten zu verlieren. Vorsicht ist immer ein guter Ratgeber. Und so stellt sich die Frage welchen PC nehme ich nur, auf dem sich ein Linux Betriebssystem dauerhaft ausbreiten soll? Auf einem älteren PC mag es sein, dass man ganz auf die schon vorhandene Windows XP Installation verzichtet. Bei einem neueren PC wünscht man sich aber eher eine parallele Installation neben einem schon vorhandenen Windows 7/8/10/11. Auch dies ist durch entsprechende Bootmanager und die Installation von der Live-DVD ein fast risikoloser Vorgang.
Fast risikolos? Nein, Sie sind nicht gezwungen ein Kernkraftwerk zu warten – aber NULL Risiko gibt es nicht. Und schon sind wir beim Raspberry Pi. Da haben Sie tatsächlich NULL Risiko, weil Sie eben mit einem neuen PC anfangen. Ihre Investitionskosten bleiben recht überschaubar. Exemplarisch ca. 37 Euro für einen Raspberry Pi 4 B mit 1GB RAM, und etwa 30 Euro für die microSD-Karte, das HDMI-Kabel und ein Netzteil. Der Rest ist Software. Und die ist gratis.
RPi-Desktop – was ist damit gemeint?
„Raspberry Pi Desktop“ ist in der Tat ein mehrdeutiger Begriff mit folgenden Bedeutungen:
- Die grafische Oberfläche zum Raspberry Pi OS (früher Raspbian genannt). Das Betriebssystem „Raspberry Pi OS“ für zahlreiche Raspberry Pi Modelle existiert inzwischen in drei Formen – je nachdem welche Ausbaustufe (mit/ohne Desktop) Sie verwenden möchten. Seit Nov 2018 existieren damit drei Varianten bzw. Image-Dateien zum Download. Diese drei Ausbaustufen existieren aktuell für „Raspberry Pi OS Buster (Legacy)“ sowie für „Raspberry Pi OS Bullseye“, wobei es für Bullseye auch noch eine 64-bit Variante gibt. Der bequemste Weg zur Installation ist der Pi-Imager.
- Ein Betriebssystem der Raspberry Pi Foundation für den PC, das in der Version vom 1.7.2022 auf Debian Bullseye beruht aber eine Oberfläche hat, die der ggf. gewohnten Oberfläche auf dem Raspberry Pi und damit Raspbian sowie folgendem Link entspricht:
https://www.raspberrypi.org/downloads/raspberry-pi-desktop
Der RPi-Desktop – die grafische Oberfläche des Raspberry Pi

In obiger Abbildung sehen Sie einerseits die grafische Oberfläche (GUI) mit deren Bedienelementen, andererseits aber auch ein Fenster mit blauem Hintergrund das nur ASCII-Zeichen enthält (ASCII-GUI). Die Desktop-Icons können mit einem Programm wie GIMP gestaltet werden. Über ein Bash Skript können alle Vernüpfungen bzw. Desktop-Icons auf den Raspbian Desktop kopiert werden.
Aber was macht man, wenn überhaupt kein Monitor an den Minicomputer Raspberry Pi angeschlossen werden soll oder kann? Dann brauchen Sie eine Fernübertragung. TightVNC ist so ein Programm für jenen „Remote Desktop“. Die Bildschirmauflösung lässt sich dabei zwar beliebig definieren, sollte aber trotzdem zu der Hardware passen, auf der die Anzeige erfolgt. Bei einem kleinen Smartphone-Display führt eine zu hohe Auflösung des „Remote Desktop“ ggf. zu sehr kleinen Symbolen, die mit dem Finger kaum mehr anklickbar wären. VNC ist übrigens die Abkürzung von Virtual Network Computing – nichts anderes als eine Fernübertragungssoftware, die aus einem Client und einem Server besteht. Der Server läuft dabei permanent und wirkt so als „Generator“. Der Client läuft nur bei Bedarf und zeigt den RPi-Desktop auf einem Tablet-PC, einem Smartphone oder einem PC mit Flachbildschirm an.
Die schnöde Konsole

ASCII-GUI – Was ist das?

Wie holt man sich Software bei Linux?
Software ist bei Linux in sogenannten „Paketen“ organisiert. Die Paketquelle ist dabei eine Internetadresse, die einerseits auf die Hardware abgestimmt ist, die Sie verwenden, andererseits aber auch die Linux-Distribution berücksichtigt.
Nehmen wir einmal an Sie benötigen auf Ihrem Linux-PC (es könnte ein Raspberry Pi sein) ein Programm zur Kontrastverstärkung für Digitalfotos. Dann brauchen Sie zuerst ein Programm, mit dem Sie auf Suche gehen können. Synaptic ist ein „Paketmanager“ mit dem das gelingt. Da jede Installation das System verändert, wird eine Passworteingabe benötigt.

In der Abbildung sehen Sie die Vorgehensweise: Zuerst wird die Gruppe „Grafik- und Bildbearbeitung“ ausgewählt. Darauf erscheint rechts eine Liste von Programmen in der Sie „gimp“ auswählen und dann über „Anwenden“ die Installation starten. Das ist allerdings nur ein möglicher Weg, denn bei Linux sollen Sie mitbekommen was genau geschieht. Und deshalb bevorzugen viele Linux-Fans die Kommandoeingabe im Terminal:
sudo apt-get install gimp gimp-help-de
Über eine Internetrecherche „Bildbearbeitung Linux“ hätten Sie natürlich auch herausgebracht daß sich GIMP für die Bildbearbeitung eignet. Bei „sudo apt-get install“ erhalten Sie allerdings vorab keine Information was Sie bekommen werden. Man kann sich aber ein Skript inst.sh schreiben, das diese Aufgabe übernimmt und das wie folgt aufgerufen wird:
./inst.sh synaptic gimp gimp-help-de
Da Synaptic nicht in Raspbian Buster enthalten ist, wird hier ein entsprechender Eintrag vorangestellt. Das Skript gibt dann zuerst eine Beschreibung aus und fragt, ob Sie eine Installation möchten. Und natürlich lassen sich solche Skriptdateien auch über eine Bedienoberfläche ausführen, wozu es einen kurzen Blogbeitrag gibt.
Krusader, Konsole und LXTerminal
Der Krusader ist ein Dateimanager, der unter Windows mit dem „Total Commander“ vergleichbar wäre. Deshalb gibt es auch einen entsprechenden Modus zur Konfiguration. Oft werden die Begriffe Terminal und Konsole in der selben Weise verwendet. Bei Linux gibt es eine Vielzahl von Desktop-Umgebungen mit den jeweiligen Oberflächen: GNOME, KDE, LXDE, Xfce um nur einige wenige Beispiele zu nennen. Das voreingestellte Terminalprogramm zum Krusader wird mit F9 aufgerufen und ist die „Konsole“ – denn beide entstammen der KDE-Familie.

Wenn Sie aber lediglich nach „Konsole“ im Internet suchen, werden Sie die KDE-Konsole eher nicht finden. Beim LXTerminal ist die Bezeichnung so gesehen glücklicher gewählt. Warum ist das wichtig? In den Details unterscheiden sich die Programme „konsole“ und „lxterminal“. Konkret können Sie z.B. durch Strg+ den Schriftfont bei „konsole“ vergrößern, was so beim LXTerminal nicht funktioniert. Viel gravierender ist aber, daß der voreingestellte Font von „konsole“ nicht zwingend zu den Fonts von Raspbian Buster passen muß.

Virtuelle Terminals durchblättern
Wer Raspbian „pur“ installiert hat, verzichtet auf eine grafische Oberfläche und arbeitet mit dem Systemterminal. Dann ist das Terminal über den ganzen Bildschirm ausgedehnt und erscheint auf schwarzem Hintergrund. Einen Scrollbalken wie im RPI-Desktop gibt es nicht. Ein Kommando wie ls -l führt dann bei vielen Dateien dazu, daß die oberen Zeilen durchlaufen.
Virtuelle Terminals sind auch dann vorhanden, wenn Sie sich im RPi-Desktop befinden. Über <Strg><Alt><F2> gelangen Sie zu einem dieser Terminals und können sich dort mit Benutzernamen und Passwort anmelden. Es gibt mehrere virtuelle Terminals die <F1> bis <F6> entsprechen. Wozu ist das gut? Zum einen können Sie so oft ein hartes Abschalten des Raspberry Pi vermeiden, wenn der RPi-Desktop einmal eingefroren sein sollte. Zum anderen könnten Sie so auch eine weitere Desktop Sitzung mit startx für einen anderen Nutzer eröffnen. Virtuelle Terminals haben keinen Scrollbalken. Sie können aber durch <shift><PgUp> vorangegangene Ausgaben
anschauen (Puffergröße als Limit) und kommen durch <shift><PgDown> zurück zur Gegenwart. Durch <Strg><Alt><F1> wird das Terminal zum Desktop erreicht. Über <Strg><Alt><F7> kehren Sie zum RPi-Desktop zurück. Die Funktionstaste ist jeweils mit einem kleinen zeitlichen Abstand zu drücken. Weitere Informationen finden Sie hier. Beachten Sie bitte, daß ein Pi Zero wenig Hauptspeicher hat und nur bedingt für den RPi-Desktop geeignet ist. Jedes Terminal lässt sich übrigens mit TMux in zugleich sichtbare Unterfenster aufteilen.
Dateien im Netzwerk kopieren – SFTP im Krusader

Zuerst wird der Dialog „Neue Netzwerkverbindung“ geöffnet und sftp als Protokoll ausgewählt. Dann wird der Hostname auf dem Remote-Pi um .local ergänzt eingetragen. Nachdem auch ein gültiger Benutzername und dessen Passwort eingetragen ist, kann die Verbindung aufgebaut werden. Je nach Softwarekonfiguration kann pizero.local möglicherweise nicht in eine numerische IP umgesetzt werden. In diesem Fall muß eine numerische IP als Hostname verwendet werden. Nach erfolgreichem Aufbau der sftp-Verbindung können Dateien wie gewohnt kopiert werden. SFTP ist auf Seite 632 im Buch beschrieben. Ein Zugang als piz über pizero.local setzt voraus daß Benutzername und Host so auf der MicroSD-Karte im Pi Zero gespeichert wurden. Initial kann das über Pi-Imager erfolgen.
Der Fernzugriff über Desktop-Icons

- makekeypair.sh ist ein Skript für den SSH-Zugriff ohne Passworteingabe
- raspi-remote.sh nutzt SFTP um ProgPi.zip oder ProgPi_mini.zip auf den Remote-Pi zu kopieren.
- connect.sh lässt Sie den gewünschten Remote-PC auswählen und bietet dann ein SSH-Terminal.
- OnRaspiGui.sh lässt Sie zuerst den Remote-PC auswählen und zeigt dann eine Liste der remote startbaren Programme an
Virtuelle Laufwerke
Ein Backup taugt nur dann etwas, wenn es verifiziert werden kann. So ist es auch bei Backups von MicroSD-Karten des Raspberry Pi. Ein umkomprimiert auf der SSD/Festplatte abgelegtes Backup kann als virtuelles Laufwerk eingebunden werden (Seite 135 im Buch). Dabei wird eine *.img Abbilddatei mit dem Skript sd-mount.sh geladen (siehe auch hier) und das Abbild der SD-Karte ist damit durchsuchbar.
Welcher Raspberry Pi ist der richtige?
Mit dem Raspberry Pi Zero haben Sie Vorteile wie…
- deutlich kleiner als der große Bruder
- verbraucht viel weniger Strom als der Raspberry Pi 4
- hat genauso WLAN, Bluetooth, HDMI, SD-Card-Slot, CSI, USB, 40 Pin I/O, …
- ist deutlich günstiger
Quizfragen:
- Welche Raspberry Pi Computer haben eine USB-OTG Schnittstelle?
- Was kann man damit anfangen?
- Was ist eine Direktverbindung?
- Was bedeutet LIRC ?
- Was ist ein HCSR04 ?
- Was unterscheidet einen PIR-Sensor vom TSOP4838
- Was muß man beim Anschluß des Kameramoduls (PiCam) beachten?
- Warum kann man NOOBS als veraltet ansehen?
- Was kann man mit ssh und sftp machen?
- Wo landet man bei defekter Festplatte?
- Was unterscheidet einen PiZero WH vom PiZero2 W ?
- Wofür kann man Verpackungsclips nutzen?