#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" FIRMWARE_SRC="$SCRIPT_DIR/firmware" BOOT="/boot/firmware" if [[ $EUID -ne 0 ]]; then echo "ERROR: this script must be run as root (use sudo)" >&2 exit 1 fi echo "=== IOT-GATE-RPI4 layer install ===" echo "Source : $FIRMWARE_SRC" echo "Target : $BOOT" echo # --- config.txt --- echo "[1/2] Installing config.txt" if [[ -f "$BOOT/config.txt" ]]; then echo " Backing up $BOOT/config.txt -> $BOOT/config.bak" cp -v "$BOOT/config.txt" "$BOOT/config.bak" else echo " WARNING: $BOOT/config.txt not found, skipping backup" fi echo " Copying $FIRMWARE_SRC/config.txt -> $BOOT/config.txt" cp -v "$FIRMWARE_SRC/config.txt" "$BOOT/config.txt" # --- overlays --- echo echo "[2/2] Installing device tree overlays" OVERLAY_SRC="$FIRMWARE_SRC/overlays/iotg-rpi4" OVERLAY_DST="$BOOT/overlays/iotg-rpi4" if [[ ! -d "$OVERLAY_SRC" ]]; then echo " ERROR: overlay source directory not found: $OVERLAY_SRC" >&2 exit 1 fi echo " Creating $OVERLAY_DST" mkdir -p "$OVERLAY_DST" for f in "$OVERLAY_SRC"/*; do echo " Copying $(basename "$f")" cp -v "$f" "$OVERLAY_DST/" done echo echo "=== Done ===" echo "Reboot for overlay changes to take effect."