Go to file
2026-05-24 20:21:10 +00:00
audio Update files 2026-05-18 06:46:40 +00:00
matter Update files 2026-05-18 06:46:40 +00:00
scripts use nose.space urls 2026-05-24 20:15:02 +00:00
.gitignore first 2026-05-13 20:23:09 +00:00
build.sh Update files 2026-05-18 06:46:40 +00:00
README.md add a readme 2026-05-24 20:21:10 +00:00

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_supplicant and systemd-networkd
  • Bluetooth/Avahi support
  • SSH password login
  • USB serial gadget login

Requirements

Run on an Ubuntu/Debian host with sudo access. 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 pipeline
  • scripts/ - host-side build phases
  • audio/ - audio overlay, ALSA config, and init service
  • matter/ - Matter systemd service
  • cache/ - downloaded Ubuntu image and checksums
  • build/ - generated image files
  • mnt/ - temporary mount points

Cleanup

If a build is interrupted and mounts are left behind, run:

scripts/cleanup.sh