Skip to content

FOS: update Linux kernel to 6.18.38 LTS (needs testing)#114

Open
mastacontrola wants to merge 3 commits into
masterfrom
kernel-6.18
Open

FOS: update Linux kernel to 6.18.38 LTS (needs testing)#114
mastacontrola wants to merge 3 commits into
masterfrom
kernel-6.18

Conversation

@mastacontrola

Copy link
Copy Markdown
Member

Summary

Rebases FOS from kernel 6.12.35 to 6.18.38, the current LTS line (maintained until ~Dec 2028). 6.12 is now two LTS cycles behind, and the newest hardware in our issue queue (Arrow Lake Dell Pro Max machines in #108) only got full enablement after 6.12. Rod's EXPERIMENTAL_Kernel_6_17 build already proved a newer kernel fixes the Dell Pro Max 16 MC16250 hang (ThePawlow's confirmation on #108) — this PR makes that fix line official and puts us on an LTS base instead of a short-lived 6.17.

⚠️ Needs testing before merge. The x64 kernel compiles clean end-to-end (bzImage built and ikconfig-verified), but no hardware boot testing has been done. Details below on what specifically needs eyes.

Builds on #113 (branch is based on vmd-pch-rootbus, so its commit appears here; merge #113 first and this reduces to one commit).

What changed

  • build.sh: KERNEL_VERSION 6.12.35 → 6.18.38. Nothing else — the kernel.org URL derivation, patch application, and KernelPackages merge all work unchanged.
  • configs/kernel{x64,arm64,x86}.config: regenerated via make olddefconfig against 6.18.38 with the KernelPackages vendor drivers append-merged first (replicating exactly what buildKernel produces), so the vendor R8125/R8126/R8127/R8168 symbols were resolved during regeneration, not bolted on after.
  • configs/fs{x64,arm64,x86}.config: kernel-headers selection 6.12 → 6.18, regenerated with Buildroot 2026.02.1 olddefconfig with the FOS overlay applied (fs.patch + newConf.in + Buildroot/ rsync), so the FOG/partclone/chntpw/testdisk/cabextract/partimage package selections survived. The resulting diff is purely the header-version cascade (~20 lines per file).

Verification done

  • VMD patch (Kernel: support second VMD rootbus on Arrow Lake (fixes #107) #113) applies to 6.18.38 unmodified — all 15 hunks, offsets only, zero fuzz, and vmd.o compiles. I also checked mainline 7.2-rc1: Szymon Durawa's upstream second-rootbus series is still unmerged, so we keep carrying the patch.
  • Vendor Realtek drivers compile on 6.18: r8125 9.016.01, r8126, r8127, r8168 8.056.02 all build (only pre-existing -Wunused-function warnings). This was the biggest rebase risk since r8125 9.016.01 predates 6.18.
  • Full x64 bzImage built and extract-ikconfig verified: R8125/R8126/R8127/R8168=y, # CONFIG_R8169 is not set, NET_VENDOR_REALTEK/8139CP/8139TOO=y, VMD=y, E1000E/IGB/IGC/BNX2=y, CONFIG_EXTRA_FIRMWARE intact — same driver layout as the shipping 6.12.35 kernel.
  • Config diff vetted symbol-by-symbol (set-difference on sorted CONFIG lines, not raw diff): every dropped option is an upstream removal/rename, not a lost feature. Notables:
    • EXT3_FS alias removed upstream — ext4 mounts ext3 natively; EXT2_FS=y retained.
    • KEYBOARD_ADP5589/KEYBOARD_TCA6416 drivers deleted from the kernel entirely (I2C keyboard expanders, irrelevant to FOS).
    • ICE=y retained (ICE_HWTS sub-symbol folded in upstream).
    • Cross-checked against the ikconfig from Rod's shipping 6.17 experimental build to make sure both in-tree and vendor Realtek symbol sets coexist as intended.

What needs testing

  1. xcp-ng / VM boot@JCS-RVK reported on Stuck at EFI stub: Loaded intrd #108 that the 6.17 experimental kernel regressed VM boot (no EFI stub output at all) where 6.12.35 worked. Unknown whether 6.18.38 has the same issue; this is the top validation target.
  2. Bare-metal boot on the usual fleet (Dell/HP/Lenovo desktops + laptops), especially anything with Realtek NICs, to confirm vendor-driver runtime behavior on the new kernel — compile-clean ≠ runtime-clean.
  3. arm64 and x86 builds — configs are regenerated for all three arches but only x64 was compile-tested end-to-end.

A test bzImage built from this branch is attached to the EXPERIMENTAL issue-108 prerelease for #108 reporters (Arrow Lake signature) to try.

Noticed but deliberately not changed

KernelPackages/drivers/net/ethernet/realtek/Makefile has obj-$(CONFIG_R8126) += r8127/ — r8127 is gated on the R8126 symbol (copy-paste from the r8126 line). Harmless today since both are =y, but worth fixing separately so r8127 doesn't silently vanish if R8126 is ever disabled.

🤖 Generated with Claude Code

mastacontrola and others added 2 commits July 5, 2026 07:02
On Arrow Lake desktop (Core Ultra 200S) systems with VMD enabled,
NVMe drives routed through the PCH live on a second VMD rootbus
hardwired to bus 0x80. The mainline vmd driver only enumerates the
first rootbus, so FOS never sees the disk and imaging fails.

Intel's upstream fix (v5, 2026-06-25) is not yet merged in any
mainline/stable kernel, so a kernel version bump cannot fix this yet.
Ubuntu ships the same fix as SAUCE patches in linux-oem-6.11
(Launchpad #2085853), where it is confirmed working on affected
hardware. This adds those four patches (0c9ff92b2efc, d20355bdd463,
e7b7195e3706, 040d304c75b9) combined and adapted to vanilla 6.12.35
as patch/kernel/linux.patch, which build.sh already applies to all
kernel builds. The patched vmd.c was diffed against Ubuntu's final
tree to confirm only known base-version differences remain, and the
patch was verified to apply cleanly the same way build.sh does.

Harmless for arm64/x86 builds: the file patches identically and
CONFIG_VMD is only enabled on x64.

Fixes #107

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rebase from 6.12.35 to the current 6.18 LTS line (supported until
Dec 2028). 6.18 carries complete Arrow Lake / Lunar Lake enablement
(intel_idle C-state handling, Wi-Fi, GPU stubs) that shipped after
6.12, and is the suspected fix line for the Dell Pro Max 16 MC16250
hang tracked in #108.

Changes:
- build.sh: KERNEL_VERSION 6.12.35 -> 6.18.38
- configs/kernel{x64,arm64,x86}.config: regenerated with
  `make olddefconfig` against 6.18.38 with KernelPackages vendor
  drivers appended (same layout build.sh produces). All NIC,
  storage, and boot options verified preserved; dropped symbols are
  upstream removals/renames only (EXT3_FS alias removed - ext4
  still mounts ext3; KEYBOARD_ADP5589/TCA6416 removed upstream;
  rest are internal kconfig symbols).
- configs/fs{x64,arm64,x86}.config: kernel headers 6.12.35 ->
  6.18.38, regenerated with Buildroot 2026.02.1 olddefconfig with
  the FOS package overlay applied (FOG/partclone/chntpw/testdisk/
  cabextract/partimage selections preserved).

The VMD PCH-rootbus patch (#113) applies to 6.18.38 unmodified
(offsets only, no fuzz) - the upstream series is still unmerged as
of mainline 7.2-rc1 - and vmd.o compiles clean against 6.18.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The fs configs carry a legacy BR2_KERNEL_MIRROR of
http://www.kernel.org/pub/ (Buildroot's default has been
https://cdn.kernel.org/pub for years). The www.kernel.org frontend is
timing out today, which broke the linux-headers 6.18.38 download in CI
run 28741856230 for all three init builds: wget gives up after 2 tries,
and the sources.buildroot.net fallback 404s because it only mirrors the
kernel versions pinned in Buildroot's own hash files. cdn.kernel.org
serves the tarball fine.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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