Commit Graph

22 Commits

Author SHA1 Message Date
9638fb44f1 Bump to Talos v1.13.2 / pkgs v1.13.0
- Makefile: TALOS_VERSION v1.12.4 -> v1.13.2, PKG_VERSION v1.12.0 -> v1.13.0
- siderolabs/talos 0001 (modules-arm64.txt): removed; hack/modules-arm64.txt
  is a CI assertion file with no build-time references. Will be regenerated
  from a real RPi 6.12.47 kernel build as a follow-up.
- siderolabs/talos 0005 (BOOT partition GRUB): rebased onto v1.13.2's
  Install/Upgrade refactor. installEFI struct field is gone upstream; ported
  the BOOT-partition probe + EFI-at-/boot fallback to work with the new
  efiFound local var and added a bootFromEFI struct field for runGrubInstall.
- siderolabs/pkgs 0001: rebased onto v1.13.0. Kernel config header bumped
  to 6.12.47. config-arm64 not fully regenerated for RPi 6.12.47 yet -- some
  upstream v1.13 6.18.x symbols (LIBIE_ADMINQ, IDPF, etc) remain in the file
  but the kernel's Kconfig silently drops unknown options during build.
2026-05-18 17:20:29 -04:00
118ef4dcc9 Add serial console support, remove wrong debug UART patch
Some checks failed
Check Upstream Updates / check-and-build (push) Failing after 6s
Enable GPIO UART0 on Pi5/CM5 via dtoverlay=uart0-pi5 in
configTxtAppend. Remove the old 0002 patch that targeted the
debug UART (ttyAMA10) — Compute Blade uses GPIO 14/15 (ttyAMA0).
Renumber overlay patches (old 0003 becomes 0002).

Update README with tested serial console docs: wiring diagram,
even parity config, 3.3V requirement, and read-only limitation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 14:04:39 -05:00
d4a55c670c Apply SBC overlay upgrade fix, add PCIe Gen 3 docs
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m11s
Check Upstream Updates / check-and-build (push) Successful in 5s
Apply overlay patch 0003 (EFI mount path detection for SBC layouts)
in the build so upgrades write firmware/config.txt to the correct
path. Update README with patch 0003, PCIe Gen 3 in features list,
and expanded PCIe Gen 3 instructions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:29:17 -05:00
5152b6cb44 Simplify config: use configTxtAppend, drop SBC overlay patch
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m41s
Check Upstream Updates / check-and-build (push) Successful in 5s
Config.txt is set correctly at flash time. Upgrades via talosctl
don't override firmware config (overlay writes to wrong path on
SBC layout, which is harmless). Users who need custom config.txt
set it once during initial flash.

- Use configTxtAppend with PCIe Gen 3 + overclock
- Put dtparam=pciex1_gen=3 in [pi5] section
- Remove patch 0003 (SBC overlay upgrade fix) — too risky,
  deleted GRUB's BOOTAA64.EFI in v8
- Remove full configTxt replacement mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 16:47:42 -05:00
338a2c0021 Fix SBC overlay upgrade: preserve GRUB, enable PCIe Gen 3
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m58s
The v8 overlay patch deleted /boot/EFI/ to clean up stale firmware,
but this also removed GRUB's BOOTAA64.EFI, bricking the node.

Fix: keep SBC layout detection (write to /boot/ not /boot/EFI/) but
remove the os.RemoveAll that destroyed GRUB. Stale firmware files in
/boot/EFI/ are harmless.

Re-enable PCIe Gen 3 (dtparam=pciex1_gen=3) and full configTxt mode,
now that the overlay installer correctly writes to the EFI partition
root on SBC layouts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 15:50:52 -05:00
b5201f7906 Revert PCIe Gen 3 config: restore safe defaults for public image
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m55s
Check Upstream Updates / check-and-build (push) Successful in 4s
The PCIe Gen 3 changes (dtparam=pciex1_gen=3, full configTxt
replacement, SBC overlay upgrade fix) caused boot failures during
talosctl upgrade on CM5 nodes. Revert to the pre-Gen3 state:
- configTxtAppend (overclock only) instead of full configTxt replacement
- Remove 0003 overlay patch application (kept in patches/ for future use)

PCIe Gen 3 support will be re-added after root cause analysis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 20:27:37 -05:00
3cfbe794f7 Fix PCIe Gen 3 on CM5: custom DT overlay for missing pciex1 alias
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m20s
The CM5 DTB (bcm2712-rpi-cm5-cm5io.dtb) lacks the pciex1 alias that
the Pi 5 DTB provides, making dtparam=pciex1_gen=3 silently fail.

Add a custom device tree overlay (pcie-gen3.dtbo) that targets
/axi/pcie@1000110000 directly to set max-link-speed = <3>. The overlay
is embedded in the SBC installer and written to /boot/EFI/overlays/
during install/upgrade.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 19:08:26 -05:00
a9cc56e315 Fix PCIe Gen 3: move dtparam into [pi5] section of config.txt
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m53s
The dtparam=pciex1_gen=3 was being appended after the [all] section,
but RPi firmware requires PCIe dtparams in the [pi5] section.
Switch from configTxtAppend to full configTxt replacement to control
section ordering. Also add dtparam=pciex1 to explicitly enable the
external PCIe link.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 18:45:05 -05:00
Mathias Beaulieu-Duncan
6c75585c0a Bump upstream: v1.12.4-k6.12.47-1
Some checks failed
Build Talos CM5 Image / build (push) Failing after 1s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:53:12 -05:00
Mathias Beaulieu-Duncan
58b9ccb56c Add supply chain attestation to installer image via crane + buildx
Some checks failed
Build Talos CM5 Image / build (push) Successful in 5m19s
Check Upstream Updates / check-and-build (push) Failing after 13s
Push the full installer tar with crane first (preserving all layers),
then re-wrap with docker buildx to add provenance and SBOM attestation
for Docker Scout compliance. Buildx can pull the image from the registry
since crane already pushed it, avoiding the docker-container driver
limitation with locally loaded images.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:57:54 -05:00
Mathias Beaulieu-Duncan
784fb4d5f6 Fix installer image missing kernel and overlay layers
All checks were successful
Build Talos CM5 Image / build (push) Successful in 4m5s
The docker buildx build wrapper with docker-container driver cannot
access locally loaded images, causing it to only capture the first
layer (22MB base) and drop the kernel (~98MB) and overlay (~3MB).

