fresnel: replace loose ~/rk3399-pinebook-pro.dts with proper persistence #3

Closed
opened 2026-05-09 08:56:17 +00:00 by marfrit · 1 comment
Owner

The canonical-reason-kernel-agent-exists case

On 2026-04-29 a routine linux-eos-arm 6.19.9-99 package upgrade silently overwrote the customized DTB on fresnel. Cluster1 (A72) max scaling_freq dropped from 2184 MHz (OC) back to 1800 MHz (stock). Source DTS files in ~/ (dated 2026-01-20) became intent-only; running state diverged silently. No detection mechanism existed.

This is exactly the failure mode kernel-agent's Bar 3 verification (Q06) was designed to catch.

Two fixes worth comparing

(a) pacman hook (cheap, robust)

# /etc/pacman.d/hooks/99-fresnel-dtb-restore.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = boot/dtbs/rockchip/rk3399-pinebook-pro.dtb

[Action]
Description = Restoring fresnel OC DTB after kernel update
When = PostTransaction
Exec = /usr/local/bin/restore-fresnel-dtb

Pros: minimal infra, runs locally on fresnel.
Cons: source DTS files still loose in ~/; no version control; pacman hook itself isn't tracked anywhere structured.

(b) Proper PKGBUILD (real fix)

linux-eos-arm-fresnel package: provides=linux-eos-arm, replaces=linux-eos-arm, ships compiled OC DTB, owns the file conflict cleanly. Built by kernel-agent for the fresnel target.
Pros: full agent-managed lifecycle, source tracked, reproducible, works with Bar 3 verification automatically.
Cons: more infra, deferred until kernel-agent's PKGBUILD pipeline exists.

Recommendation

(a) as immediate band-aid so fresnel doesn't silently revert again before kernel-agent ships. (b) as long-term solution once kernel-agent is operational.

Pre-work needed regardless

  • Move ~/rk3399-pinebook-pro.dts and ~/rk3399-base.dtsi into a tracked location (campaign repo marfrit/fresnel if it exists, or misc-kernel-patches landing pad)
  • Document the diff vs upstream rk3399-pinebook-pro.dts (only OPP tables differ)
  • Install dtc on fresnel (currently missing — broke decompile-and-diff workflow)
  • Re-apply OC immediately (currently lost) so user has working OC during the wait

References

  • Discovery in this design session: cluster0 1.704 GHz / cluster1 2.184 GHz in source vs 1.416 / 1.800 in running.
  • Memory: project_fresnel.md (currently claims 'custom OC kernel pkg' — wrong, no such package exists today; update after this is fixed)
## The canonical-reason-kernel-agent-exists case On 2026-04-29 a routine `linux-eos-arm 6.19.9-99` package upgrade silently overwrote the customized DTB on fresnel. Cluster1 (A72) max scaling_freq dropped from 2184 MHz (OC) back to 1800 MHz (stock). Source DTS files in `~/` (dated 2026-01-20) became intent-only; running state diverged silently. **No detection mechanism existed.** This is exactly the failure mode kernel-agent's Bar 3 verification (Q06) was designed to catch. ## Two fixes worth comparing ### (a) pacman hook (cheap, robust) ``` # /etc/pacman.d/hooks/99-fresnel-dtb-restore.hook [Trigger] Operation = Install Operation = Upgrade Type = Path Target = boot/dtbs/rockchip/rk3399-pinebook-pro.dtb [Action] Description = Restoring fresnel OC DTB after kernel update When = PostTransaction Exec = /usr/local/bin/restore-fresnel-dtb ``` Pros: minimal infra, runs locally on fresnel. Cons: source DTS files still loose in `~/`; no version control; pacman hook itself isn't tracked anywhere structured. ### (b) Proper PKGBUILD (real fix) `linux-eos-arm-fresnel` package: `provides=linux-eos-arm`, `replaces=linux-eos-arm`, ships compiled OC DTB, owns the file conflict cleanly. Built by kernel-agent for the fresnel target. Pros: full agent-managed lifecycle, source tracked, reproducible, works with Bar 3 verification automatically. Cons: more infra, deferred until kernel-agent's PKGBUILD pipeline exists. ## Recommendation **(a) as immediate band-aid** so fresnel doesn't silently revert again before kernel-agent ships. **(b) as long-term solution** once kernel-agent is operational. ## Pre-work needed regardless - [ ] Move `~/rk3399-pinebook-pro.dts` and `~/rk3399-base.dtsi` into a tracked location (campaign repo `marfrit/fresnel` if it exists, or misc-kernel-patches landing pad) - [ ] Document the diff vs upstream rk3399-pinebook-pro.dts (only OPP tables differ) - [ ] Install `dtc` on fresnel (currently missing — broke decompile-and-diff workflow) - [ ] Re-apply OC immediately (currently lost) so user has working OC during the wait ## References - Discovery in this design session: cluster0 1.704 GHz / cluster1 2.184 GHz in source vs 1.416 / 1.800 in running. - Memory: `project_fresnel.md` (currently claims 'custom OC kernel pkg' — wrong, no such package exists today; update after this is fixed)
marfrit added the area:fresnelmigration labels 2026-05-09 09:05:55 +00:00
marfrit added this to the rollout milestone 2026-05-09 09:05:55 +00:00
Collaborator

Closed via the "real fix" path.

linux-fresnel-fourier 7.0-1 (mmind v7.0 + 3 board/pinebook-pro DTS patches) built on boltzmann, signed + published to packages.reauktion.de, installed on fresnel alongside linux-eos-arm. extlinux entry "fresnel-fourier OC kernel (aarch64)" coexists with the EOS entries. Confirmed running 2026-05-09 with cluster0 1.704 GHz / cluster1 2.184 GHz active.

Patches: patches/board/pinebook-pro/000{1,2,3}-arm64-dts-rk3399-pinebook-pro-*.patch in this repo; fleet/fresnel.yaml manifest pins them. PKGBUILD: marfrit/marfrit-packages/arch/linux-fresnel-fourier/.

Pacman-hook band-aid no longer needed — we now own the DTB through the kernel package. Rebuild on next mmind release will replay the same patches via the same recipe.

Build was the bootstrap of the kernel-agent patch tree; runs going forward will use the (yet-to-be-implemented) ka-promote / ka-build / ka-install flow against this manifest.

**Closed via the "real fix" path.** `linux-fresnel-fourier 7.0-1` (mmind v7.0 + 3 board/pinebook-pro DTS patches) built on boltzmann, signed + published to `packages.reauktion.de`, installed on fresnel alongside `linux-eos-arm`. extlinux entry "fresnel-fourier OC kernel (aarch64)" coexists with the EOS entries. Confirmed running 2026-05-09 with cluster0 1.704 GHz / cluster1 2.184 GHz active. Patches: `patches/board/pinebook-pro/000{1,2,3}-arm64-dts-rk3399-pinebook-pro-*.patch` in this repo; `fleet/fresnel.yaml` manifest pins them. PKGBUILD: `marfrit/marfrit-packages/arch/linux-fresnel-fourier/`. Pacman-hook band-aid no longer needed — we now own the DTB through the kernel package. Rebuild on next mmind release will replay the same patches via the same recipe. Build was the bootstrap of the kernel-agent patch tree; runs going forward will use the (yet-to-be-implemented) `ka-promote` / `ka-build` / `ka-install` flow against this manifest.
Sign in to join this conversation.