Rozwiązanie społecznościowe

Zbuduj kiosk z ekranem dotykowym na ZimaBoard 2 przy użyciu Dockera, X.Org, Chromium i lokalnego panelu sterowania

A detailed April 2026 community tutorial for turning a ZimaBoard 2 1664 on ZimaOS 1.5.4 into a fullscreen touchscreen kiosk. The author ran Debian/X.Org/Chromium inside Docker, exposed Intel graphics and udev input, hosted the dashboard with nginx, added a touch-event workaround, and later shared photos of the working 24/7 home-assistant setup.

To źródło jest dobrym przykładem wykorzystania ZimaOS jako hosta urządzeniowego zamiast próby przekształcenia jego warstwy systemowej tylko do odczytu w dystrybucję desktopową. Ponieważ ZimaOS nie ma standardowego apt środowisko ani wbudowany pulpit X.Org autor zbudował cały stos kiosku wewnątrz Dockera: Debian + X.Org + Chromium do wyświetlania oraz mały kontener nginx do lokalnego pulpitu.

Rezultatem był działający 22-calowy kiosk z ekranem dotykowym, podłączony do ZimaBoard 2 1664. Nadal jest to zaawansowana konstrukcja społecznościowa, a nie tryb pulpitu obsługiwany przez IceWhale. Wykorzystuje sieć hosta, bezpośredni dostęp do grafiki i urządzeń wejściowych oraz uprzywilejowany kontener kiosku, dlatego przed skopiowaniem tej konfiguracji należy zrozumieć związane z nią kompromisy dotyczące bezpieczeństwa i dostępu do urządzeń.

Ukończony 22-calowy kiosk z ekranem dotykowym, podłączony do ZimaBoard 2 i wyświetlający pełnoekranowy, niestandardowy pulpit domowy
Autor źródła udostępnił ukończony kiosk działający jako stale włączony pulpit obok głównego komputera.

Kiosk uruchamia stos graficzny wewnątrz Dockera

Źródłowy plik Dockerfile bazuje na Debianie Bookworm Slim i instaluje X.Org, libinput, Openbox, Chromium, narzędzia X11, czcionki oraz Mesa. Hostem pozostaje ZimaOS, a graficzne środowisko użytkownika działa wewnątrz kontenera.

To dokładnie ten rodzaj izolacji obciążenia, do którego zachęca model urządzenia ZimaOS.

Układ GPU Intel jest udostępniany kontenerowi kiosku

W poradniku użyto modesetting sterownik i przekazuje urządzenie Intel DRM do kontenera. Autor wyraźnie stwierdził, że wymagana obsługa Mesa wymagała backportów Bookworm dla stosu graficznego N100 używanego przez ZimaBoard 2.

Obecny sprzęt ZimaBoard 2 korzysta z układu Intel N150, dlatego osoby odtwarzające tę konfigurację powinny sprawdzić aktualną obsługę Mesa/X.Org, zamiast zakładać, że historyczne informacje o N100 są identyczne.

Wejście dotykowe pochodzi z warstwy wejściowej/Udev hosta

Sygnał obrazu był przesyłany przez HDMI/miniDP, natomiast kontroler ekranu dotykowego był podłączony przez USB. W poradniku sprawdzane jest /proc/bus/input/devicesmapuje właściwe urządzenie zdarzeń w X.Org i udostępnia /run/udev aby kontener mógł identyfikować sprzęt wejściowy.

Konfiguracja kiosku ZimaBoard 2 z monitorem dotykowym, głośnikami i głównym komputerem stacjonarnym w tej samej przestrzeni roboczej Home Assistant
Ekran dotykowy był częścią szerszej architektury o niskim poborze energii, w której Zima pozostawała włączona, a wydajny główny komputer przechodził w stan uśpienia do czasu, gdy był potrzebny.

Osobny kontener nginx udostępnia pulpit

