Linux-Agent — Betrieb
systemd-Dienst
Der Agent läuft als kiosk-browser.service. Er startet beim Systemstart automatisch auf der VT7, mit Restart=on-failure.
| Vorgang | Befehl |
|---|---|
| Status ansehen | systemctl status kiosk-browser |
| Logs live | journalctl -u kiosk-browser -f |
| Logs der App | tail -f /tmp/kiosk.log |
| Neu starten | systemctl restart kiosk-browser |
| Anhalten | systemctl stop kiosk-browser |
| Browser ansehen | chvt 7 |
Heartbeat und Integration mit RDS
- Heartbeat alle 60 Sekunden: Der Agent registriert sich als Linux-Gerät und sendet seinen Status.
- GPS / Geräteinfos alle 5 Minuten (enthält Lat/Lon, Uptime, Distribution/Version aus
/etc/os-release, Hardwaremodell aus DMI). - Log-Upload bei jedem Heartbeat — im Panel verfügbar unter: Geräte → Aktionen → Logs.
- Fernkonfiguration: Bei jedem Heartbeat erhält der Agent den aktuellen Modus (Web/Playlist), die Start-URL, die Allowlist und den Passcode aus dem Panel.
- Remote-Aufnahmen: Fordert das Panel über Aktionen → Screenshot eine Aufnahme an, ruft der Agent
scrotauf$DISPLAY=:0auf, komprimiert nach JPEG (Qualität 70) und lädt das mit HMAC v2 signierte Bild hoch. Details.
Standortbestimmung (GPS + IP)
Der Agent meldet den Standort über zwei Wege, in dieser Reihenfolge:
- Lokaler gpsd (
127.0.0.1:2947) — wenn ein GPS-Modul angeschlossen ist (USB-seriell / NMEA) undgpsd.socketaktiv ist (das Installationsprogramm belässt es aktiviert), liest der Agent den letzten Fix mitmode ≥ 2(2D / 3D). - Standortbestimmung per IP — automatischer Fallback. Ruft
https://ipwho.is/auf und hält das Ergebnis 1 Stunde im Speicher vor; für einen ortsfesten Kiosk ausreichend.
Schlagen beide Wege fehl, sendet er 0,0 und RDS wertet das als "kein Fix" (der letzte gültige Wert wird nicht überschrieben).
Ein USB-GPS anschließen
gpsd ist mit USBAUTO=true vorinstalliert: Stecken Sie den Empfänger ein, weitere Schritte sind nicht nötig — die nächste Abfrage von gpsd liefert bereits einen Fix, sobald der Empfänger Signal hat.
Unterstützung für Touchscreens
Standardmäßig aktiviert für jedes Panel, das libinput als Touch-Gerät meldet:
- Der eingebettete Browser erhält echte
TouchEvent-Ereignisse statt emulierter Maus (Chromium-Flags--touch-events=enabled --enable-pinchinrun.sh). - Pinch-to-Zoom funktioniert.
- Die Hot Corner für Settings (5 Berührungen der linken oberen Ecke in 2 s) akzeptiert neben Mausklicks auch
TouchBegin. - Bildschirmtastatur: Der Einstellungsdialog startet beim Öffnen automatisch
onboardund schließt sie beim Schließen des Dialogs. Sie können den Agenten also auch ohne physische Tastatur konfigurieren.
Modus Web Kiosk
Startet den Browser mit einer konfigurierbaren URL, mit:
- Allowlist-based navigation — nur zugelassene Domains werden geladen; alles andere leitet auf die Start-URL um.
- Schwebende Schaltflächen Back, Reload und Home in der linken unteren Ecke.
- Blockiert das Öffnen neuer Tabs/Fenster — alle Links werden in derselben Ansicht geöffnet.
Modus Playlist
Gibt die über das Web-Panel verwaltete Slideshow aus Videos/Bildern wieder.
- Die Dateien werden automatisch auf die lokale Festplatte heruntergeladen.
- CRC32-Prüfung, bevor eine Datei als heruntergeladen markiert wird.
- Gibt beim Neustart sofort aus dem lokalen Cache wieder — für den Start ist keine Serververbindung nötig.
- Vollbild, edge-to-edge — ohne Statusleiste und ohne Schaltflächen.
- Passt sich ohne Neustart automatisch an jede Auflösung an (SD, FHD, 4K).
Logs
Die Logs des Agenten werden lokal gespeichert und bei jedem Heartbeat auf den Server hochgeladen. Zum Ansehen:
- Lokal:
tail -f /tmp/kiosk.logper SSH. - Über das Panel: Geräte → Zeile des Geräts → Aktionen → Logs.
Updates
Aktualisiert wird, indem Sie denselben Installations-Einzeiler erneut ausführen, mit dem Sie installiert haben. Erkennt er /opt/promobrowser/.git, führt er git fetch + reset --hard origin/main aus, wendet die Systempakete erneut an (idempotent über apt-get install -y) und schreibt die systemd-Unit neu. Anschließend starten Sie den Dienst neu:
curl -fsSL https://rds.digitalsignagerds.com/install.sh | sudo bash
sudo systemctl restart kiosk-browser
Das Installationsprogramm startet den Dienst nicht automatisch neu — tun Sie das nach dem Update selbst mit
systemctl restart.
Netzwerkkonfiguration
Das Admin-Menü (5 Berührungen der linken oberen Ecke) enthält eine Registerkarte Network mit:
Aktueller Status
Monospace-Bereich im oberen Teil, der sich alle 5 Sekunden automatisch aktualisiert. Zeigt für jede verbundene Schnittstelle:
- Name und Typ (ethernet / wifi)
- Name des NetworkManager-Profils
- IP, Maske, Gateway, DNS
WLAN
- Scan again — aktualisiert die Liste der verfügbaren Netze (
nmcli device wifi rescan). - Tabelle mit SSID, Signal in % und Sicherheitstyp. Das aktuell genutzte Netz ist grün mit ✓ markiert.
- Connect — wählen Sie ein Netz in der Tabelle aus und klicken Sie auf Connect. Ist es verschlüsselt, wird das Passwort abgefragt. Ruft
nmcli device wifi connectauf. - Forget current network — entfernt das Profil des aktuell aktiven WLANs (
nmcli connection delete).
Auf Geräten ohne WLAN-Adapter (rein kabelgebundene Kiosks) erscheint der Bereich weiterhin und zeigt beim Klick auf Scan/Connect "No WiFi adapter detected".
Ethernet
- Auswahl DHCP (empfohlen) / Static.
- Im Modus Static erscheinen die Felder:
- IP / CIDR — z. B.
192.168.1.50/24 - Gateway — z. B.
192.168.1.1 - DNS — ein oder mehrere Einträge, durch Kommas getrennt
- IP / CIDR — z. B.
- Apply Ethernet config ruft
nmcli connection modify ipv4.method auto|manual …auf, gefolgt von einem Down/Up des Profils, damit die Änderung sofort greift.
Die Änderung kann die Verbindung kurzzeitig unterbrechen, wenn Sie über dasselbe Kabel per SSH verbunden sind. Die Kiosk-Dienste (Heartbeat) erholen sich automatisch.
Alle Netzwerkvorgänge werden in agent.log unter der Kategorie NETWORK protokolliert.
Behebung häufiger Probleme
| Symptom | Diagnose |
|---|---|
| Weißer Bildschirm beim Start | systemctl status kiosk-browser — ist der Dienst aktiv, aber Sie sehen nichts, versuchen Sie chvt 7. |
| Keine Verbindung zum Server | Prüfen Sie Server URL und Device ID unter Settings → Server → Test Connection. |
| Videos werden nicht wiedergegeben | Es fehlt ein gstreamer-Paket. Neu installieren: sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav. |
Die Eingabe 12345 öffnet Settings nicht |
Der X11-RECORD-Watcher benötigt python3-xlib — installieren Sie das Paket neu. |
| Änderungen aus dem Panel kommen nicht an | Warten Sie den nächsten Heartbeat ab (60 s); im Zweifel journalctl -u kiosk-browser -f, um die Aufrufe zu sehen. |