rozwiazanie problemow
This commit is contained in:
@@ -16,15 +16,17 @@ Kiosk wyświetlający stronę `http://instrukcje.local` w Chromium na pełnym ek
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
useradd -m -r -s /usr/sbin/nologin kiosk
|
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
|
### 2. Zainstaluj pakiety
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
apt update && apt install -y \
|
apt update && apt install -y sway swayidle wlopm wlr-randr chromium seatd
|
||||||
sway swayidle wlopm wlr-randr \
|
```
|
||||||
chromium
|
|
||||||
|
```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`.
|
> `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 |
|
| 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 |
|
| `RuntimeDirectory=kiosk` | `kiosk` | Automatycznie tworzy `/run/kiosk` z prawami 0700 |
|
||||||
| `XDG_RUNTIME_DIR` | `/run/kiosk` | Wymagane przez sway / Wayland |
|
| `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 |
|
| `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 |
|
| `ExecStart` | `/usr/bin/sway` | Kompozytor Wayland |
|
||||||
| `Restart=always` | — | Automatyczny restart po awarii / wyjściu Chromium |
|
| `Restart=always` | — | Automatyczny restart po awarii / wyjściu Chromium |
|
||||||
|
|
||||||
@@ -111,6 +114,8 @@ systemctl daemon-reload
|
|||||||
systemctl restart kiosk.service
|
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`
|
### `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 |
|
| 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 |
|
| `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 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`) |
|
| 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` |
|
| `wlopm: Wayland server does not support...` | Kompozytor bez protokołu power-management | Zamień `cage` na `sway` |
|
||||||
|
|||||||
+5
-5
@@ -6,16 +6,18 @@ Wants=network-online.target
|
|||||||
[Service]
|
[Service]
|
||||||
User=kiosk
|
User=kiosk
|
||||||
Group=kiosk
|
Group=kiosk
|
||||||
PAMName=login
|
|
||||||
Type=simple
|
Type=simple
|
||||||
|
|
||||||
|
TTYPath=/dev/tty7
|
||||||
|
StandardInput=tty
|
||||||
StandardOutput=journal
|
StandardOutput=journal
|
||||||
StandardError=journal
|
StandardError=journal
|
||||||
|
|
||||||
RuntimeDirectory=kiosk
|
RuntimeDirectory=kiosk
|
||||||
RuntimeDirectoryMode=0700
|
RuntimeDirectoryMode=0700
|
||||||
Environment=XDG_RUNTIME_DIR=/run/kiosk
|
Environment=XDG_RUNTIME_DIR=/run/kiosk
|
||||||
Environment=WLR_LIBSEAT_BACKEND=logind
|
Environment=WLR_LIBSEAT_BACKEND=seatd
|
||||||
|
|
||||||
Environment=WLR_RENDERER=gles2
|
Environment=WLR_RENDERER=gles2
|
||||||
|
|
||||||
Environment=IDLE_TIME=120
|
Environment=IDLE_TIME=120
|
||||||
@@ -23,9 +25,7 @@ Environment=IDLE_TIME=120
|
|||||||
Environment=XDG_SESSION_TYPE=wayland
|
Environment=XDG_SESSION_TYPE=wayland
|
||||||
Environment=XDG_SESSION_CLASS=user
|
Environment=XDG_SESSION_CLASS=user
|
||||||
|
|
||||||
CapabilityBoundingSet=CAP_SYS_TTY_CONFIG
|
ExecStartPre=/usr/bin/chvt 7
|
||||||
AmbientCapabilities=CAP_SYS_TTY_CONFIG
|
|
||||||
|
|
||||||
ExecStart=/usr/bin/sway
|
ExecStart=/usr/bin/sway
|
||||||
|
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|||||||
Reference in New Issue
Block a user