Enhance first-boot script and documentation with config file support

Introduce a configuration file (`first-boot.conf`) to allow users to override default script variables without modifying the script directly. Update the first-boot script to load this config file from multiple locations, enhancing flexibility in customization. Revise documentation to guide users on how to utilize the config file for setting variables like FILE_SERVER, HOSTNAME, and PACKAGES, improving the overall user experience during first boot operations.
This commit is contained in:
nearxos
2026-02-21 22:22:40 +02:00
parent 3909fd7cf1
commit 79a7f76a12
4 changed files with 157 additions and 43 deletions

View File

@@ -0,0 +1,61 @@
# first-boot.conf.example
# Copy to first-boot.conf and edit. Loaded by first-boot.sh from:
# - same directory as first-boot.sh, or
# - /tmp/first-boot.conf (when run via cloud-init), or
# - /etc/cm4-provisioning/first-boot.conf
# Unset variables keep the script's built-in defaults.
# --- File server & host ---
# Base URL for first-boot assets (scripts, splash, configs). No trailing slash.
# FILE_SERVER="http://10.20.50.1:5000/files/first-boot"
# Hostname set on the device.
# HOSTNAME="guard"
# --- User ---
# Login user (must exist; cloud-init user-data must create the same user).
# PI_USER="pi"
# --- Paths (optional overrides) ---
# First-boot log file.
# LOGFILE="/var/log/first-boot.log"
# Plymouth custom theme directory.
# PLYMOUTH_DIR="/usr/share/plymouth/themes/custom"
# Wallpaper path (splash.png is also copied here).
# WALLPAPER_PATH="/usr/share/rpd-wallpaper/splash.png"
# --- Packages ---
# Space-separated list of packages to install. Must include: git chromium wmctrl openssh-server
# swaybg wlr-randr maliit-keyboard xinput-calibrator (for kiosk + labwc + touch).
# PACKAGES="git chromium wmctrl openssh-server swaybg wlr-randr maliit-keyboard xinput-calibrator"
# --- Desktop & theme ---
# LightDM session (rpd-labwc for Wayland + labwc).
# LIGHTDM_SESSION="rpd-labwc"
# GTK dark theme name (e.g. PiXnoir; fallback is Adwaita-dark if missing).
# GTK_THEME_NAME="PiXnoir"
# Wallpaper mode for pcmanfm (crop, stretch, fit, center, tile, screen, color).
# WALLPAPER_MODE="crop"
# --- Display (reTerminal DM) ---
# Kernel cmdline: DSI rotation. 90 = 90° clockwise; use 180 or 270 for other orientations.
# DSI_ROTATE="270"
# Kernel cmdline: swiotlb size (for vc4-drm/DSI). Leave empty to skip.
# SWIOTLB_SIZE="65536"
# --- reTerminal (Seeed) ---
# Device passed to reTerminal.sh (reTerminal-DM for reTerminal DM).
# RETERMINAL_DEVICE="reTerminal-DM"
# Seeed overlays repo (clone URL). Leave empty to skip driver install.
# RETERMINAL_REPO_URL="https://github.com/Seeed-Studio/seeed-linux-dtoverlays"
# --- One-shots ---
# Space-separated names of one-shot scripts to install from FILE_SERVER (each name gets name.sh + name.desktop).
# Example: "set-rotation-once set-wallpaper-once". Leave empty for none.
# ONESHOT_SCRIPTS=""