From 04240d2557b1c7b994f797f974ffb2674797b9f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Kie=C5=82kowski?= Date: Thu, 28 May 2026 09:43:17 +0200 Subject: [PATCH] wake on lan changes --- README.md | 19 +++++++++++++------ kiosk-manager.sh | 19 +++++++++++++++++-- kiosk-schedule | 9 ++++++--- presentation-manager.sh | 13 ++++--------- 4 files changed, 40 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 139ac53..db5c039 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Kiosk na dwa monitory. Lewy ekran wyświetla `http://diluals31/terminal/ift/5/DE │ Wirtualny desktop 3840×1080 (xrandr --right-of) │ │ ┌──────────────────────────┐ ┌──────────────────────────────┐ │ │ │ Chromium (fullscreen) │ │ LibreOffice Impress --show │ │ -│ │ DP-1 (0,0–1920×1080) │ │ HDMI-1 (1920,0–3840×1080) │ │ +│ │ DP-1 (0,0–1920×1080) │ │ HDMI-1 (1920,0–3840×1080) │ │ │ │ http://diluals31/... │ │ terminal_live.pptx │ │ │ └──────────────────────────┘ └──────────────────────────────┘ │ │ ▲ above (wmctrl) ▲ │ @@ -231,7 +231,11 @@ GRUB_TIMEOUT=0 ## Harmonogram — Automatyczne wyłączanie i Wake on LAN -Kiosk wyłącza się automatycznie w **sobotę o 7:00** i jest budzony przez Magic Packet (Wake on LAN) w **niedzielę o 21:00**. +Kiosk wyłącza się automatycznie w **sobotę o 7:00** i jest budzony przez Magic Packet (Wake on LAN) co 5 minut przez całe okno aktywności (**niedziela 21:00 – sobota 7:00**). Pakiet WoL jest ignorowany gdy kiosk jest już włączony — cykliczne wysyłanie nie powoduje restartów. + +> **Utrata prądu:** WoL nie zadziała gdy karta sieciowa nie ma zasilania. Aby kiosk sam wstał po powrocie prądu, wejdź w ustawienia BIOS/UEFI i ustaw opcję **Restore on AC Power Loss** (lub **After Power Failure**) na **Power On**. W połączeniu z cyklicznym WoL zapewnia to pełne pokrycie: brak prądu → BIOS bootuje automatycznie; awaria software → WoL obudzi po max. 5 min. +> +> Jeśli prąd wróci w oknie wyłączenia (sobota 7:00 – niedziela 20:59), kiosk uruchomi się przez BIOS, ale `kiosk-schedule` wyłączy go ponownie w ciągu max. 5 minut. ### Na kiosku @@ -267,7 +271,7 @@ ip link show | grep -A1 "state UP" | grep ether | awk '{print $2}' Zanotuj ten adres — potrzebny do konfiguracji serwera (krok poniżej). -### Na serwerze (192.168.40.201) +### Na serwerze (192.168.40.126) Zainstaluj narzędzie do wysyłania Magic Packet: @@ -275,14 +279,17 @@ Zainstaluj narzędzie do wysyłania Magic Packet: apt install wakeonlan ``` -Utwórz plik crona wysyłającego WoL w niedzielę o 21:00 (wstaw MAC kiosku): +Utwórz plik crona wysyłającego WoL co 5 minut przez całe okno aktywności kiosku (wstaw MAC kiosku): ```bash cat > /etc/cron.d/kiosk-wol << 'EOF' SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -# Obuć kiosk WS-VK016 w niedzielę o 21:00 -0 21 * * 0 root wakeonlan XX:XX:XX:XX:XX:XX +# Budź kiosk WS-VK016 co 5 min w oknie aktywności: nd 21:00 – sb 7:00 +# Jeśli kiosk jest już włączony, pakiet WoL jest ignorowany (bezpieczne). +*/5 21-23 * * 0 root wakeonlan XX:XX:XX:XX:XX:XX +*/5 * * * 1-5 root wakeonlan XX:XX:XX:XX:XX:XX +*/5 0-6 * * 6 root wakeonlan XX:XX:XX:XX:XX:XX EOF chmod 644 /etc/cron.d/kiosk-wol ``` diff --git a/kiosk-manager.sh b/kiosk-manager.sh index cbd9971..d9a19ec 100644 --- a/kiosk-manager.sh +++ b/kiosk-manager.sh @@ -59,9 +59,24 @@ xdotool mousemove "$RES_W" "$((RES_H + 100))" openbox --sm-disable & sleep 0.5 +# Konfiguracja LibreOffice Impress: wyłącz presenter console, pokaz na ekranie 1 (HDMI-1) +# Nadpisujemy przy każdym starcie — profil kiosku nie wymaga ochrony +LO_PROFILE="$HOME/.config/libreoffice/4/user" +mkdir -p "$LO_PROFILE" +cat > "$LO_PROFILE/registrymodifications.xcu" << 'XCUEOF' + + + + + false + + + +XCUEOF + # ─── Start aplikacji ───────────────────────────────────────────────────────── -# Konfiguracja LO (wyłączenie konsoli prezentera) jest zarządzana przez -# presentation-manager.sh → start_lo() via -env:UserInstallation=/tmp/lo-kiosk-profile # Uruchom menedżera prezentacji w tle (prawy ekran) /home/kiosk/presentation-manager.sh & diff --git a/kiosk-schedule b/kiosk-schedule index e0dfa99..dd1403a 100644 --- a/kiosk-schedule +++ b/kiosk-schedule @@ -1,9 +1,12 @@ # /etc/cron.d/kiosk-schedule # Harmonogram kiosku WS-VK016 -# Instalacja: cp kiosk-schedule /etc/cron.d/kiosk-schedule -# chmod 644 /etc/cron.d/kiosk-schedule SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -# Wyłącz kiosk w sobotę o 7:00 +# Wyłącz kiosk w sobotę o 7:00 (planowe wyłączenie) 0 7 * * 6 root /sbin/shutdown -h now + +# Jeśli kiosk uruchomi się po utracie prądu w oknie wyłączenia (sb 07:00 – nd 20:59), +# wyłącz go w ciągu max. 5 minut. Gdy kiosk jest normalnie wyłączony, wpisy nie działają. +*/5 7-23 * * 6 root /sbin/shutdown -h now +*/5 0-20 * * 0 root /sbin/shutdown -h now diff --git a/presentation-manager.sh b/presentation-manager.sh index 062bcdd..1b4e789 100644 --- a/presentation-manager.sh +++ b/presentation-manager.sh @@ -59,12 +59,9 @@ start_lo() { # Usuń plik blokady LO — pozostaje po kill i blokuje kolejne uruchomienie rm -f /tmp/.~lock.kiosk-live.pptx\# - # Wyłącz konsolę prezentera — izolowany profil w /tmp eliminuje problemy - # z HOME=/root (usługa bez User=kiosk) i z cache LO z poprzednich sesji. - # -env:UserInstallation wskazuje LO dokładnie który profil ma użyć. - _LO_PROFILE_DIR="/tmp/lo-kiosk-profile" - _LO_PROFILE="$_LO_PROFILE_DIR/user" - rm -rf "$_LO_PROFILE_DIR" # wymuś świeży profil — bez żadnych zapisanych preferencji + # Wyłącz konsolę prezentera — zapisujemy tuż przed uruchomieniem LO, + # żeby mieć pewność że dotyczy bieżącego profilu ($HOME może być /root) + _LO_PROFILE="$HOME/.config/libreoffice/4/user" mkdir -p "$_LO_PROFILE" cat > "$_LO_PROFILE/registrymodifications.xcu" << 'XCUEOF' @@ -73,7 +70,7 @@ start_lo() { xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - false + false @@ -87,9 +84,7 @@ XCUEOF } echo "[presentation-manager] Uruchamianie pokazu: $LOCAL_PRESENTATION" # --show otwiera bezpośrednio pokaz (bez Start Center) - # -env:UserInstallation wymusza użycie naszego profilu (bez konsoli prezentera) soffice \ - "-env:UserInstallation=file://$_LO_PROFILE_DIR" \ --norestore \ --nofirststartwizard \ --show "$LOCAL_PRESENTATION" &