Digitaler Schaukasten mit dem Raspberry erstellen

Für diese Aufgabe habe ich zwei Webseiten gefunden, die Lösungen anbieten:

  1. http://neumedier.de/schaukasten.html
  2. https://www.tohamedien.de/hackathon/2020/04/04/digitaler-schaukasten/

Bei Lösung 1 wird ein fertig vorgefertigtes Image eines Pi angeboten, dass ich aber leider nicht auf eine SD gebannt bekam. Ansonsten hörte sich diese Lösung sehr interessant an. Lösung 2 ist ähnlich, benötigt aber die Installation von apache2 und php auf dem Pi, wenn für die darzustellenden Dateien php benutzt wird und die Dateien auf dem Pi gelagert sind. Für reine html-Dateien benötigt man keinen Apache-Server. Die Dateien können auch auch auf einem zentralen Server ausgelagert sein Auch dann wird kein php und apache benötigt. Dies ist von Vorteil, wenn mehrere Schaukästen die gleichen Seiten anzeigen sollen, weil sie dann nur einmal eingepflegt werden müssen.

Was habe ich also gemacht?

  1. Raspian OS Buster installiert und das boot-Verzeichnis um die Datei ssh und wpa_supplicant ergänzt, wie hier beschrieben.
  2. In der Datei config.txt als letzte Zeile display_rotate=3 eingefügt.
    Für Raspian Bullseye muss zusätzlich  die Zeile dtoverlay=vc4-kms-v3d deaktiviert werden, also #dtoverlay=vc4-kms-v3d lauten
  3. In /etc/xdg/lxsession/LXDE-pi/autostart die folgenden Zeilen ergänzt:

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#Screensaver abschalten
@xscreensaver -no-splash
#Mauszeiger abschalten, auch für den root
@unclutter -root
#Kioskmodus ein- und Fehlermeldungen von Firefox  abschalten
@chromium-browser --incognito --kiosk --noerrdialogs <Pfad zur Webseite die dargestellt werden soll>
#Bildschirmschoner und Warnmeldungen des Betriebssystems abschalten
@xset s noblank
@ xset s off
@xset -dpms
@sed -i 's/“exited_cleany“:false/““exited_cleany“:true/' ~/.config/chromium/Default/Preferences

Ergänzung (14.3.21)

Je nach Bildschirmgröße oder Abstand des Bildschirm vom Publikum ist es manchmal sinnvoll den Zoomfaktor des Chrome-Browsers vorzukonfigurieren.  Dazu ergänzt man die oben angegebene Startzeile des Browsers in der autostart-Datei um den Parameter force-device-scale-factor=1.5 o.ä.

Damit die Webseiten wechseln muss folgende meta-Zeile in die html-Seiten eingefügt werden:

<meta HTTP-EQUIV="refresh" content="XX; URL=http://<Pfad zur nächsten Seite>"  >

Achtung: Kein Anführungszeichen hinter der Sekundenangabe XX, sondern erst am Ende der Zeile. XX ist die Sekundenanzahl bis zum Wechsel.

Ergänzung (15.10.21)

1. Abschalten

Die SD-Karte des Raspberry reagiert empfindlich auf spontane Stromabschaltungen. Man sollte ihn runterfahren, ehe er abgeschaltet wird. Hängt also der digitale Schaukasten an einer Zeitschaltuhr, kann man ihn mit der Zeile

@shutdown HH:MM

in der Datei /etc/xdg/lxsession/LXDE-pi/autostart herunterfahren, ehe die Zeitschaltuhr den Strom abdreht.

2. Loggen deaktivieren

Weiterhin sollte man alle Logs abschalten. Dazu führt man zum einen den Befehl

systemctl disable rsyslog

aus. Danach löscht man den Inhalt des Verzeichnisses /var/log, nicht das Verzeichnis selbst, und legt für die Dateien Xorg.0.log, btmp, boot.log, lastlog, wtmp einen symbolischen Link auf /dev/null an mit dem Befehl

ln -s /dev/null <Name der Datei>

3. Swap deaktivieren

Das geht mit folgenden drei Befehlen:

dphys-swapfile swapoff
dphys-swapfile uninstall
update-rc.d dphys-swapfile remove