Skip to content

setup(100-199)

100_install_node.sh

  • Node.js を NodeSource から導入($NODE_VERSION を優先)
  • 22.x が失敗した場合は 20.x にフォールバック
  • 既に 20/22 が入っている場合は スキップ

101_install_signage_server.sh

signage-serverOTA manifest(mTLS) から取得して展開します。

  • /etc/signage/iot.envIoT 証明書が必須(099_write_iot_env.sh を先に実行)
  • /userdata が利用可能、または REQUIRE_USERDATA=1 の場合は /userdata/opt/signage-core/signage-server を実体にします
  • releases/<timestamp> に展開し、current を切替
  • npm ci --omit=dev --ignore-scripts を実行

102_install_edge_detection.sh

Jetson のみxignage-edge-detection を導入します。

  • OTA manifest(mTLS)から TAR/SHA を取得
  • releases/<timestamp> に展開して current を切替
  • requirements-full.txt があれば pip3 install -r を実行

REQUIRE_EDGE_DETECTION=1 の場合は依存導入失敗を エラー扱いにします。


105_install_metrics_service.sh

xignage-metrics/opt/xignage-metrics に同期し、systemd サービスとして常駐化します。

  • METRICS_SRC → METRICS_DSTrsync --delete
  • 状態保存ディレクトリ /var/lib/xignage-metrics を作成(700
  • npm ci --omit=dev を実行
  • /etc/systemd/system/xignage-metrics.service を生成し enable --now

IoT 接続情報は /etc/signage/iot.env に統一されます。


106_install_call_button_service.sh

呼び鈴(インターホン)ボタン常駐デーモンを導入し、call-button.service を作成・起動します。
Raspberry Pi / Jetson の双方で動作(Python 側で GPIO バックエンドを自動選択)。

  • 実行ファイル群(/opt/local/bin/)を install_or_link で配置
  • /etc/signage/io.env を未存在時に生成
  • /var/log/signage と logrotate(/etc/logrotate.d/xignage-io)を作成
  • call-button.service/etc/signage/io.env + /etc/signage/iot.env を読み込む

/etc/signage/io.env(既定・抜粋)

BUTTON_BOARD_PIN=5
BUTTON_DEBOUNCE_MS=30
STATE_PATH=/run/signage/io_state.json
EVENTS_PATH=/var/log/signage/io_events.jsonl

# ToF (optional)
# TOF_ENABLE=1
# TOF_MODEL=auto           # auto|vl53l0x|vl53l1x|none
# TOF_ADDR=0x29
# TOF_BUS=1
# TOF_THRESHOLD_MM=1200
# TOF_DISTANCE_MODE=2      # 0/1/2 = SHORT/MEDIUM/LONG
# TOF_TIMING_BUDGET_MS=50

107_install_iot_cert_rotate.sh

IoT 証明書ローテーション用のスクリプトを配置し、 iot-cert-rotate.timerdaily)を有効化します。

  • /usr/local/bin/rotate_iot_cert.sh
  • /usr/local/bin/iot_cert_rotate_if_due

130_install_chromium_policies.sh

Chromium の managed policy を導入し、キオスク時の カメラ/マイク許可を固定します。

  • 生成ファイル:xignage.json
  • 許可 URL:
  • http://127.0.0.1:3000
  • https://xrobotics.daily.co
  • https://api.xrobotics.jp

132_fix_chromium_snap_fonts_ja.sh

Snap 版 Chromium で 日本語フォントが崩れる問題を修正するため、 Noto フォントを導入しフォントキャッシュを再生成します。