README + danctnix-besser-pkgbuild/README: point at kernel-agent pkgrel=4 flow #21

Merged
marfrit merged 8 commits from noether/readme-pkgrel4-kernel-agent-flow into main 2026-05-18 19:18:30 +00:00

8 Commits

Author SHA1 Message Date
claude-noether b08ab7aa62 danctnix-besser-pkgbuild/README: bump TL;DR to pkgrel=5 (bundles besser#18 fix)
pkgrel=5 = pkgrel=4 + besser#18 lockdep fix. Cumulative b2sum
0eb091ddaba4a8f1c3c2a78... (162 704 B, 4 patches). pkgrel=4 kept
in the history table as a migration-only fallback.
2026-05-18 18:01:59 +02:00
claude-noether a1f18a5256 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).
2026-05-18 16:56:52 +02:00
claude-noether f8986a4a18 danctnix-besser README: refresh for pkgrel=3 + Patch I + 5 GHz win
Adds a TL;DR table at top with package name, srcversion, source-of-
truth pointers, and the SCS caveat.  Extends the patch table with
Patch I (5 GHz scan filter, closes besser#1) and the arm64 SCS
Makefile workaround.  Updates the measured-outcome section with the
2026-05-18 5 GHz benchmark (11.32 MB/s sustained internet download
on newton ch.48 — 3.6x the 2.4 GHz baseline of 3.12 MB/s on the same
source URL).

Refreshes the install + verify instructions to pkgrel=3, expected
srcversion BEB625FA, and adds the per-band scan probe commands that
demonstrate Patch I working.

Adds the kernel-agent mirror to the provenance list and surfaces the
Phase 5 reviewer's known residual limitation about multi-band iw
scan (mac80211 aborts-on-any-band-fail; per-band scans work normally).
2026-05-18 16:14:33 +02:00
claude-noether 122582e270 danctnix-besser: pkgrel=3 — refine Patch I, add SCS-off + GCC15 workaround
Three things bundled because they were verified together in the same
deploy cycle on ohm (kernel built fresh on boltzmann 2026-05-18):

1. 0002 (Patch I) refined: refuse only multi-channel 5 GHz scans
   (n_channels > 1).  Original Patch I refused everything, which
   blocked NM's per-frequency BSS discovery and made 5 GHz association
   impossible.  Tighter guard preserves the storm fix and unblocks
   5 GHz attachment via NM 802-11-wireless.band=a profiles.

   Verified on ohm with pkgrel=3: associated to BSSID
   c0:25:06:e6:5b:33 on 5240 MHz (ch.48), TX 150 Mbit/s MCS 7
   HT40 short-GI vs 72.2 Mbit/s on 2.4 GHz.  Pattern A still 0.

   Source-of-truth: marfrit/bes2600-dkms branch bes2600/scan-filter-5ghz
   commits 093a503 + 8cd10f4 (squashed into this single 0002 file).

2. 0003 (new): arm64 xor-neon Makefile workaround for GCC 15.2.1
   strict pragma validator vs arm_neon.h target() blocks losing
   -ffixed-x18 under SCS=y.  This is a defensive workaround;
   currently dead-coded (SCS=n below) but in place for the day SCS
   re-enable becomes possible (tracked in besser#20).

3. config: CONFIG_SHADOW_CALL_STACK=n override for the current GCC
   15.2.1 toolchain issue.  Restore to =y once GCC upstream fixes
   the arm_neon.h pragma interaction (besser#20).

pkgrel bumped 2 -> 3.

Refs: besser#1 (closed), besser#20, kernel-agent#25 (PR mirroring
this into the kernel-agent patch tree — needs follow-up to pick
up the refinement).
2026-05-18 15:57:05 +02:00
claude-noether ae175f9745 danctnix-besser: ship patch 0002 — filter 5 GHz scans at driver boundary
Adds 0002-bes2600-filter-5ghz-scan.patch on top of the existing
cumulative series, addressing besser issue #1 (recurring
wsm_generic_confirm 0x0007 / [SCAN] Scan failed (-22) pattern).

The fix refuses 5 GHz hw_scan iterations in bes2600_hw_scan; the
firmware-reject cascade for the 5 GHz leg of mac80211's per-band
hw_scan loop is short-circuited.  Source-of-truth commit lives on
marfrit/bes2600-dkms branch bes2600/scan-filter-5ghz (sha 093a503).

Predicted Phase 7 delta: Pattern A rate 14/h -> 0/h. See besser#1
comment 1171 for the full Phase 0-4 analysis and Phase 5 review.

pkgrel bumped to 2.
2026-05-18 11:28:33 +02:00
claude-noether 693e9b42aa danctnix-besser README: install/verify/rollback + per-patch source link
Two readiness gaps surfaced after the end-to-end install verification on
ohm 2026-05-08:

(1) The "Building" section was a one-liner ("makepkg -s ... pacman -U
    ... reboot") with no actual install commands.  Replaced with proper
    Building / Installing / Verifying / Rolling back sections, using
    the exact commands that worked end-to-end on ohm:

    - sudo pacman -U <pkg.tar.zst>
    - The new conflicts/provides metadata means no --overwrite needed
    - PineTab2 U-Boot script update via /boot/boot.txt + mkscr
    - Off-device backup (boot.scr.pre-besser) for trivial rollback
    - Post-reboot checks: uname -r, lsmod, /sys/module/bes2600/srcversion

(2) The "What's in the patchset" table listed Patch G / Patch B / etc.
    without linking to the actual commits.  Added a preamble pointer to
    the cleanups branch on marfrit/bes2600-dkms gitea, which is the
    source-of-truth for individual commits + Phase-7 verification logs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 17:31:35 +02:00
claude-noether 0f783a1e69 danctnix-besser PKGBUILD polish: drop-in replacement metadata + DTB strip fix
(1) Add `provides=("linux-pinetab2=$pkgver-$pkgrel")` and
    `conflicts=(linux-pinetab2)` so pacman -U cleanly replaces the
    upstream linux-pinetab2 package without needing --overwrite for the
    shared rk3566-pinetab2-*.dtb files.

    Verified end-to-end on ohm 2026-05-08: with these declarations
    pacman would refuse coexistence (matching the actual filesystem
    reality - both packages own the same DTB paths) and accept upgrade
    when removing the old package.

    Keeping `replaces=(wireguard-arch)` from upstream linux-pinetab2.
    Not adding linux-pinetab2 to replaces= since the soft-upstream
    intent is opt-in sidegrade, not auto-install on -Syu.

(2) Replace the bash for-loop DTB strip with find -delete.

    The original loop silently no-op'd during the makepkg-fakeroot
    package() phase: build verification of the published .pkg.tar.zst
    showed 236 DTBs, 234 of them unrelated boards (px30-*, rk3308-*,
    rk3328-*, rk3399-*, etc).  Root cause not pinned down (suspected
    nullglob or cwd interaction), but find -mindepth 1 -maxdepth 1
    ! -name 'rk3566-pinetab2-*' -delete is robust to that environment
    and correctly identifies 2 to keep / 234 to remove on the existing
    pkgdir.

    Net pkg size impact: ~5 MB reduction (most non-pinetab2 DTBs are
    20-40 KB).

No kernel rebuild required - PKGBUILD-only metadata + package() logic
change.  Will take effect on the next makepkg run.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 15:08:16 +02:00
claude-noether 843d40231f danctnix-besser: regen cumulative patch with bes_chardev.{c,h} merge fix
Build (PID 558898 on boltzmann) failed at bes2600_btuart.c:81:
  error: implicit declaration of function 'bes2600_chrdev_switch_subsys_glb'

Root cause: the original danctnix-flavor adaptation overlaid Mobian's
heavily-trimmed bes_chardev.{c,h} on top of pristine danctnix.  Mobian's
flavor (694 lines) had stripped out the BT/WiFi subsystem-switch
orchestration that pristine danctnix (1387 lines) carries and that
danctnix-only bes2600_btuart.c calls.

Fix: restore pristine danctnix bes_chardev.{c,h} as the baseline for
those two files in the danctnix flavor, then reapply Mobian's
campaign-relevant changes:
  - Patch G: SPDX-License-Identifier header + corrected attribution
  - Patch B: bes2600_chrdev_do_bus_reset + _trigger_bus_reset
    (definitions in bes_chardev.c, declarations in bes_chardev.h,
    EXPORT_SYMBOL_GPL on _trigger_bus_reset since it is called from
    sta.c connection-loss-storm fast-recover path)

Phase 6 thread-safety contract: bus_reset functions read
bes2600_cdev.{sbus_ops,sbus_priv} without locking, identical to the
Mobian-flavor source-of-truth - acceptable given the bus_reset is
invoked from already-serialized higher-level error paths in sta.c.

48 files unchanged in count, +1412/-1243 (was +1426/-2003).  The
delta vs the previous patch is concentrated in bes_chardev.{c,h}:
+776/-16 in .c (restoring the BT/WiFi switching infrastructure plus
appending Patch B), +2/-2 in .h (declarations + SPDX).

Patch verified to apply cleanly to v7.0-danctnix1 baseline.
b2sum updated in PKGBUILD.

Build retrigger pending on his.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 13:59:04 +02:00