Benutzer-Werkzeuge

Webseiten-Werkzeuge


  • Deutsch (German)
  • English
  • Français (French)
de:installation_und_inbetriebnahme_eines_linux-kiosks

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*

de/installation_und_inbetriebnahme_eines_linux-kiosks.txt · Zuletzt geändert: 2024/06/28 11:29 von a.zuleeg