Inhaltsverzeichnis
Installation und Inbetriebnahme eines Linux-Kiosks
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
Mache nun einen Reboot mit
sudo reboot
und kontrolliere ob es funktioniert.
*Dieses Installationsskript wurde erstellt von T. Bachmann*