From a1f18a5256606796a6e9ee1d1035334ab8eb526c Mon Sep 17 00:00:00 2001 From: "Claude (noether)" Date: Mon, 18 May 2026 16:56:52 +0200 Subject: [PATCH] README + danctnix-besser-pkgbuild/README: point at kernel-agent pkgrel=4 flow - Top-level README: add kernel-agent + marfrit-packages repos to the Repos table; mark this hand-managed pkgbuild dir as historical. - danctnix-besser-pkgbuild/README: add a "MOVED" banner pointing at marfrit/marfrit-packages/arch/linux-pinetab2-danctnix-besser/ as the canonical PKGBUILD home from pkgrel=4 onwards. Refresh the TL;DR table (pkgrel=4, new cumulative b2sum bd42cd39..., new "Patch manifest" row). Add a pkgrel history table. Update Building section with the kernel-agent flow (and keep the hand-managed flow as DEPRECATED for reference). Update Installing + Verifying examples to pkgrel=4. Update Maintenance plan. Refs: kernel-agent#28, marfrit-packages#28, kernel-agent#29 (per-series reconstruction follow-up). --- README.md | 3 ++ danctnix-besser-pkgbuild/README.md | 71 +++++++++++++++++++++++++----- 2 files changed, 63 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 044ba9e9b..8ce950ab8 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,9 @@ CW1200-ancestry markers in current source: same author Dmitry Tarnyagin, |------|------| | **This umbrella** | `git.reauktion.de/marfrit/besser` — patches/, scripts/, fw-analysis/, notes/ | | **Mobian DKMS fork** (PR target) | `git.reauktion.de/marfrit/bes2600-dkms` — branches per patch; upstream = `salsa.debian.org/Mobian-team/devices/bes2600-dkms` | +| **DanctNIX kernel package** (ohm) | `git.reauktion.de/marfrit/marfrit-packages/arch/linux-pinetab2-danctnix-besser/` — kernel-agent-driven PKGBUILD, pkgrel=4+ | +| **kernel-agent manifest + patches** | `git.reauktion.de/marfrit/kernel-agent` — `fleet/ohm.yaml` lists the per-patch series, `bin/ka-promote ohm` emits the cumulative the PKGBUILD consumes | +| **Historical hand-managed PKGBUILD** | `git.reauktion.de/marfrit/besser/danctnix-besser-pkgbuild/` — pkgrel≤3, deprecated; see directory README | ## Patch series diff --git a/danctnix-besser-pkgbuild/README.md b/danctnix-besser-pkgbuild/README.md index dbf9aa917..645a98431 100644 --- a/danctnix-besser-pkgbuild/README.md +++ b/danctnix-besser-pkgbuild/README.md @@ -6,20 +6,45 @@ Drop-in replacement for `linux-pinetab2`. Same kernel version, same config (one --- +> ## ⚠️ PKGBUILD MOVED +> +> Starting with **pkgrel=4** (2026-05-18), the canonical PKGBUILD lives at +> **`git.reauktion.de/marfrit/marfrit-packages/arch/linux-pinetab2-danctnix-besser/`** +> and is driven by [kernel-agent](https://git.reauktion.de/marfrit/kernel-agent)'s +> `ka-promote ohm` cumulative-patch flow against `fleet/ohm.yaml`. +> +> This directory remains for historical reference (pkgrel=1..3 hand-managed +> flow + per-patch design notes that haven't been ported to the new home yet). +> +> **Use the new location** for builds going forward. See +> [kernel-agent PR #28](https://git.reauktion.de/marfrit/kernel-agent/pulls/28) +> and [marfrit-packages PR #28](https://git.reauktion.de/marfrit/marfrit-packages/pulls/28) +> for the migration. + +--- + ## TL;DR | | | |---|---| -| **Current package** | `linux-pinetab2-danctnix-besser-7.0.danctnix1-3-aarch64.pkg.tar.zst` | -| **Module srcversion** | `BEB625FA7443171EA8D55F7` (`bes2600.ko`) | +| **Current package** | `linux-pinetab2-danctnix-besser-7.0.danctnix1-4-aarch64.pkg.tar.zst` (built via [kernel-agent](https://git.reauktion.de/marfrit/kernel-agent)) | +| **PKGBUILD home** | `git.reauktion.de/marfrit/marfrit-packages/arch/linux-pinetab2-danctnix-besser/` *(new — pkgrel=4 onwards)* | +| **Patch manifest** | `git.reauktion.de/marfrit/kernel-agent` `fleet/ohm.yaml` | +| **Cumulative b2sum** | `bd42cd39106298879eeb…` (pkgrel=4, `ka-promote ohm` output, 157 458 B) | +| **Module srcversion** | `BEB625FA7443171EA8D55F7` (`bes2600.ko`) — pkgrel=4 byte-identical to pkgrel=3 source | | **Kernel base** | DanctNIX [`linux-pinetab2`](https://codeberg.org/DanctNIX/linux-pinetab2) tag `v7.0-danctnix1` | | **What it fixes vs upstream** | +73 % TX throughput, the `wsm_generic_confirm 0x0007` dmesg storm (besser#1 closed), the firmware-PSM-not-honored hang, the multi-function SDIO LMAC-wedge recovery | | **What it adds today vs pkgrel=1** | **Patch I**: 5 GHz scan filter — `iw scan freq ` works, multi-channel per-band sweep refused at driver boundary to dodge firmware reject cascade. NM `band=a` profiles associate to 5 GHz cleanly. **Sustained 11.32 MB/s** download (2.54 GB factory image) on `newton` 5 GHz ch.48 — **3.6× the 2.4 GHz baseline of 3.12 MB/s** on the same source. | -| **Source-of-truth** | `git.reauktion.de/marfrit/bes2600-dkms` — branch `cleanups` for c-stack+A+B, branch `bes2600/scan-filter-5ghz` for Patch I | -| **This PKGBUILD** | `git.reauktion.de/marfrit/besser` `claude-noether-14` `danctnix-besser-pkgbuild/kernel/` | -| **Kernel-agent mirror** | `git.reauktion.de/marfrit/kernel-agent` `fleet/ohm.yaml` (manifest) + `patches/driver/bes2600/scan-filter-5ghz-danctnix/` | +| **Source-of-truth (driver)** | `git.reauktion.de/marfrit/bes2600-dkms` — branch `cleanups` for c-stack+A+B, branch `bes2600/scan-filter-5ghz` for Patch I | | **Caveat** | `CONFIG_SHADOW_CALL_STACK=n` (security-hardening regression, workaround for a GCC 15.2.1 + arm_neon.h pragma issue — tracked in [besser#20](https://git.reauktion.de/marfrit/besser/issues/20), restore to `=y` when GCC is fixed) | +## pkgrel history + +| pkgrel | Date | Flow | Notes | +|---|---|---|---| +| 1–3 | 2026-05-08…05-18 | hand-managed, this dir | c-stack + Patches A/B/C/D/E/F/G/H + Patch I + SCS Makefile workaround | +| **4** | **2026-05-18** | **kernel-agent (`ka-promote ohm`)** | byte-identical source to pkgrel=3 (verified by 148 149 + 7 735 + 1 574 = 157 458 cumulative arithmetic); fixes pkgrel=3 PKGBUILD's duplicated `0003-...patch` source-array bug | + --- ## What's in the patchset @@ -49,13 +74,35 @@ Individual commits with full rationale + Phase-7 verification logs live on the * - **Phase 7 (Patch C v3 + F + G + D + E + C2 + H, Mobian-flavor):** N=3 stress @ 4 MB/s sender on RK3566/PineTab2 — Patch B baseline 1.36 MB/s → +73 % sustained 2.28 MB/s. Race-fix verified under stress (no `wsm_release_tx_buffer` WARN storm under load). - Module loads + associates cleanly; `pm_unsupported` latch fires on boot as expected. -## Building +## Building (pkgrel=4+, kernel-agent flow) + +Builds run out of the new home: ```sh +cd ~/src/marfrit-packages/arch/linux-pinetab2-danctnix-besser makepkg -s ``` -Identical workflow to upstream `linux-pinetab2`. Produces `linux-pinetab2-danctnix-besser--aarch64.pkg.tar.zst` plus a matching `-headers` package. Build host can be aarch64 native (recommended — no cross-toolchain setup) or x86 with an aarch64 cross-compiler. +To refresh the cumulative patch from a new kernel-agent manifest state: + +```sh +cd ~/src/kernel-agent +./bin/ka-promote ohm +cp build/ohm/v7.0-danctnix1/cumulative.patch \ + ~/src/marfrit-packages/arch/linux-pinetab2-danctnix-besser/0001-bes2600-besser-kernel-agent-cumulative.patch +cp build/ohm/v7.0-danctnix1/manifest.lock \ + ~/src/marfrit-packages/arch/linux-pinetab2-danctnix-besser/manifest.lock +b2sum 0001-bes2600-besser-kernel-agent-cumulative.patch # update PKGBUILD b2sums and pkgrel +``` + +## Building (pkgrel ≤ 3, hand-managed flow — DEPRECATED) + +```sh +cd ~/src/besser/marfrit-besser/danctnix-besser-pkgbuild/kernel +makepkg -s +``` + +Produces `linux-pinetab2-danctnix-besser--aarch64.pkg.tar.zst` plus a matching `-headers` package. Build host can be aarch64 native (recommended — no cross-toolchain setup) or x86 with an aarch64 cross-compiler. Build time: ~45–55 min on an 8-core aarch64 host (boltzmann/RPi5-class), most of it the kernel modules phase. @@ -66,7 +113,7 @@ Build time: ~45–55 min on an 8-core aarch64 host (boltzmann/RPi5-class), most The package declares `provides=("linux-pinetab2=$pkgver-$pkgrel")` and `conflicts=(linux-pinetab2)`, so `pacman` will cleanly take over from upstream `linux-pinetab2`: ```sh -sudo pacman -U linux-pinetab2-danctnix-besser-7.0.danctnix1-3-aarch64.pkg.tar.zst +sudo pacman -U linux-pinetab2-danctnix-besser-7.0.danctnix1-4-aarch64.pkg.tar.zst ``` That removes the upstream `linux-pinetab2` package (if installed) and registers the BESser-flavored kernel under the same provides slot. Headers package is optional; install it if you build out-of-tree modules. @@ -102,7 +149,7 @@ lsmod | grep -i bes2600 # expected: bes2600 (loaded), bes2600_btuart (loaded if Bluetooth in use) cat /sys/module/bes2600/srcversion -# expected: BEB625FA7443171EA8D55F7 for pkgrel=3 +# expected: BEB625FA7443171EA8D55F7 for pkgrel=3 (and pkgrel=4 — byte-identical source) ``` `dmesg | grep bes2600` should show clean firmware load, no SDIO TX panic, no `wsm_release_tx_buffer` WARN storm under load, no `wsm_generic_confirm failed for request 0x0007` storm. @@ -153,8 +200,10 @@ Drop-in compatibility: same kernel version, same module names, no userspace ABI ## Maintenance plan -- New danctnix kernel release → rebase BESser patches onto the new tag, regenerate cumulative diff, bump pkgver. -- New BESser patch on Mobian DKMS → re-overlay + re-flavor + regenerate cumulative diff. +**Effective pkgrel=4+:** the per-host manifest in `marfrit/kernel-agent` (`fleet/ohm.yaml`) is the per-patch authority. `ka-promote ohm` produces the cumulative; the PKGBUILD in `marfrit/marfrit-packages` consumes it. Updates flow: + +- New danctnix kernel release → bump `baseline.ref` in `fleet/ohm.yaml`, re-promote, bump pkgver in marfrit-packages PKGBUILD. +- New BESser patch → add a new series-dir in `kernel-agent/patches/driver/bes2600/`, add to `fleet/ohm.yaml` `includes:`, re-promote, refresh cumulative + b2sum in marfrit-packages PKGBUILD, bump pkgrel. - Both flavors continue to be maintained in lockstep via `marfrit/bes2600-dkms` source-of-truth. - GCC 15 SCS issue → periodically re-test build with `CONFIG_SHADOW_CALL_STACK=y` against current Arch ARM GCC. When the build succeeds, flip the config and re-deploy.