Esta fonte é um bom exemplo da utilização do ZimaOS como anfitrião de dispositivo, em vez de tentar transformar a sua camada de sistema só de leitura numa distribuição de ambiente de trabalho. Como o ZimaOS não tem um apt ambiente ou ambiente de trabalho X.Org integrado, o autor construiu toda a pilha do quiosque dentro do Docker: Debian + X.Org + Chromium para o ecrã, além de um pequeno contentor nginx para o painel local.
O resultado foi um quiosque funcional com ecrã tátil de 22 polegadas, ligado a um ZimaBoard 2 1664. Isto continua a ser uma construção avançada da comunidade, não um modo de ambiente de trabalho suportado pela IceWhale. Utiliza rede do anfitrião, acesso direto aos gráficos e à entrada e um contentor de quiosque privilegiado, pelo que os utilizadores devem compreender as implicações de segurança e de acesso aos dispositivos antes de o replicarem.
O quiosque executa uma pilha de ambiente de trabalho dentro do Docker
O Dockerfile de origem começa com o Debian Bookworm Slim e instala X.Org, libinput, Openbox, Chromium, utilitários X11, tipos de letra e Mesa. O anfitrião continua a ser o ZimaOS; o espaço de utilizador gráfico reside dentro do contentor.
Este é exatamente o tipo de isolamento de carga de trabalho que o modelo de dispositivo do ZimaOS pretende incentivar.
A GPU Intel é exposta ao contentor do quiosque
O guia utiliza o modesetting controlador e passa o dispositivo Intel DRM para o contentor. O autor descobriu especificamente que o suporte Mesa necessário exigia backports do Bookworm para a pilha gráfica N100 utilizada pelo ZimaBoard 2.
O hardware atual do ZimaBoard 2 utiliza um Intel N150, pelo que os utilizadores que recriarem o guia devem validar o suporte atual do Mesa/X.Org, em vez de assumirem que os detalhes históricos do N100 são idênticos.
A entrada tátil passa pela camada de entrada/Udev do anfitrião
O sinal de imagem utilizava HDMI/miniDP, enquanto o controlador do ecrã tátil se ligava através de USB. O guia analisa /proc/bus/input/devices, mapeia o dispositivo de eventos correto no X.Org e partilha /run/udev para que o contentor possa identificar o hardware de entrada.
Um contentor nginx separado disponibiliza o painel
O código-fonte executa nginx:alpine numa porta que não seja do ZimaOS (8888 no exemplo) e monta os ficheiros do painel em modo só de leitura. O Chromium abre esse URL local em modo quiosque.
A utilização de um contentor Web separado facilita a atualização dos ficheiros do painel sem reconstruir o contentor gráfico.
Não reutilize a porta 80 do ZimaOS para o painel
O guia salienta explicitamente que o ZimaOS já utiliza a porta 80 para o seu painel. Se o Chromium abrir a página errada, verifique a porta do painel personalizado e o KIOSK_URL valor, em vez de alterar inesperadamente o ZimaOS.
O autor adicionou uma solução alternativa baseada em eventos de ponteiro para toques no ecrã
No painel de controlo do código-fonte, um pequeno movimento do dedo podia impedir o Chromium de disparar os tradicionais onclick processadores. O autor substituiu o tratamento de cliques por pointerup mais um limiar de movimento.
Esse JavaScript é específico da aplicação. As interfaces Web modernas concebidas para toque devem preferir controlos compatíveis com ponteiros e toque, em vez de executarem globalmente onclick cadeias de texto.
O modo privilegiado é o maior compromisso de segurança
O código-fonte inicia o contentor de quiosque com --privileged. Isto proporciona um acesso amplo aos dispositivos e ao kernel do anfitrião, sendo muito mais permissivo do que um contentor normal de painel.
Se reproduzir a compilação, teste primeiro se é necessário especificar /dev/drias montagens de , dispositivos de entrada e udev, juntamente com capacidades estritamente delimitadas, são suficientes. Mantenha o painel numa LAN de confiança.
A origem utiliza unless-stopped para recuperação automática
Ambos os contentores, nginx e quiosque, utilizam restart: unless-stopped comportamento para que o ecrã volte a aparecer após um reinício do ZimaOS. Guarde o Dockerfile, a configuração do X.Org, o ponto de entrada e o painel em /DATA armazenamento.
O ZimaOS atual pode empacotar isto de forma mais reprodutível com o Compose
O ZimaOS atual suporta importações padrão de Docker Compose/YAML. Em vez de manter vários docker run comandos, um utilizador avançado pode definir ambos os serviços, as políticas de reinício, os dispositivos, os volumes e a rede num único ficheiro Compose revisto.
Utilize o modelo atual do ZimaOS Compose.
Perguntas frequentes sobre quiosques com ecrã tátil
O ZimaOS precisa do apt ou de um ambiente de trabalho instalado no anfitrião?
Não. O código-fonte mantém intencionalmente o X.Org, o Openbox, o Mesa e o Chromium dentro do Docker.
Este é um modo de ambiente de trabalho oficial do ZimaOS?
Não. É uma compilação da comunidade que a IceWhale pediu autorização para partilhar, com os devidos créditos.
Porque é que o contentor de quiosque é de alto risco em comparação com uma aplicação normal?
O código-fonte dá-lhe o modo privilegiado e acesso direto aos gráficos e aos dispositivos de entrada, o que reduz o isolamento do Docker.
