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).
This commit is contained in:
2026-05-18 16:56:52 +02:00
parent f8986a4a18
commit a1f18a5256
2 changed files with 63 additions and 11 deletions
+3
View File
@@ -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
+60 -11
View File
@@ -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 <single-5ghz-channel>` 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 |
|---|---|---|---|
| 13 | 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-<ver>-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-<ver>-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: ~4555 min on an 8-core aarch64 host (boltzmann/RPi5-class), most of it the kernel modules phase.
@@ -66,7 +113,7 @@ Build time: ~4555 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.