diff --git a/fleet/ohm.yaml b/fleet/ohm.yaml new file mode 100644 index 0000000..efd2003 --- /dev/null +++ b/fleet/ohm.yaml @@ -0,0 +1,124 @@ +# kernel-agent manifest for ohm (PineTab2 / Rockchip RK3566 + BES2600 SDIO WiFi/BT) +# +# Status: scaffolding from 2026-05-16. Patches/scopes are mirrored; +# the build pipeline (cumulative-patch generation, makepkg invocation, +# sign+publish) still relies on the hand-managed flow in +# boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/. +# Once ka-promote / ka-build land, switch this manifest to authoritative +# and retire the boltzmann-side checkouts (canonical + the orphan at +# ~/src/besser/danctnix-besser-pkgbuild/ that the fourier-campaign +# sibling agent accidentally created). +# +# See kernel-agent issue #5 for the full migration plan. + +host: ohm +arch: arm64 +soc: rockchip/rk3566 +board: pinetab2 +distro: archlinux-arm # DanctNIX PineTab2 variant on Arch Linux ARM aarch64 + +baseline: + tree: DanctNIX/linux-pinetab2 + url: https://codeberg.org/DanctNIX/linux-pinetab2 + ref: v7.0-danctnix1 # _srcname=linux-pinetab2 _srctag=v${pkgver%.*}-${pkgver##*.} + upstream_compat: linux-7.0 # DanctNIX rebases off mainline + per-tablet delta + +# Scope-tagged patch includes. Resolves to patches//.patch. +# +# Series-ordering note: the current cumulative-patch generation order on +# boltzmann is A, B, C v3, F, G, D, E, C2, c5.x, c6.x, c7, H — explicitly +# NOT alphabetical. ka-promote MUST honor an apply_order field when +# concatenating series into the build's per-job cumulative patch. The +# legend mapping series-letter → series-name lives in the current +# danctnix-besser-pkgbuild changelog on boltzmann; promote to this +# manifest once auto-generation is wired. +# +# DanctNIX siblings (-danctnix suffix) are selected here because ohm +# runs on the DanctNIX kernel base; the non-suffixed variants exist for +# vanilla mainline consumers that ohm doesn't currently have. +includes: + # Default-on series (uncontroversial fixes that ohm already runs): + - driver/bes2600/staging-prep-series-danctnix/ + - driver/bes2600/pm-state-resync-danctnix/ + - driver/bes2600/pm-timeout-silence-danctnix/ + - driver/bes2600/pm-wake-consume-state-danctnix/ + - driver/bes2600/pm-gate-on-handshake/ + - driver/bes2600/pm-detect-firmware-unsupported-danctnix/ + - driver/bes2600/scan-defer-backoff-tune-danctnix/ + - driver/bes2600/scan-defer-on-reject-danctnix/ + - driver/bes2600/lmac-recover-via-mmc-hw-reset-danctnix/ + - driver/bes2600/tx-sdio-dma-oob-danctnix/ + - driver/bes2600/factory-series/ + - driver/bes2600/factory-thread-dev/ + - driver/bes2600/factory-drop-kernel-write-danctnix/ + - driver/bes2600/drop-dpd-file-paths-danctnix/ + - driver/bes2600/drop-orphan-file-io-danctnix/ + - driver/bes2600/remove-chardev-user-interface/ + - driver/bes2600/enable-testmode/ + +# Explicitly NOT included (decision logged): +# - debian-copyright-fsf-address: Debian packaging metadata, not kernel +# - bare (non-danctnix) variants of the above: ohm runs DanctNIX base + +config: + source: hand-managed config file in boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/config + strategy: snapshot, fold to baseline, accept-new with rationale on diff + TODO: migrate config into kernel-agent flow once kconfig-by-manifest lands + +package: + name: linux-pinetab2-danctnix-besser + versioning: "${baseline_ref}.kafr${pkgrel}" # e.g. v7.0-danctnix1.kafr1 + install_mode: alongside # coexists with linux-pinetab2 if user wants A/B + conflicts: [] + provides: [linux-pinetab2] # drop-in replacement; pacman can satisfy linux-pinetab2 deps + kernel_suffix: -danctnix-besser # vmlinuz-linux-pinetab2-danctnix-besser + bootloader: extlinux # PineTab2 standard + + # PKGBUILD currently at: + # boltzmann:~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel/PKGBUILD + # TARGET location (per issue #5): + # marfrit/marfrit-packages/arch/linux-pinetab2-danctnix-besser/PKGBUILD + # PENDING the kernel-agent template-rendering pipeline (b2sums regen, + # pkgrel bump, cumulative-patch generation from manifest scope). + template_at: TBD-marfrit-packages-arch-linux-pinetab2-danctnix-besser + replaces_dkms: bes2600-dkms # once cumulative series in this manifest is enough + +verify: + bar1_ssh_heartbeat: required + bar2_pkg_version: required + bar3_module_loaded: + - bes2600 module loads + - wlan0 + bt0 (BT/UART) present after boot + - sdio_force_uhs=0 not needed (DMA-OOB-read fix in tx-sdio-dma-oob series) + bar4_per_patch_probe: opt-in + bar5_burn_in: opt-in + - WiFi: 24h iperf3 to LAN host without rxhang + - PM: lid-close → wake cycles × 100 without bes2600 confirm-loss + +build_host: + primary: boltzmann # native aarch64 with ohm's identical .config + fallback: fermi # hertz LXD, ALARM aarch64 + # No distcc per feedback_kernel_agent_no_distcc.md. + +backup: + pre_install: hertz:/sparfuxdata/kernel-agent-backups/ohm/${replaced_version}/ + +# ───────────────────────────────────────────────────────────────────── +# OPEN — kernel-agent CLI work blocking full migration: +# +# 1. ka-promote: read includes[] above + apply_order field (to be added), +# concatenate referenced series into a single .patch in the build dir. +# Validate it applies cleanly on baseline.ref. Compute b2sum for +# template substitution. +# +# 2. PKGBUILD template renderer: stamp pkgrel, ${_cumulative_b2sum}, +# ${_srctag} from manifest into a PKGBUILD draft at the +# template_at location. Sign + publish to packages.reauktion.de. +# +# 3. Orphan retirement: surface ~/src/besser/danctnix-besser-pkgbuild/ +# (NO remote, ~/src/besser/marfrit-besser/... is canonical) to +# Markus / fourier campaign for working-state migration BEFORE +# deleting. See besser issue #17 for the regression that the +# orphan caused. After the kernel-agent flow is authoritative, +# delete both checkouts. +# ─────────────────────────────────────────────────────────────────────