18da673ccc
Three changes that together flip kernel-agent from spec'd to operational
in the manual-orchestrated form. Real ka-* CLI verbs come in later phases;
this commit gets a first iteration through the pipeline and proves the
flow at the artifact level.
1. Promote vb2_dma_resv RFC v2 series into the scope-tagged tree
Markus iterated v2 locally on boltzmann (kernel-agent-bootstrap dir,
reaching linux-fresnel-fourier pkgrel=14). v2 attaches the producer
fence at device_run in slept-OK context per Dufresne's v1 review on
linux-media. The three patches land under
patches/subsystem/media/videobuf2/dma-resv-release-fence/:
- 0004 (helper) — opt-in vb2 dma_resv producer-fence helper
- 0005 (driver opt-in) — hantro device_run attach
- 0006 (driver opt-in) — rockchip-rga device_run attach
Numbered 4/5/6 because the fresnel build PKGBUILD applies them after
the three 0001/0002/0003 PBP DTS patches; this directory's numbering
follows that apply-order, not the upstream lore series numbering.
README at the scope dir documents fleet eligibility, decision history,
and the v1 → v2 design pivot.
2. Update fleet/fresnel.yaml to include the v2 series
Pre-v2 manifest had a comment block 'Explicitly NOT included … vb2
dma-resv-release-fence … defer until v2 lands'. v2 has landed. Move
those three lines from 'excluded' to 'includes', annotate the decision
inline.
3. README updates
- Build hosts table: add ampere (CoolPi GenBook, RK3588 32GB) as
secondary aarch64 host. Same uarch as boltzmann, on-demand wake via
His. Gives the fleet a second native build target for when boltzmann
is busy (e.g. carrying a firefox-fourier 4h build).
- 'Out of scope this round' bootstrap section: mark vb2_dma_resv as
resolved 2026-05-15, keep panfrost IOMMU_CACHE deferred.
4. First ka-* CLI verb implemented: bin/ka-status
bash, ~120 lines. Reads fleet/*.yaml manifests, queries Gitea for
open [ka:*] issues, probes each reachable host for the installed
kernel-package version. Read-only — no sudo, no host writes. Picks
GITEA_TOKEN from /opt/herding/etc/claude-identities/<host>.creds or
env override.
Proves the agent's Gitea-API + manifest-parsing skeleton works
end-to-end without committing to a full ka-promote/build/install
implementation. Smoke-tested locally:
$ bin/ka-status
kernel-agent status (repo: marfrit/kernel-agent)
open [ka:*] issues total: 1
══ fresnel ══
manifest: arch=arm64 soc=rockchip/rk3399 board=pinebook-pro
package: linux-fresnel-fourier
installed: host-down # (fresnel is currently powered off)
open ka-issues: (none for this host)
No PKGBUILD update in this PR — that lives in marfrit-packages and
ships as a sibling PR (the actual linux-fresnel-fourier-7.0-14 publish).
68 lines
2.9 KiB
YAML
68 lines
2.9 KiB
YAML
# kernel-agent manifest for fresnel (Pinebook Pro / Rockchip RK3399)
|
|
#
|
|
# Status: bootstrap, manually-driven. ka-* CLI not yet implemented.
|
|
# This manifest is the input ka-promote / ka-build will consume once landed.
|
|
# Until then it documents the canonical patch set + baseline for the manual
|
|
# build that produces linux-fresnel-fourier.
|
|
|
|
host: fresnel
|
|
arch: arm64
|
|
soc: rockchip/rk3399
|
|
board: pinebook-pro
|
|
distro: archlinux-arm # EndeavourOS pacman base
|
|
|
|
baseline:
|
|
tree: mmind/linux-rockchip
|
|
url: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
|
|
ref: v7.0
|
|
upstream_compat: linux-7.0 # what the patches target
|
|
|
|
# Scope-tagged patch includes. Each entry resolves to
|
|
# patches/<scope>/.../<file>.patch in marfrit/kernel-agent.
|
|
includes:
|
|
- board/pinebook-pro/0001-arm64-dts-rk3399-pinebook-pro-add-OC-OPP-tables-1704-2184.patch
|
|
- board/pinebook-pro/0002-arm64-dts-rk3399-pinebook-pro-enable-hdmi-sound.patch
|
|
- board/pinebook-pro/0003-arm64-dts-rk3399-pinebook-pro-spi1-max-freq-10MHz.patch
|
|
# vb2_dma_resv RFC v2 series — added 2026-05-15 (Markus iterated v2 locally
|
|
# on boltzmann reaching pkgrel=14; pre-v2 decision was "defer". v2 attaches
|
|
# the fence at device_run in slept-OK context per Dufresne's v1 review).
|
|
- subsystem/media/videobuf2/dma-resv-release-fence/0004-media-videobuf2-add-opt-in-dma_resv-producer-fence-h.patch
|
|
- subsystem/media/videobuf2/dma-resv-release-fence/0005-media-hantro-attach-dma_resv-release-fence-at-device.patch
|
|
- subsystem/media/videobuf2/dma-resv-release-fence/0006-media-rockchip-rga-attach-dma_resv-release-fence-at-.patch
|
|
|
|
# Explicitly NOT included (tracked elsewhere, decision logged):
|
|
# - driver/panfrost/iommu-cache-rk3399/ (sibling kernel work; ship together
|
|
# once it lands. Targets the readback transitive-proof gap that vb2_dma_resv
|
|
# alone doesn't close.)
|
|
|
|
config:
|
|
source: /proc/config.gz on running fresnel kernel (linux-eos-arm 6.19.9-99)
|
|
strategy: snapshot, fold to baseline, accept-new with rationale on diff
|
|
|
|
package:
|
|
name: linux-fresnel-fourier
|
|
versioning: "${baseline_ref}.kafr${pkgrel}" # e.g. 7.0.kafr1
|
|
install_mode: alongside # coexists with linux-eos-arm in /boot
|
|
conflicts: []
|
|
provides: []
|
|
kernel_suffix: -fresnel-fourier # /boot/vmlinuz-7.0.0-fresnel-fourier
|
|
bootloader: extlinux # default Pinebook Pro layout
|
|
|
|
verify:
|
|
bar1_ssh_heartbeat: required
|
|
bar2_pkg_version: required
|
|
bar3_dtb_match:
|
|
- cpufreq cluster0 max == 1704000
|
|
- cpufreq cluster1 max == 2184000
|
|
bar4_per_patch_probe: opt-in
|
|
bar5_burn_in: skip # laptop, runtime not constant
|
|
|
|
build_host:
|
|
primary: boltzmann # kbuild-aarch64 surrogate today (native)
|
|
fallback: fermi # hertz LXD, ALARM aarch64
|
|
# No distcc for kernel-agent builds — native make on the assigned host only.
|
|
# Per feedback_kernel_agent_no_distcc.md (2026-05-09).
|
|
|
|
backup:
|
|
pre_install: hertz:/sparfuxdata/kernel-agent-backups/fresnel/${replaced_version}/
|