1.5 KiB
1.5 KiB
toes-image-builder
Builds a Raspberry Pi Ubuntu Server image for Toes hardware.
What it does
build.sh starts from the Ubuntu 24.04.4 preinstalled ARM64 Raspberry Pi image, mounts it locally, chroots into it, and installs/configures:
- Toes app and systemd service
- Matter service
- audio overlay, ALSA config, and audio init service
- Wi-Fi via
wpa_supplicantandsystemd-networkd - Bluetooth/Avahi support
- SSH password login
- USB serial gadget login
Requirements
Run on an Ubuntu/Debian host with sudo access. I've been using UTM with an ubuntu vm using the Apple Virtualization option. On non-ARM64 hosts, the build expects qemu-aarch64 binfmt support.
Bootstrap the host once:
scripts/bootstrap-repo.sh
Build
./build.sh
The script downloads the base image into cache/, writes build artifacts into build/, mounts the image under mnt/, and cleans up mounts on exit.
Final image path:
build/toes-ubuntu-base.img
Default image access
- Hostname:
toes - User:
toes - Password: set by
scripts/build-in-chroot.sh - SSH password auth: enabled
- USB serial gadget: enabled on
ttyGS0
Layout
build.sh- top-level build pipelinescripts/- host-side build phasesaudio/- audio overlay, ALSA config, and init servicematter/- Matter systemd servicecache/- downloaded Ubuntu image and checksumsbuild/- generated image filesmnt/- temporary mount points
Cleanup
If a build is interrupted and mounts are left behind, run:
scripts/cleanup.sh