The overlay was using console=ttyAMA0 (GPIO 14/15) but the RPi5 debug UART is ttyAMA10 (JST connector between HDMI ports on Pi5, test pads TP35/TP36 on CM5). Also adds earlycon for early boot output and disables GPIO UART on Pi5 in config.txt to avoid U-Boot compatibility issues. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .gitea/workflows | ||
| config | ||
| patches | ||
| scripts | ||
| .gitignore | ||
| cosign.pub | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| TECHNICAL.md | ||
Talos CM5 Builder
Custom Talos Linux images for Raspberry Pi 5 / 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.
Current versions
| Component | Version |
|---|---|
| Talos Linux | |
| RPi Kernel | |
| iscsi-tools | |
| util-linux-tools |
Image tags
Release images are published to docker.io/svrnty/talos-rpi5 with the format:
v<talos>-k<kernel>-<revision>
For example: v1.12.3-k6.12.47-2
| Segment | Meaning |
|---|---|
v1.12.3 |
Upstream Talos Linux version |
k6.12.47 |
RPi downstream kernel version |
2 |
Build revision (bumped for config/patch changes on the same upstream versions) |
Usage
Install from raw disk image
Download metal-arm64.raw.zst from the latest release and flash to eMMC:
zstd -d metal-arm64.raw.zst -o metal-arm64.raw
# Flash to eMMC/SD via your preferred tool (dd, balenaEtcher, etc.)
Upgrade an existing node
talosctl upgrade --image docker.io/svrnty/talos-rpi5:v1.12.3-k6.12.47-2
Note: In-place upgrades use GRUB with
--no-nvramto work around the RPi5/CM5SetVariableRTfirmware limitation. This patch is included but not yet tested in production — re-flashing the disk image is the proven fallback.
# Fallback: re-flash method
zstd -d metal-arm64.raw.zst -o metal-arm64.raw
# Flash to eMMC/SD via your preferred tool
What's included
- RPi downstream kernel with CM5/RP1 support (4K page size, aligned with upstream Talos)
- GRUB bootloader with
--no-nvramfor reliabletalosctl upgradeon RPi5/CM5 - Overclock: 2.6GHz (
arm_freq=2600,over_voltage_delta=50000,arm_boost=1) - Extensions:
iscsi-tools,util-linux-tools
Known issues
No serial console output after boot (Fixed)
The overlay was using console=ttyAMA0 (GPIO 14/15 UART) but the RPi5/CM5 debug UART is ttyAMA10. Fixed by switching to console=ttyAMA10,115200 and adding earlycon=pl011,0x107d001000,115200n8 for early boot output. Also added [pi5] enable_uart=0 to config.txt to match upstream and avoid U-Boot compatibility issues.
Upstream: talos-builder#4
Install disk config ignored on SBCs
Talos ignores the machine.install.disk config field on SBC platforms. You must flash the disk image directly to your target disk (eMMC, SD, NVMe). Booting from USB or NVMe also requires flashing directly to that disk — the image targets SD (mmcblk0) by default.
Upstream: talos-builder#22
Roadmap
This project targets production-ready Talos clusters on RPi5/CM5 hardware.
| Status | Milestone | Description |
|---|---|---|
| Untested | 4K page size | Aligned with upstream Talos kernel config. Reduces memory overhead and improves workload compatibility (Longhorn, jemalloc, F2FS, etc.). |
| Untested | Reliable in-place upgrades | Force GRUB bootloader with --no-nvram on arm64 to work around the SetVariableRT firmware limitation (talos-builder#21). |
| Untested | Serial console fix | Use correct debug UART (ttyAMA10) with earlycon for early boot output. |
| Pending | NVMe boot support | Produce images that target NVMe directly, or document a supported NVMe boot flow. |
Building
For local builds, CI/CD setup, runner configuration, and project structure, see TECHNICAL.md.
License
This project is licensed under the Mozilla Public License 2.0.
It builds upon the following MPL 2.0 licensed upstream projects:
- siderolabs/talos — Talos Linux OS
- siderolabs/pkgs — Talos package definitions
- talos-rpi5/sbc-raspberrypi5 — Raspberry Pi 5 SBC overlay
Our patches to these projects are in the patches/ directory and are distributed under the same MPL 2.0 terms.