README: add bootstrap reference build (2026-05-09 fresnel); drop distcc from build hosts; close issue-3 followup
This commit is contained in:
@@ -167,11 +167,12 @@ Host Where Role Wake? Notes
|
||||
boltzmann Rock 5 ITX+ aarch64 primary always container kbuild-aarch64
|
||||
fermi hertz LXD aarch64 fallback always matches kbuild-aarch64 profile
|
||||
kbuild-x86 data CT x86_64 on-demand wakes via His; idle 30 min → release
|
||||
tesla hertz LXD distcc helper always manual hosts list
|
||||
dcc1 dcw3 Pi 4 distcc helper always zeroconf (bridge-detach risk)
|
||||
dcc2 dcw2 Pi 4 distcc helper always zeroconf
|
||||
```
|
||||
|
||||
Native make on the assigned build host. **No distcc** for kernel-agent
|
||||
builds (`feedback_kernel_agent_no_distcc.md`, locked 2026-05-09). ccache
|
||||
stays per-host. distcc remains in scope for userspace package builds.
|
||||
|
||||
|
||||
## Files / paths
|
||||
|
||||
@@ -221,19 +222,92 @@ via `ka-snooze <issue-id> [--for <duration>]`.
|
||||
- Refuse promote of patches lacking scope tag.
|
||||
|
||||
|
||||
## Bootstrap reference build (2026-05-09 — fresnel)
|
||||
|
||||
First end-to-end run, before any `ka-*` CLI exists. Documented here as the
|
||||
canonical worked example so future ka-* implementations have a concrete
|
||||
substrate to replay. Issue #3 (fresnel DTS persistence) closed by this
|
||||
build.
|
||||
|
||||
### Inputs
|
||||
|
||||
- **Baseline:** mmind/linux-rockchip @ `v7.0` (Heiko Stübner / Collabora,
|
||||
via kernel.org).
|
||||
- **Patches** (scope `board/pinebook-pro`):
|
||||
- `0001-arm64-dts-rk3399-pinebook-pro-add-OC-OPP-tables-1704-2184.patch`
|
||||
- `0002-arm64-dts-rk3399-pinebook-pro-enable-hdmi-sound.patch`
|
||||
- `0003-arm64-dts-rk3399-pinebook-pro-spi1-max-freq-10MHz.patch`
|
||||
- **Manifest:** `fleet/fresnel.yaml` (tree=mmind v7.0, 3 patches above,
|
||||
alongside-install vs `linux-eos-arm`).
|
||||
- **.config source:** snapshot from fresnel `/usr/lib/modules/6.19.10-1-eos-arm/build/.config`,
|
||||
recovered from the data backintime backup (May 7 snapshot) since the
|
||||
laptop was off when the build started; `make olddefconfig` to fold in
|
||||
v7.0 new symbols (one harmless `BOOTPARAM_SOFTLOCKUP_PANIC` warning,
|
||||
ignored).
|
||||
|
||||
### Manual substitute for each ka-* verb
|
||||
|
||||
| Designed verb | What we did manually |
|
||||
|---|---|
|
||||
| `ka-promote fresnel-fourier <patches> --to board/pinebook-pro` | Authored 3 patches with proper headers/scope tags, pushed to `marfrit/kernel-agent/patches/board/pinebook-pro/` via Gitea contents API as `claude-noether`. |
|
||||
| `ka-build fresnel` | On boltzmann: cloned linux v7.0 from kernel.org, ran `makepkg -s --skipchecksums --skippgpcheck` against `marfrit-packages/arch/linux-fresnel-fourier/PKGBUILD`. Native aarch64 (boltzmann is RK3588). One headers-pkg bug discovered (`ln -sr` on missing parent dir) and fixed mid-flight. Repackaged. |
|
||||
| `ka-sign + push` | scp pkgs hertz → `sudo /opt/herding/bin/marfrit-publish-arch aarch64 <pkg>` per pkg. Script signs with key `92D5E96D8F63C75E4116AA1FF5C8C4603D0D250C`, runs repo-add, rsyncs to nc. |
|
||||
| `ka-install fresnel` (consent-via-action) | `sudo pacman -U /tmp/<pkg>` over LAN scp (HTTPS to nc was throttled by fresnel's wifi). pacman post-transaction hook updated extlinux. mkinitcpio run manually because the standard hook trigger watches `vmlinuz` not `Image`. |
|
||||
| Bar 1..3 verification | SSH heartbeat OK, `pacman -Q linux-fresnel-fourier` = `7.0-1`, post-reboot cluster0 1.704 GHz / cluster1 2.184 GHz confirmed. |
|
||||
|
||||
### Files / locations involved
|
||||
|
||||
- `git.reauktion.de/marfrit/kernel-agent/patches/board/pinebook-pro/` — patches
|
||||
- `git.reauktion.de/marfrit/kernel-agent/fleet/fresnel.yaml` — manifest
|
||||
- `git.reauktion.de/marfrit/marfrit-packages/arch/linux-fresnel-fourier/` — PKGBUILD + 3 patches + config + extlinux hook+script + mkinitcpio preset
|
||||
- `boltzmann:~/src/kernel-agent-bootstrap/` — local build root (baseline clone, patches, build dir, artifacts)
|
||||
- `hertz:/tmp/ka-publish/` — staging for sign+push (transient)
|
||||
- `hertz:/sparfuxdata/kernel-agent-backups/fresnel/6.19.9-99-eos-arm/fresnel-boot-pre-install.tgz` — pre-install /boot snapshot (71MB, 7-day retention per design)
|
||||
- `https://packages.reauktion.de/arch/aarch64/linux-fresnel-fourier-7.0-1-aarch64.pkg.tar.zst` — published artifact
|
||||
- `fresnel:/boot/{Image,initramfs,dtbs}-fresnel-fourier{,/...}` — installed artifacts
|
||||
- `fresnel:/boot/extlinux/extlinux.conf` — managed block tagged `>>> linux-fresnel-fourier (managed) >>>` … `<<<`
|
||||
|
||||
### What was learned that ka-* should bake in
|
||||
|
||||
- mkinitcpio's stock hook watches `vmlinuz`, not `Image`. ARM kernel installs
|
||||
must explicitly run `mkinitcpio -p <preset>` from the install hook, OR
|
||||
ship a custom alpm hook with `Target = boot/Image-<suffix>`.
|
||||
- Headers PKGBUILD: `ln -sr "${_builddir}" "${pkgdir}/usr/src/${pkgbase}"`
|
||||
needs a preceding `install -d "${pkgdir}/usr/src"`. Cargo-cult from
|
||||
arch's `linux` package without checking that pacman pre-creates `/usr/src`
|
||||
for kernels.
|
||||
- HTTPS download from nc.reauktion.de can stall on slow wifi (fresnel @ 181 ms
|
||||
ping). Same-LAN scp from hertz (which already has the published pkgs in
|
||||
`/tmp/ka-publish/`) is the workaround. ka-install should detect and prefer
|
||||
LAN-fanout.
|
||||
- Manifest must carry the kernel suffix (`-fresnel-fourier`) explicitly so
|
||||
alongside-install paths (`/boot/Image-<suffix>`, `/boot/dtbs-<suffix>/`,
|
||||
`/boot/initramfs-<suffix>.img`) don't collide with the EOS-stock paths.
|
||||
- Backup target needs `install -d -o $USER -g $USER` first time per host —
|
||||
`/sparfuxdata/kernel-agent-backups/<host>/<version>/` is created lazily.
|
||||
|
||||
### Out of scope this round (explicit defer)
|
||||
|
||||
- **vb2 dma_resv RFC v2** + panfrost IOMMU_CACHE for RK3399 — would have closed
|
||||
the fresnel-fourier campaign criterion-4 readback transitive-proof gap, but
|
||||
v2 isn't implemented (RFC v1 rejected upstream). Deferred to a follow-up
|
||||
build once v2 lands. See `marfrit/dmabuf-modifier-triage#3`.
|
||||
- **Replace** `linux-eos-arm` rather than coexist alongside — preserves easy
|
||||
rollback at u-boot. Can flip to `provides=(linux-eos-arm) conflicts=(...)`
|
||||
later once burn-in proves the OC kernel reliable.
|
||||
|
||||
|
||||
## Open follow-ups (post-rollout)
|
||||
|
||||
- Migrate `github.com/marfrit/misc_patches/genbook/kernel/` (9 patches against
|
||||
linux-6.19.9) into proper Coulomb/RockHard campaign repo with scope tags
|
||||
applied. Some patches will need splitting (e.g., 0010 suspend/resume is
|
||||
multi-scope and should split into soc:rk3588 + board:coolpi-cm5-genbook
|
||||
pieces).
|
||||
pieces). — Issue #1.
|
||||
- Migrate `besser/patches/` (~30 BES2600 staging series) into the scope-tagged
|
||||
tree at `driver/bes2600/` with promote eligibility per series.
|
||||
- fresnel: replace the loose `~/rk3399-pinebook-pro.dts` workflow with either
|
||||
a pacman hook (cheap, restores OC after each kernel update) or a proper
|
||||
`linux-eos-arm-fresnel` PKGBUILD that owns the DTB conflict (real fix).
|
||||
The April 2026 silent-revert is the canonical reason kernel-agent exists.
|
||||
tree at `driver/bes2600/` with promote eligibility per series. — Issue #2.
|
||||
- Decide whether boltzmann (BredOS-stock today) becomes a Neutron-managed
|
||||
custom kernel target or stays stock. Decision deferred per memory
|
||||
`project_neutron.md`.
|
||||
`project_neutron.md`. — Issue #4.
|
||||
- ~~fresnel DTS persistence~~ — **closed** by the bootstrap reference build
|
||||
above. Issue #3 closed.
|
||||
|
||||
Reference in New Issue
Block a user