コミュニティソリューション

Docker、X.Org、Chromium、ローカルダッシュボードでZimaBoard 2にタッチスクリーンキオスクを構築する

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.

このソースは、読み取り専用のシステムレイヤーをデスクトップディストリビューションに変えようとするのではなく、ZimaOS をアプライアンスホストとして使用する好例です。ZimaOS には通常の apt 環境や組み込みの X.Org デスクトップに頼らず、著者はキオスクスタック全体を Docker 内に構築しました。ディスプレイ用の Debian + X.Org + Chromium に加え、ローカルダッシュボード用の小規模な nginx コンテナを使用しています。

その結果、ZimaBoard 2 1664 に接続された、動作する 22 インチタッチスクリーンキオスクが完成しました。これはコミュニティによる高度なビルドであり、IceWhale がサポートするデスクトップモードではありません。ホストネットワーク、グラフィックスと入力への直接アクセス、特権付きキオスクコンテナを使用するため、これをそのまま導入する前に、セキュリティとデバイスアクセスのトレードオフを理解してください。

ZimaBoard 2 に接続され、カスタムホームダッシュボードを全画面表示する、完成した 22 インチタッチスクリーンキオスクダッシュボード
ソースの著者は、メイン PC の横で常時表示されるダッシュボードとして完成したキオスクを共有しました。

キオスクは Docker 内でデスクトップスタックを実行する

ソースの Dockerfile は Debian Bookworm Slim をベースに、X.Org、libinput、Openbox、Chromium、X11 ユーティリティ、フォント、Mesa をインストールします。ホストは ZimaOS のままで、グラフィカルなユーザー空間はコンテナ内で動作します。

これはまさに、ZimaOS のアプライアンスモデルが促進するよう設計されたワークロード分離です。

Intel GPU はキオスクコンテナに公開される

このガイドでは、X.Org の modesetting ドライバーを使用し、Intel DRM デバイスをコンテナに渡します。著者は、ZimaBoard 2 で使用される N100 グラフィックススタックに必要な Mesa サポートには、Bookworm のバックポートが必要であることを確認しました。

現在の ZimaBoard 2 ハードウェアは Intel N150 を使用しているため、このガイドを再現するユーザーは、過去の N100 に関する記述が同一だと想定せず、現在の Mesa/X.Org のサポート状況を確認してください。

タッチ入力はホストの Input/Udev レイヤー経由で提供される

ディスプレイ信号には HDMI/miniDP を使用し、タッチスクリーンコントローラーは USB 経由で接続しました。このガイドでは、 /proc/bus/input/devices、X.Org で正しいイベントデバイスを割り当て、 /run/udev コンテナが入力ハードウェアを識別できるようにします。

同じ Home Assistant ワークスペースにある、タッチスクリーンモニター、スピーカー、メインデスクトップ PC を備えた ZimaBoard 2 のキオスク構成
タッチスクリーンは、Zima がオンライン状態を維持し、必要なときだけ高性能なメイン PC がスリープから復帰する、より広範な低消費電力アーキテクチャの一部でした。

別の nginx コンテナがダッシュボードを提供

ソースは実行されます nginx:alpine ZimaOS 以外のポート(例では 8888)で起動し、ダッシュボードファイルを読み取り専用でマウントします。Chromium はそのローカル URL をキオスクモードで開きます。

別の Web コンテナを使用すると、グラフィカルコンテナを再ビルドせずにダッシュボードファイルを簡単に更新できます。

ダッシュボードにZimaOSのポート80を再利用しないでください

このガイドでは、ZimaOSがすでにダッシュボードにポート80を使用していることを明記しています。Chromiumが誤ったページを開く場合は、カスタムダッシュボードのポートと KIOSK_URL ZimaOSを予期せず変更するのではなく、値を使用します。

著者はタッチタップ向けにポインターイベントの回避策を追加しました

ソースのダッシュボードでは、指のわずかな動きによってChromiumが従来の onclick ハンドラー。著者はクリック処理を pointerup に加えて、移動量のしきい値を設定しました。

このJavaScriptはアプリケーション固有のものです。タッチ向けに設計された最新のWebインターフェースでは、インラインの onclick 文字列。

特権モードは最大のセキュリティ上のトレードオフです

ソースではキオスクコンテナを次の設定で起動します。 --privileged。これによりデバイスとホストカーネルへの広範なアクセスが可能になり、通常のダッシュボードコンテナよりもはるかに許容範囲が広くなります。

ビルドを再現する場合は、まず明示的な設定が必要かどうかをテストしてください。 /dev/dri、入力デバイス、udevのマウント、および必要最小限のケイパビリティで十分です。ダッシュボードは信頼できるLAN上に置いてください。

ソースでは自動復旧にunless-stoppedを使用しています

nginxコンテナとキオスクコンテナは、どちらも restart: unless-stopped ZimaOSの再起動後にディスプレイが戻るように動作を設定します。Dockerfile、X.Org設定、エントリーポイント、ダッシュボードは永続 /DATA ストレージ。

現在のZimaOSではComposeによって、これをより再現性の高い形でパッケージ化できます

現在のZimaOSは、標準のDocker Compose/YAMLインポートに対応しています。複数の長い docker run コマンドを使えば、上級ユーザーは両方のサービス、再起動ポリシー、デバイス、ボリューム、ネットワークを、レビュー済みの1つのComposeファイルで指定できます。

現在のZimaOS Composeモデルを使用してください。

常時稼働するZimaBoard 2のキオスクおよびHome Assistantハブと併用する大型カスタムデスクトップPC
著者のより広範な設計では、ZimaBoard 2を24時間365日オンラインに保ち、より負荷の大きい処理が必要な場合にのみ、電力消費の大きいメインPCを起動します。

タッチスクリーン・キオスクに関するFAQ

ZimaOSでは、ホストにaptやデスクトップ環境をインストールする必要がありますか?

いいえ。ソースではX.Org、Openbox、Mesa、Chromiumを意図的にDocker内に保持しています。

これは公式のZimaOSデスクトップモードですか?

いいえ。これはコミュニティによるビルドで、IceWhaleがクレジット表記付きでの共有許可を求めました。

キオスクコンテナは通常のアプリと比べて、なぜ高リスクなのですか?

ソースは特権モードとグラフィックス/入力への直接アクセスを付与するため、Dockerの分離性が低下します。