From f153b209ef0ba0b4e77d50fd181406f985a948a3 Mon Sep 17 00:00:00 2001 From: Sases Date: Tue, 26 May 2026 14:22:33 +0200 Subject: [PATCH] rozwiazanie problemow --- README.md | 20 ++++++++++++++------ kiosk.service | 10 +++++----- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 99aff97..abae72e 100644 --- a/README.md +++ b/README.md @@ -16,15 +16,17 @@ Kiosk wyświetlający stronę `http://instrukcje.local` w Chromium na pełnym ek ```bash useradd -m -r -s /usr/sbin/nologin kiosk -usermod -aG tty,input,video,dialout kiosk +usermod -aG tty,input,video,render,dialout kiosk ``` ### 2. Zainstaluj pakiety ```bash -apt update && apt install -y \ - sway swayidle wlopm wlr-randr \ - chromium +apt update && apt install -y sway swayidle wlopm wlr-randr chromium seatd +``` + +```bash +systemctl enable --now seatd ``` > `cage` **nie** obsługuje protokołu `wlr-output-power-management-v1`, przez co `wlopm` z nim nie działa — ekran można wygasić, ale nie można go wybudzić. Dlatego używamy `sway`. @@ -94,11 +96,12 @@ Jednostka systemd uruchamiająca `sway` jako użytkownik `kiosk`. Ważne paramet | Opcja | Wartość | Opis | |---|---|---| -| `PAMName=login` | `login` | Dostęp do urządzeń przez logind (GPU, input) | +| `TTYPath` | `/dev/tty7` | Przypisuje sway do wirtualnego terminala tty7 | | `RuntimeDirectory=kiosk` | `kiosk` | Automatycznie tworzy `/run/kiosk` z prawami 0700 | | `XDG_RUNTIME_DIR` | `/run/kiosk` | Wymagane przez sway / Wayland | -| `WLR_LIBSEAT_BACKEND` | `logind` | Dostęp do GPU bez uprawnień roota | +| `WLR_LIBSEAT_BACKEND` | `seatd` | Dostęp do GPU/input przez demona seatd (bez logind) | | `IDLE_TIME` | `120` | Czas bezczynności (sekundy) przed wygaszeniem ekranu | +| `ExecStartPre` | `chvt 7` | Przełącza konsolę na tty7 przed startem sway | | `ExecStart` | `/usr/bin/sway` | Kompozytor Wayland | | `Restart=always` | — | Automatyczny restart po awarii / wyjściu Chromium | @@ -111,6 +114,8 @@ systemctl daemon-reload systemctl restart kiosk.service ``` +> **Uwaga:** Serwis używa `seatd` jako menedżera seat zamiast `logind`. Wymaga to, aby `seatd.service` był uruchomiony oraz żeby użytkownik `kiosk` należał do grupy `video` (dostęp do socketu seatd) i `render` (dostęp do `/dev/dri/renderD128`). + --- ### `sway-config` → `/home/kiosk/.config/sway/config` @@ -212,6 +217,9 @@ WAYLAND_DISPLAY=wayland-0 XDG_RUNTIME_DIR=/run/kiosk wlopm --on '*' |---|---|---| | Serwis natychmiast się kończy | Brak `/run/kiosk` | Sprawdź `RuntimeDirectory=kiosk` w pliku unit | | `XDG_RUNTIME_DIR is not set` | Brak zmiennej środowiskowej | Upewnij się że `Environment=XDG_RUNTIME_DIR=/run/kiosk` jest w unit | +| `Timeout waiting session to become active` | logind nie aktywuje sesji (race condition z VT) | Użyj `seatd` zamiast `logind` jako `WLR_LIBSEAT_BACKEND` | +| `failed to open /dev/dri/renderD128: Permission denied` | Brak grupy `render` | `usermod -aG render kiosk` | +| `Could not open target tty: Permission denied` | Brak `TTYPath` — logind przydziela VT 0 | Dodaj `TTYPath=/dev/tty7` i `StandardInput=tty` do unit | | Ekran się nie wygasza | Chromium blokuje idle | `swayidle` musi być uruchomiony **bez** flagi `-w` | | Ekran gaśnie ale nie wraca | `wlr-randr --off` rozłącza link DRM | Używaj `wlopm` z `sway` (nie `wlr-randr --off`) | | `wlopm: Wayland server does not support...` | Kompozytor bez protokołu power-management | Zamień `cage` na `sway` | diff --git a/kiosk.service b/kiosk.service index 3d5cded..0a59dc0 100644 --- a/kiosk.service +++ b/kiosk.service @@ -6,16 +6,18 @@ Wants=network-online.target [Service] User=kiosk Group=kiosk -PAMName=login Type=simple +TTYPath=/dev/tty7 +StandardInput=tty StandardOutput=journal StandardError=journal RuntimeDirectory=kiosk RuntimeDirectoryMode=0700 Environment=XDG_RUNTIME_DIR=/run/kiosk -Environment=WLR_LIBSEAT_BACKEND=logind +Environment=WLR_LIBSEAT_BACKEND=seatd + Environment=WLR_RENDERER=gles2 Environment=IDLE_TIME=120 @@ -23,9 +25,7 @@ Environment=IDLE_TIME=120 Environment=XDG_SESSION_TYPE=wayland Environment=XDG_SESSION_CLASS=user -CapabilityBoundingSet=CAP_SYS_TTY_CONFIG -AmbientCapabilities=CAP_SYS_TTY_CONFIG - +ExecStartPre=/usr/bin/chvt 7 ExecStart=/usr/bin/sway Restart=always