Prevent kiosk and getty tty1 race
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user