From ec031659dbaaf03d22b4213193fd080f6375c930 Mon Sep 17 00:00:00 2001 From: Arnav Wadhwa <40817363+ArnavVWadhwa@users.noreply.github.com> Date: Thu, 27 Aug 2026 23:03:48 -0700 Subject: [PATCH] Pin base image to Raspberry Pi OS Trixie --- .github/workflows/validate.yml | 4 ++-- README.md | 4 ++-- build-image.sh | 2 +- lib/common.sh | 4 ++-- provision.sh | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 81e474f..d4fb37d 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -21,10 +21,10 @@ jobs: runs-on: ubuntu-24.04-arm # native arm64 container steps: - uses: actions/checkout@v4 - - name: Run customize.sh in an arm64 Bookworm container and assert + - name: Run customize.sh in an arm64 Trixie container and assert run: | docker run --rm -v "$PWD:/src" \ - arm64v8/debian:bookworm bash -euo pipefail -c ' + arm64v8/debian:trixie bash -euo pipefail -c ' apt-get update apt-get install -y --no-install-recommends curl ca-certificates iproute2 procps dbus mkdir -p /boot/firmware && : > /boot/firmware/config.txt diff --git a/README.md b/README.md index b916238..77c91ec 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ dependencies and installs them with `uv`. ## What the image bakes in -- **OS**: Raspberry Pi OS Bookworm 64-bit (arm64), Desktop +- **OS**: Raspberry Pi OS Trixie 64-bit (arm64), Desktop - **Hardware**: I2C, SPI, and UART enabled. `dtoverlay=disable-bt` so `/dev/serial0` is the PL011 UART for the SlushEngine / DPi bus. `i2c-dev` loaded. - **Networking (`eth0`)**: DHCP for internet, plus an always-on static @@ -50,7 +50,7 @@ a specific Raspberry Pi OS release for reproducibility. ### In CI, on every PR (`.github/workflows/validate.yml`) -Runs `shellcheck`, then runs `customize.sh` inside an arm64 Bookworm container +Runs `shellcheck`, then runs `customize.sh` inside an arm64 Trixie container and asserts what can be checked without hardware: `uv` present, the 5358 avahi `.deb` installed, the I2C/SPI/UART lines written, and the eth0 NetworkManager profile present. This gates merges to `main`. diff --git a/build-image.sh b/build-image.sh index f1b4b15..c7cd07e 100755 --- a/build-image.sh +++ b/build-image.sh @@ -18,7 +18,7 @@ WORK="${WORK:-$HERE/.build}" # Stock Raspberry Pi OS (arm64, desktop). PIN a dated release for reproducibility; # check https://downloads.raspberrypi.com/raspios_arm64/images/ for the current one. -BASE_URL="${BASE_URL:-https://downloads.raspberrypi.com/raspios_arm64/images/raspios_arm64-2025-05-13/2025-05-13-raspios-bookworm-arm64.img.xz}" +BASE_URL="${BASE_URL:-https://downloads.raspberrypi.com/raspios_arm64/images/raspios_arm64-2026-06-19/2026-06-18-raspios-trixie-arm64.img.xz}" GROW_MB="${GROW_MB:-2048}" # headroom for our added packages OUT_IMG="$WORK/dpea-pi-$(date +%Y%m%d).img" diff --git a/lib/common.sh b/lib/common.sh index e0bcca4..5f58650 100755 --- a/lib/common.sh +++ b/lib/common.sh @@ -3,7 +3,7 @@ # Sourced by provision.sh to configure a running Pi. The image bakes the same # choices at build time via customize.sh. # -# Target: Raspberry Pi OS Bookworm, 64-bit (aarch64). +# Target: Raspberry Pi OS Trixie, 64-bit (aarch64). # # Layering rule: # apt / packages.txt -> NON-Python OS libraries only (SDL2, i2c-tools, ...). @@ -31,7 +31,7 @@ dpea_install_packages() { dpea_enable_interfaces() { # I2C, SPI, and the serial *hardware* (not the login console). Needs a recent - # raspi-config (ships on Bookworm). In a build chroot, edit config.txt directly. + # raspi-config (ships on Raspberry Pi OS). In a build chroot, edit config.txt directly. raspi-config nonint do_i2c 0 raspi-config nonint do_spi 0 raspi-config nonint do_serial_hw 0 diff --git a/provision.sh b/provision.sh index 5ceb855..49933eb 100755 --- a/provision.sh +++ b/provision.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Provision a running DPEA Raspberry Pi from stock Raspberry Pi OS 64-bit (Bookworm). +# Provision a running DPEA Raspberry Pi from stock Raspberry Pi OS 64-bit (Trixie). # Idempotent: safe to re-run. Run with sudo. # # sudo ./provision.sh [--hostname arnav-pi]