|
Some checks failed
Build Talos CM5 Image / build (push) Failing after 1s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .gitea/workflows | ||
| config | ||
| patches/siderolabs | ||
| scripts | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
Talos CM5 Builder
Custom Talos Linux images for Raspberry Pi CM5 on Compute Blade hardware.
The official Talos Image Factory does not support CM5 — the mainline kernel lacks CM5 device trees and RP1 driver support. This builder uses the RPi downstream kernel (via talos-rpi5/talos-builder patches) to produce working CM5 images with our extensions and overclock config.
What it builds
- Installer image →
docker.io/svrnty/talos-rpi5:<tag>(fortalosctl upgrade) - Raw disk image → Gitea release
metal-arm64.raw.zst(for eMMC flashing)
Baked-in config:
- RPi downstream kernel with CM5/RP1 support
- Overclock: 2.6GHz (
arm_freq=2600,over_voltage_delta=50000,arm_boost=1) - Extensions:
iscsi-tools,util-linux-tools
Usage
Building locally (ARM64 host required)
make checkouts patches # Clone and patch sources
make kernel # Build RPi kernel
make overlay # Build SBC overlay
make installer # Build installer + disk image
CI/CD (Gitea Actions)
Push a version tag to trigger an automated build:
git tag v1.11.5-1
git push origin v1.11.5-1
The pipeline runs on the ARM64 self-hosted runner and:
- Builds the kernel, overlay, and installer
- Pushes the installer image to Docker Hub
- Creates a Gitea release with the raw disk image
Upstream update checks
A weekly scheduled workflow checks for new Talos and RPi kernel releases and creates Gitea issues when updates are available.
CI Secrets
| Secret | Description |
|---|---|
REGISTRY_USERNAME |
Docker Hub username (org-level) |
REGISTRY_PASSWORD |
Docker Hub access token (org-level) |
Runner Setup (Apple Silicon Mac Mini)
The build runner needs:
- Docker Desktop with Buildx (arm64 native)
- Gitea
act_runnerregistered with labels:self-hosted,macOS,arm64 - Sufficient disk space for kernel builds (~20GB)
# Install act_runner via Homebrew
brew install act_runner
# Or download directly
curl -sL https://gitea.com/gitea/act_runner/releases/latest/download/act_runner-darwin-arm64 -o act_runner
chmod +x act_runner
# Register
./act_runner register \
--instance https://git.openharbor.io \
--token <runner-token> \
--name mac-mini \
--labels self-hosted,macOS,arm64
# Run as service
./act_runner daemon
Structure
.gitea/workflows/
build.yaml # Build pipeline (tag push trigger)
check-updates.yaml # Upstream update checker (weekly cron)
Makefile # Build orchestration
config/
config.txt.append # CM5 overclock settings
extensions.yaml # System extensions list
scripts/
check-upstream.sh # Version comparison script
patches/
siderolabs/
pkgs/0001-*.patch # RPi kernel patch
talos/0001-*.patch # Module list patch