Źródło uruchamia się nginx:alpine na porcie innym niż port ZimaOS (w przykładzie 8888) i montuje pliki pulpitu w trybie tylko do odczytu. Chromium otwiera ten lokalny adres URL w trybie kiosku.

Korzystanie z osobnego kontenera webowego ułatwia aktualizowanie plików pulpitu bez konieczności ponownego budowania kontenera graficznego.

Nie używaj ponownie portu 80 ZimaOS dla pulpitu nawigacyjnego

W przewodniku wyraźnie zaznaczono, że ZimaOS używa już portu 80 dla swojego pulpitu nawigacyjnego. Jeśli Chromium otwiera niewłaściwą stronę, sprawdź port niestandardowego pulpitu nawigacyjnego oraz KIOSK_URL wartość zamiast zmieniać nieoczekiwanie ZimaOS.

Autor dodał obejście oparte na zdarzeniach wskaźnika dla dotknięć ekranu

W pulpicie nawigacyjnym źródła niewielki ruch palca mógł uniemożliwić Chromium wywołanie tradycyjnych onclick obsługi zdarzeń. Autor zastąpił obsługę kliknięć przez pointerup oraz progu ruchu.

Ten kod JavaScript jest specyficzny dla aplikacji. Nowoczesne interfejsy internetowe przeznaczone do obsługi dotykiem powinny preferować elementy sterujące przyjazne dla wskaźnika i dotyku zamiast globalnego wykonywania wbudowanych onclick ciągi.

Tryb uprzywilejowany to największy kompromis w zakresie bezpieczeństwa

Źródło uruchamia kontener kiosku z użyciem --privileged. Zapewnia to szeroki dostęp do urządzeń i jądra hosta oraz jest znacznie bardziej liberalne niż w przypadku zwykłego kontenera pulpitu.

Jeśli odtwarzasz tę kompilację, najpierw sprawdź, czy jawne /dev/driwystarczają montowania , urządzenia wejściowego i udev oraz precyzyjnie ograniczone uprawnienia. Pulpit powinien znajdować się w zaufanej sieci LAN.

Źródło używa opcji unless-stopped do automatycznego odzyskiwania

Oba kontenery — nginx i kiosk — używają restart: unless-stopped zachowanie, dzięki któremu obraz wraca po ponownym uruchomieniu ZimaOS. Przechowuj plik Dockerfile, konfigurację X.Org, punkt wejścia i pulpit w trwałej /DATA pamięci masowej.

Bieżąca wersja ZimaOS może zapewnić bardziej powtarzalne pakowanie za pomocą Compose

Bieżąca wersja ZimaOS obsługuje standardowy import plików Docker Compose/YAML. Zamiast utrzymywać kilka długich docker run polecenia pozwalają zaawansowanemu użytkownikowi opisać obie usługi, zasady ponownego uruchamiania, urządzenia, woluminy i sieć w jednym sprawdzonym pliku Compose.

Użyj bieżącego modelu ZimaOS Compose.

Duży, niestandardowy komputer stacjonarny używany wraz z zawsze włączonym kioskiem ZimaBoard 2 i koncentratorem Home Assistant
Szerszy projekt autora utrzymuje ZimaBoard 2 w trybie online przez całą dobę i uruchamia energochłonny główny komputer tylko przy większych obciążeniach.

FAQ dotyczące kiosku z ekranem dotykowym

Czy ZimaOS wymaga zainstalowania apt lub środowiska pulpitu na hoście?

Nie. Źródło celowo umieszcza X.Org, Openbox, Mesa i Chromium wewnątrz Dockera.

Czy jest to oficjalny tryb pulpitu ZimaOS?

Nie. To kompilacja społecznościowa, której udostępnienie IceWhale poprosiło o zgodę, z podaniem autora.

Dlaczego kontener kiosku jest obarczony wysokim ryzykiem w porównaniu ze zwykłą aplikacją?

Źródło nadaje mu tryb uprzywilejowany oraz bezpośredni dostęp do grafiki i urządzeń wejściowych, co zmniejsza izolację Dockera.