Inhaltsverzeichnis
Installation und Inbetriebnahme eines Linux-Kiosks
(Auf debian chromium-browser durch chromium ersetzen)
Ein Kiosk ist ein System das oft auf einem Bildschirm ohne Maus oder Tastatur läuft, mit dem man nichts machen kann, aber das z.B. selbständig zwischen Webseiten wechseln kann oder auch einfach nur etwas anzeigen. Man kennt solche Kioske oft vom Bahnhof oder so, wo sie zwischen Werbungen wechseln oder andere Sachen wie z.B. Fahrzeiten anzeigen. Hier wird ein solches System auf den Fernsehern verwendet die auf jedem Stock hängen um verschiedene Sachen anzuzeigen. Diese werden auf die Raspberry Pis installiert die hinter den Bildschirmen hängen. Das System auf dem Raspberry Pi 3 zweiten Stock wurde kürzlich neu gestaltet damit man immer wieder zurück in die Einstellungen gehen kann um Anpassungen zu machen oder neue Seiten hinzuzufügen. Hier werden wir erklären was gemacht wurde.
Installation
Richte einen SD-Kartenleser mit einer Karte drin und den Raspberry Pi Imager ein und lade für den Raspberry Pi 3 die OS-Version Lite auf das Generic Storage Device herunter und passe die Einstellungen so an, dass der Hostname kiosk.local ist, der User kiosk mit Password1 erstellt wird, die Tastatur auf Europe Zurich und ch eingestellt ist und SSH aktiviert ist und per Passwort erreicht werden kann. Bestätige, dass du überschreiben willst und dieser Vorgang kann recht lange dauern.
Stecke die eben konfigurierte Karte in den Raspberry Pi, steck alle Kabel an (Stromkabel, HDMI-Kabel zum Monitor, Ethernetkabel, Maus und Tastatur) und melde dich sobald er hochgefahren mit dem Login kiosk und Password1 an.
Suche jetzt nach deiner IP-Adresse mit
ip a
Melde dich an einem anderen PC mit Zugang zu diesem Netzwerk an und öffne die Konsole und melde dich an per Command
ssh kiosk@(IP-Adresse hier)
Auf dem anderen PC mit Netzwerkzugang
Gib erstmal
sudo apt update && sudo apt upgrade
ein, bestätige dies wenn du gefragt wirst mit y.
Jetzt
sudo apt install chromium-browser tightvncserver xorg x11-xserver-utils unclutter openbox xdotool vnstat x11vnc
eingeben und dann durchlaufen lassen und wenn gefragt wieder mit y bestätigen.
Öffne jetzt
sudo nano /home/kiosk/.xinitrc
und füge folgenden Text in die leere Seite ein:
#!/bin/sh # Disable powermanagement, screen blanking and make cursor disapear if not moved xset s off xset -dpms xset s noblank unclutter -idle 0.1 -root & # Start Openbox session openbox-session & x11vnc -display :0 -auth guess -forever -rfbport 5901 & # Start Kiosk Script /bin/bash /home/kiosk/start.sh
Speichere mit Ctrl.+O, gehe raus mit Ctrl.+X und ändere nun die Berechtigungen mit
sudo chmod a+x /home/kiosk/.xinitrc
damit dieses File auch ausführbar ist.
Führe nun das File
sudo nano /home/kiosk/start.sh
aus und kopiere den Text unten hinein:
#!/bin/bash # Open Chromium with specified URLs in kiosk mode (make sure to adjust device scale factor, if on 4K screen 2 should be used on 1080P screen 1 should be used)(insert your own websites at the Example-bit) chromium-browser --incognito --force-device-scale-factor=2 --temp-profile --disable-profiles --no-first-run --disable-translate --no-default-browser-check --disable-cache --kiosk 'example1.com' 'example2.com' 'example3.com' & # Allow some time for Chromium to start sleep 10 # Get the Chromium window ID WINDOW_ID=$(xdotool search --onlyvisible --class "chromium" | head -n 1) # Reset zoom level to default (Chromium sometimes messes up website zoom) xdotool windowactivate --sync $WINDOW_ID xdotool key --window $WINDOW_ID ctrl+0 # Function to switch tabs switch_tabs() { xdotool windowactivate --sync $WINDOW_ID xdotool key --window $WINDOW_ID ctrl+Tab } # Function to check if VNC is active is_vnc_active() { # Check if there's any active VNC connection netstat -an | grep ':5901' | grep -q 'ESTABLISHED' return $? } # Loop to switch tabs every 30 seconds, pause if VNC is active while true; do if is_vnc_active; then echo "VNC session active, pausing tab switch..." sleep 5 else echo "VNC session inactive, switching tabs..." switch_tabs sleep 30 fi done
Speichere bevor du rausgehst und setze wieder die Berechtigungen damit man das Script ausführen kann mit
sudo chmod a+x /home/kiosk/start.sh
Öffne nun das File
sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.conf
und füge den Text unten ein:
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM
Führe nun
sudo nano /home/kiosk/.bashrc
aus und setze die folgende Zeile ans Ende des Files, speichere und geh raus.
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
Um dem Kiosk eine statische IP-Adresse zu vergeben gib nun
sudo nano /etc/network/interfaces
ein.
Füge diesen Text über dem bestehenden Text ein:(Wichtig: Wo (tab) steht die Tab-Taste drücken so oft wie es steht)
# The loopback network interface auto lo iface lo inet loopback auto eth0 (tab) iface eth0 inet static (tab)(tab) address 172.16.1.180/24 (tab)(tab) gateway 172.16.1.1
Nun müssen wir ein Zertifikat einfügen dass es nicht immer leicht ausgegraut ist. Hol dir das Zertifikat vom Netzwerkteam (Ausbildner) ab, kopiere die Adresse die sie dir geben in einen neuen Tab und kopiere dann den Inhalt davon in das File
sudo nano /usr/local/share/ca-certificates/dc-zh-02-ca.crt
Gehe nochmal in das File
sudo nano /home/kiosk/start.sh
und entferne vorerst den Command
--kiosk
(keine Sorge, wir fügen den später wieder ein)
Reboote mit
sudo reboot
und warte bis das System neu gestartet hat und die Webseiten sollten nicht im Vollbild starten. Gehe auf die drei Punkte und Settings, das sollte ein neues unabhängiges Window öffnen welches du neben das Window mit den drei Webseiten packen kannst. Gehe auf Security, nochmal auf Security und dann auf Manage Certificates. Wechsle dort auf Authorities, klicke Import, geh auf
etc/ssl/certs
und suche nach
dc-zh-02-ca (oder so ähnlich)
und klicke darauf und klicke danach ok. Schliesse es sobald es erfolgreich funktioniert hat.
Gehe nochmal ins SSh mit dem PC mit Netzwerkzugang mit
ssh kiosk@172.16.1.180
und gib wieder bei Passwort Password1 ein. Suche nach
sudo nano /home/kiosk/start.sh
und gib den Command
--kiosk
wieder dprt ein wo du ihn hergeholt hast.
Mache nun einen Reboot mit
sudo reboot
und kontrolliere ob es funktioniert,wenn nicht reboote nochmal.
*Dieses Installationsskript wurde erstellt von T. Bachmann*