Prevent kiosk and getty tty1 race

This commit is contained in:
Mikei386
2026-08-11 08:59:23 +02:00
parent 48578c5919
commit 07563c3b11
5 changed files with 29 additions and 4 deletions
+7 -2
View File
@@ -2,8 +2,13 @@ Mini-Dokumentation: Analyzer Kiosk auf Raspberry Pi OS
1. Dienste deaktivieren 1. Dienste deaktivieren
sudo systemctl disable --now lightdm.service sudo systemctl disable --now lightdm.service
sudo systemctl disable --now getty@tty1.service sudo systemctl mask --now getty@tty1.service
sudo systemctl reset-failed getty@tty1.service
Hinweis:
- tty1 ist exklusiv fuer Xorg/Chromium reserviert. Ein blosses `disable` reicht
nicht, weil systemd den Getty bei einem spaeteren Boot erneut erzeugen kann.
- Fuer einen lokalen Login-Prompt auf tty1 den Kiosk zuerst stoppen und Getty
anschliessend mit `sudo systemctl unmask --now getty@tty1.service` reaktivieren.
2. systemd neu laden 2. systemd neu laden
sudo systemctl daemon-reload sudo systemctl daemon-reload
+13 -2
View File
@@ -124,8 +124,19 @@ zugehörige sudo-Regel werden einmalig als root installiert:
sudo bash /home/volumio/Phoenix/scripts/install_volumio_services.sh sudo bash /home/volumio/Phoenix/scripts/install_volumio_services.sh
``` ```
Der Installer verändert keine Debian-/Analyzer-Units und startet laufende Der Installer überschreibt keine Debian-/Analyzer-Unitdateien und startet
Dienste nicht automatisch neu. laufende Dienste nicht automatisch neu. Er maskiert `getty@tty1.service`, da der
Kiosk-X-Server `tty1` exklusiv verwendet. Ohne die Maskierung können Getty und
Xorg beim Booten um dasselbe virtuelle Terminal konkurrieren und eine
Kiosk-Neustartschleife auslösen.
Um den lokalen Login-Prompt auf `tty1` wiederherzustellen, zuerst den Kiosk
stoppen und Getty anschließend wieder freigeben:
```bash
sudo systemctl stop analyzer-kiosk-volumio.service
sudo systemctl unmask --now getty@tty1.service
```
Wenn `toggle-ext` genutzt werden soll, sollte es also unter diesem Pfad liegen: Wenn `toggle-ext` genutzt werden soll, sollte es also unter diesem Pfad liegen:
@@ -1,5 +1,7 @@
[Unit] [Unit]
Description=Analyzer Kiosk Volumio (Raspberry Pi OS) Description=Analyzer Kiosk Volumio (Raspberry Pi OS)
Conflicts=getty@tty1.service
After=systemd-user-sessions.service getty-pre.target
After=network-online.target After=network-online.target
After=analyzer-web-volumio.service After=analyzer-web-volumio.service
Wants=analyzer-web-volumio.service Wants=analyzer-web-volumio.service
@@ -1,5 +1,7 @@
[Unit] [Unit]
Description=Analyzer Kiosk (Raspberry Pi OS) Description=Analyzer Kiosk (Raspberry Pi OS)
Conflicts=getty@tty1.service
After=systemd-user-sessions.service getty-pre.target
After=network-online.target After=network-online.target
After=analyzer-web.service After=analyzer-web.service
Wants=analyzer-web.service Wants=analyzer-web.service
+5
View File
@@ -51,8 +51,13 @@ install -o root -g root -m 0440 \
"$SUDOERS_SOURCE" \ "$SUDOERS_SOURCE" \
/etc/sudoers.d/phoenix-update-volumio /etc/sudoers.d/phoenix-update-volumio
# tty1 is reserved for Xorg by analyzer-kiosk-volumio.service. Disabling the
# generated getty is insufficient because systemd may create/start it again on
# a later boot. Mask it so the kiosk and agetty can never race for the VT.
systemctl mask --now getty@tty1.service
systemctl daemon-reload systemctl daemon-reload
systemctl enable analyzer-web-volumio.service analyzer-kiosk-volumio.service systemctl enable analyzer-web-volumio.service analyzer-kiosk-volumio.service
echo "Volumio integration installed" echo "Volumio integration installed"
echo "getty@tty1.service masked; run 'systemctl unmask getty@tty1.service' to restore the tty1 login console"
echo "Existing services were not restarted" echo "Existing services were not restarted"