Switch back to crane push which pushes the tar as-is, preserving
all 3 layers. Attestation args remain on actual build steps where
buildx works correctly.

Fixes broken tags: v1.12.3-k6.12.47-3, v1.12.3-k6.12.47-4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:46:10 -05:00
Mathias Beaulieu-Duncan
970d9685f1 Fix serial console for RPi5/CM5 debug UART (ttyAMA10)
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>
2026-02-13 19:47:18 -05:00
Mathias Beaulieu-Duncan
8178ba195e Add known issues, roadmap, and conditional Go toolchain patch
- Document SetVariableRT upgrade failure, 16K page size implications,
  serial console issue, and SBC install disk behavior
- Add production roadmap (4K pages, GRUB boot, serial fix, NVMe)
- Make overlay Go patch conditional: apply only on Go 1.24.x,
  skip on 1.25+ where CVEs are already fixed upstream

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:05:51 -05:00
Mathias Beaulieu-Duncan
6f24c8ef46 Replace cosign with buildx attestations for Docker Scout compliance
All checks were successful
Build Talos CM5 Image / build (push) Successful in 2m49s
Docker Scout requires buildx-style provenance+SBOM, not cosign
attestations. Replace crane push with docker load + buildx build
(--provenance=mode=max --sbom=true) for the installer image. Use
buildx imagetools create for the release tag to preserve attestations.
Remove cosign/syft from CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:05:20 -05:00
Mathias Beaulieu-Duncan
ba3c42f561 Add SBOM attestations to installer/release images, remove Scout
All checks were successful
Build Talos CM5 Image / build (push) Successful in 7m0s
Attach cosign+syft SBOM attestations to crane-pushed installer and
release images to satisfy Docker Scout supply chain policy. Replace
docker tag/push with crane copy for the release target. Remove the
Scout CVE scan target and clean up release notes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:48:56 -05:00
Mathias Beaulieu-Duncan
44aa3793ee Add LICENSE, update README, upgrade provenance to max-mode
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m29s
- Add MPL 2.0 LICENSE file for compliance
- Add license section and upstream attribution to README
- Upgrade provenance attestation from mode=min to mode=max

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:57:11 -05:00
Mathias Beaulieu-Duncan
5abca73056 Fix 21 Go stdlib CVEs and enable supply chain attestations
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m26s
- Patch sbc-raspberrypi5 overlay to use Go 1.24.13 (fixes 1C/7H/12M/1L CVEs)
- Add ATTESTATION_ARGS (--provenance=true --sbom=true) to all buildx targets
- Override upstream --provenance=false via TARGET_ARGS (last flag wins)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:36:13 -05:00
Mathias Beaulieu-Duncan
0d3941eb91 Add daily auto-update workflow and fix overlay dirty tag
All checks were successful
Build Talos CM5 Image / build (push) Successful in 3m6s
- Rewrite check-upstream.sh to parse RPi kernel version from patch file
- Add auto-update.sh for automated version bumps with patch smoke test
- Rewrite check-updates.yaml as daily auto-build with issue fallback
- Update build.yaml release body to show Talos + kernel versions from tag
- Fix overlay dirty tag: remove --dirty from SBCOVERLAY_TAG git describe
  (the sed rewrite of pkg.yaml is intentional, not an accidental change)

Tag strategy: v{TALOS}-k{KERNEL}-{BUILD} (e.g. v1.12.3-k6.12.47-1)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:05:46 -05:00
Mathias Beaulieu-Duncan
e98c573bae Add Docker Scout CVE scanning and switch CI to gmake
- Add `scout` Makefile target that scans all 5 pushed images with
  `docker scout quickview` and writes a summary to _out/scout-report.md
- Switch all CI workflow steps from `make` to `gmake` for GNU Make 4.x
- Add brew dependency step for make, gnu-sed, and crane
- Include CVE summary in Gitea release notes via jq JSON escaping
- Update `clean` target to remove _out/ directory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:01:13 -05:00
1a3e551a33 Bump to Talos v1.12.3 / pkgs v1.12.0
Patches may need rebasing — will verify on first build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 18:17:19 -05:00
19db31b717 Rename Docker Hub image from installer to talos-rpi5
The image supports both RPi 5 and CM5 (same SoC/RP1), so talos-rpi5
is a better public-facing name. The internal build still produces
an installer image which gets retagged to svrnty/talos-rpi5:<tag>
in the release target.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 18:01:00 -05:00
e31cd9add8 Initial commit: Talos CM5 builder with Gitea CI/CD
Custom Talos Linux image builder for Raspberry Pi CM5 on Compute Blade
hardware. Uses RPi downstream kernel (via talos-rpi5/talos-builder patches)
since the mainline kernel lacks CM5 device trees and RP1 driver support.

- Makefile: build orchestration targeting docker.io/svrnty registry
- Build pipeline: tag-triggered Gitea Actions workflow
- Update checker: weekly cron for Talos + RPi kernel releases
- CM5 overclock config: 2.6GHz (arm_freq=2600)
- Extensions: iscsi-tools, util-linux-tools

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:58:17 -05:00