コンテンツにスキップ

setup(000-099)

000_write_env_files.sh

DEVICE_ID, BOARD_TYPE, IOT_BUNDLE_URL, IOT_BUNDLE_SHA256引数で受け取り/etc/signage 配下に環境ファイルを生成します。

  • /etc/signage/signage.env(既定 0644 → 実行ユーザが存在する場合 0640)
  • /etc/signage/bootstrap.env(0600)
  • /etc/signage/iot.env が無い場合は iot.env.sample を配置

bootstrap.envIoT 証明書 bundle の URL/SHA を一時保持し、 099_write_iot_env.sh が成功すると削除されます。

実行方法

sudo bash scripts/setup/000_write_env_files.sh \
  <DEVICE_ID> <BOARD_TYPE> <IOT_BUNDLE_URL> <IOT_BUNDLE_SHA256>
  • /etc/signage/signage.env(テンプレート)
SIGNAGE_CORE_DIR=<SIGNAGE_CORE_DIR>
DEVICE_ID=<DEVICE_ID>
BOARD_TYPE=<BOARD_TYPE>
NODE_ENV=production
  • /etc/signage/bootstrap.env
IOT_BUNDLE_URL=<IOT_BUNDLE_URL>
IOT_BUNDLE_SHA256=<IOT_BUNDLE_SHA256>

005_apt_bootstrap.sh

APT の 更新・アップグレードと、scripts/lib/config.shDEPENDENCIES に定義された ベース依存の一括導入を行います。BOARD_TYPE に応じて Jetson/Pi の依存セットが変化します。


006_disable_apt_auto_services.sh

apt の自動更新や unattended 系サービスを抑制し、 dpkg ロック競合を回避します(冪等)。


050_fix_hosts.sh

現在のホスト名(/etc/hostname)が /etc/hosts に自己解決可能なエントリとして登録されているかを確認し、未登録なら 127.0.1.1 <hostname> を追記します。


055_include_usercfg_pi.sh

Raspberry Pi 系ボードのみ/boot/firmware/config.txtinclude usercfg.txt を追記します。


060_enable_uart_pi.sh

Raspberry Pi 系のみ/boot/firmware/usercfg.txtenable_uart=1dtoverlay=disable-bt を追記します。


062_setup_csi_camera_pi.sh

Raspberry Pi 系のみ。CSI カメラ用のライブラリとビルド依存を導入します。


063_hold_kernel_updates_pi.sh

Raspberry Pi 系のみ。DKMS Wi-Fi ドライバ破損を避けるため、 カーネル関連パッケージを apt-mark hold します。

  • ALLOW_KERNEL_UPGRADE=1 を指定すると 保持をスキップ

070_install_wifi_usb_drivers.sh

Raspberry Pi / Jetson で Wi-Fi USB ドライバを導入します。

  • RTL8188EUS(Aircrack-NG)
  • RTL8821AU(morrownr, T2U Plus など)

既存の rtl8812au 競合を除去し、ブラックリストを設定します。


071_fix_wifi_names.sh

Wi-Fi インタフェース名を wlanINT(内蔵)/wlanUSB(USB) に固定します。


072_wifi_metrics.sh

NetworkManager dispatcher を導入し、Wi-Fi の 経路メトリックを調整します。
NetworkManager が有効な場合は legacy networkd Wi-Fi プロファイルを削除します。


073_setup_journal.sh

systemd-journald永続化し、総使用量 200MB に制限します。


074_lock_snapd.sh

Jetson 系のみ。snapd を既知バージョンに固定し、更新を hold します。


076_install_fluentbit.sh

Fluent Bit v4 を導入し、journald error を mTLS で relay します。
バッファは /var/tmp/fluent-bit/buffer(300MB 上限)です。


080_initial_setup.sh

Python venv を作成し、pip 依存を venv に集約します(既定 /opt/signage-core/venv)。
deps/pip-common.txt を導入し、Raspberry Pi の場合は deps/pip-raspi.txt を追加します。

その他、タイムゾーン/ロケール設定、時刻同期、DNS 固定化、 /etc/wpa_supplicant/wpa_supplicant-<iface>.conf の作成などを行います。


081_install_jetson_deps.sh

Jetson 専用の依存導入ステップです。
現行コードでは pip-jetson.txt のインストールはコメントアウトされており、 ログ出力のみ行います。


085_enable_led_gpio18.sh

Raspberry Pi 系のみ。GPIO18(BCM18)をブート時に High 出力へ設定し、LED を点灯させます。


086_install_gpio_button_shutdown_service.sh

Raspberry Pi 系のみ。libgpiod を使う 長押しシャットダウンハンドラを配備し、gpio-button-shutdown.service を有効化します。


087_enable_gpio_shutdown_overlay.sh

Raspberry Pi 系のみ/boot/firmware/config.txtdtoverlay=gpio-shutdown,... を設定します。


088_install_power_button_shutdown_service.sh

Jetson 系のみgpio_button_shutdown.py を導入し、 gpio-button-shutdown.service を有効化します。
/etc/signage/io.env にシャットダウンボタン用デフォルト値を作成します。


090_install_mender_client.sh

Mender client を導入します(Hosted Mender 用)。


091_configure_mender_hosted.sh

Hosted Mender の テナントトークンを使って mender-setup を実行します。
MENDER_TENANT_TOKEN が必須です。


092_install_mender_jetson_update_module.sh

Jetson A/B の rootfs 更新用に rootfs-image-jetson Update Module を配置します。


099_write_iot_env.sh

IoT 証明書の安全配置と /etc/signage/iot.env の更新を行います。
/tmp/iot-certs(bundle 展開先)を優先し、存在しない場合は /tmp/aws-iot-certs を参照します。

  • 配置先: /etc/signage/iot-certs/<DEVICE_ID>/
  • 更新内容: IOT_ENDPOINT, IOT_THING_NAME, IOT_CERT_PATH, IOT_KEY_PATH, IOT_CA_PATH
  • call-button.service / xignage-metrics.service を再起動(存在時)
IOT_ENDPOINT=<existing>
IOT_THING_NAME=<DEVICE_ID>
IOT_CERT_PATH=/etc/signage/iot-certs/<DEVICE_ID>/cert.pem
IOT_KEY_PATH=/etc/signage/iot-certs/<DEVICE_ID>/private.key
IOT_CA_PATH=/etc/signage/iot-certs/<DEVICE_ID>/AmazonRootCA1.pem