Skip to content

build: update Linux to 7.3 - #362

Merged
dormancygrace merged 2 commits into
mainfrom
kernel/linux-7.3
Oct 21, 2026
Merged

dormancygrace merged 2 commits into
mainfrom
kernel/linux-7.3

Conversation

@dormancygrace

Copy link
Copy Markdown
Owner

Linux 7.2.10 → 7.3 (kernel.org, released 2026-10-18). The release becomes 7.3.0-nanokvm-os-r0: a new series, so the revision starts at r0, as in Alpine.

The Linux policy skips a series' first release (docs/DEPENDENCY-UPDATES.md); this update was requested anyway. The publisher's next proposal, 7.3.1, applies on top of it.

What

  • Version pins. Updated in sources.lock, firmware/sources.json, build.sh (archive, directory, release, timestamp at the 7.3 release date), the config heading, README.md, platform/README.md and the Buildroot README.

  • Kernel patches. All 17 apply with git apply, which is how the build applies them. Two are refreshed:

    • 0001: drivers/misc/Makefile ends differently in 7.3.
    • 0035: 7.3 added the srmcfg switch next to it, and the patch only applied with fuzz.

    The imported TPU patches 0047–0049 are unchanged.

  • Config (olddefconfig on 7.3, reviewed one option at a time):

    • PROC_SYSCTL is folded into SYSCTL. proc_sysctl.o builds with CONFIG_SYSCTL=y, so /proc/sys stays.
    • HAVE_GENERIC_VDSO is renamed VDSO_DATASTORE.
    • SWIOTLB_DEFAULT_SIZE_MB=64 makes the old fixed default configurable. On the stand the kernel sizes the bounce buffer down to 0 MB (256 KiB mapped).
    • The rest is new library parts (CRYPTO_LIB_AES_CTR/ECB/GCM=m) and vendor menus without drivers.
  • Out-of-tree modules. In 7.3, cfg80211 assigns the remain_on_channel and mgmt_tx cookies and passes them by value. AIC8800 already handles that (aic8800 0002). The new rtl8733bs 0005 gives its wrappers the new signatures, and the driver no longer overwrites the cookie. All 83 modules (65 in-tree, 18 out-of-tree) build without warnings. The C906 ChaCha and GHASH objects are linked into libchacha and libgf128hash.

  • Kernel update publisher. scripts/propose-kernel-update.py assumed an X.Y.Z pin and would have failed on 7.3. It also replaced versions as plain text, which would have turned 7.3.0-nanokvm-os-r0 into 7.3.1.0-…. Now:

    • the pin (7.3, archive and directory) and the kernel version (7.3.0, release and config heading) are kept apart and replaced as whole versions;
    • a feed with no point release after the pin means "nothing newer", not a broken feed.

    tests/test-kernel-update-pr.py has 14 tests, including X.Y → X.Y.1 → X.Y.2. A live dry run reports no newer point release.

Stand (NanoKVM PCIe, LT6911UXC, AIC8801)

7.3 was booted once from dbg.sd through U-Boot. A 7.2.10-r6 baseline was taken just before.

Check 7.3 7.2 baseline
dmesg errors 0 1 (a CMA retry)
Loaded modules the same 25 25
MemTotal 240824 kB 240984 kB
CmaTotal 147456 kB 147456 kB
  • Network and USB: eth0 and wlan0 up (AIC8800), USB gadget bound.
  • Video: VI 60 fps; MJPEG 38–41 fps at 2560 × 1440 / 60 Hz.
  • System: /proc/sys and sysctl, SG2002 hardware crypto and /dev/crypto, cpufreq at 1 GHz, thermal, zram.
  • Accelerators: all five load with modprobe and unload again. TPU inference: the OCR recognition model at 195 ms per run.

Not tested

  • H.265 on 7.3. Only MJPEG was streamed.
  • rtl8733bs on hardware. The stand has an AIC8801, so this is compile-only.
  • Wi-Fi remain-on-channel and management TX paths. Only association was exercised.
  • The full SD image and the kernel package upgrade on a device. CI's release build covers the image; its comment will show the module directory renamed to 7.3.0-nanokvm-os-r0.

Checklist (from the automatic kernel PRs)

  • Review/rebase NanoKVM kernel and out-of-tree driver patches.
  • Regenerate and review the kernel config with olddefconfig.
  • Build the kernel, modules and boot images; test them on a device. The full image is built by CI.
  • Check the Release build comment.

🤖 Generated with Claude Code

dormancygrace and others added 2 commits October 21, 2026 16:48
Linux 7.2.10 -> 7.3 (kernel.org, 2026-10-18), release 7.3.0-nanokvm-os-r0.

- Kernel patches: all 17 apply. 0001 is refreshed: drivers/misc/Makefile
  ends differently in 7.3. 0035 is refreshed: 7.3 added the srmcfg switch
  next to it, and git apply takes no fuzz. The imported TPU patches
  0047-0049 are unchanged.
- Config (olddefconfig on 7.3, reviewed):
  - PROC_SYSCTL is folded into SYSCTL (proc_sysctl.o builds with
    CONFIG_SYSCTL=y), so /proc/sys stays.
  - HAVE_GENERIC_VDSO is now VDSO_DATASTORE.
  - SWIOTLB_DEFAULT_SIZE_MB=64 makes the old fixed default configurable;
    RISC-V allocates no bounce buffer with 256 MiB.
  - The rest is new library parts (CRYPTO_LIB_AES_CTR/ECB/GCM=m) and
    vendor menus without drivers.
- Out-of-tree modules: 7.3 has cfg80211 assign the remain_on_channel and
  mgmt_tx cookies and pass them by value. AIC8800 already handles that
  (aic8800 0002). rtl8733bs 0005 gives its wrappers the new signatures.
  All 83 modules (65 in-tree, 18 out-of-tree) build without warnings.
- Version pins: sources.lock, firmware/sources.json, build.sh (archive,
  directory, release, timestamp at the 7.3 release date), the config
  heading and the READMEs.

The Linux update policy skips X.Y.0 releases (docs/DEPENDENCY-UPDATES.md);
this one was asked for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With Linux pinned at 7.3 the publisher could no longer run: it read the
pin as X.Y.Z, required release=7.3-nanokvm-os- in build.sh, where the
release is 7.3.0-nanokvm-os-r0, and replaced the version by plain text,
which would have turned 7.3.0 into 7.3.1.0.

The pin (archive and directory: 7.3) and the kernel version (release and
config heading: 7.3.0) are now handled separately and replaced as whole
versions. A feed whose only entry for the pin is the first release (no
point release yet) means nothing newer, not a broken feed. The tests take
either form and also run X.Y -> X.Y.1 -> X.Y.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@dormancygrace dormancygrace left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 4558090. No actionable defects found; no code changes needed.

Independently checked the Linux version/release pins, Kconfig changes, refreshed patch contexts, RTL8733bs cfg80211 cookie adaptation, and kernel-update publisher's 7.3 -> 7.3.1 handling. Verified the Linux archive SHA-256 against the committed manifest and applied all 17 kernel patches successfully. Ran olddefconfig in a separate output directory against the matching prepared 7.3 source: the committed config is unchanged. The new cfg80211 signatures match the actual 7.3 headers; ROC and management-TX paths preserve the supplied cookie value without retaining the wrapper's stack pointer.

Local validation passed: test-kernel-update-pr.py (14), test-upstream-watch.py (30), test-platform-build.py, test-platform-config.py, test-alpine-kernel-activation.py (7), and test-tpu-lifetime.py with ASan/UBSan. The TPU safety patches from #361 remain included unchanged.

CI on this exact head: 13 completed checks successful; JavaScript/TypeScript CodeQL analysis and the full build/hash workflow are still running. Following the user's preference not to wait for full CI, these pending jobs are not treated as completed validation.

Hardware evidence is the author's documented 7.3 boot, module/accelerator, AIC8801 Wi-Fi and MJPEG tests; I did not operate the shared device or independently rebuild the full firmware. H.265, RTL8733bs hardware/ROC/mgmt-TX, and full image/package-upgrade testing remain unverified as disclosed in the PR.

@dormancygrace
dormancygrace merged commit 8ae0b93 into main Oct 21, 2026
15 checks passed
@dormancygrace
dormancygrace deleted the kernel/linux-7.3 branch October 21, 2026 14:11
@github-actions

Copy link
Copy Markdown

Build outputs

Compared with the build of main at 856ebfa.

30 changed, 97 added, 97 removed of 556 outputs.

directory files
changed . Image
changed boot 18 files
changed boot-fit boot-fit/alpha.sd
boot-fit/beta.sd
boot-fit/detect.sd
boot-fit/lite.sd
boot-fit/pcie.sd
changed dtb dtb/alpha.dtb
dtb/beta.dtb
dtb/detect.dtb
dtb/lite.dtb
dtb/pcie.dtb
changed opensbi opensbi/build-manifest.json (records the hash of platform/build.sh)
added lib 97 files
removed lib 97 files
Hashes: outputs-sha256 artifact of this run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant