Skip to content

Releases: SoplosLinux/soplos-kernel-installer

Soplos Kernel Installer 1.0.3-3

Choose a tag to compare

@SoplosLinux SoplosLinux released this 16 May 07:23

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.3-3] - 2026-10-23

Fixed

  • A build could start without its dependencies. full_install ignored the result of the dependency check, so when the pkexec call failed or was cancelled the installer went on, and a missing libelf-dev only showed up deep in the compilation (gelf.h: No such file or directory while building objtool, Linux 7.3). It now stops with a message before downloading anything.
  • libelf-dev was only reinstalled when it was missing, not when it was installed without /usr/include/gelf.h, as already done for libssl-dev. It is now.
  • The dependency install was apt-get update && apt-get install, so an apt-get update that failed (an unreachable repository, no network) stopped the install of the missing packages. The update can now fail and the install still runs with the lists the system has.

[1.0.3-2] - 2026-10-22

Added

  • NVIDIA DKMS patch for the Debian 550 driver on Linux 7.2+ (NV_550_KERNEL72_COMPAT_PATCH, Fix 6, same patch as nvidia-patches/patches/nvidia-550-kernel7.2-compat.patch): linux/of_gpio.h removed, strncpy() removed from linux/string.h, and struct drm_atomic_state renamed struct drm_atomic_commit.
  • NVIDIA DKMS patch for the 590 open modules on Linux 7.2+ (NV_590_KERNEL72_COMPAT_PATCH, Fix 7, same patch as nvidia-patches/patches/nvidia-590-kernel7.2-compat.patch): the Fix 6 changes plus the nvidia-uvm changes NVIDIA 610 already has (page_free renamed folio_free, three-argument zone_device_page_init()), backported through two conftest.sh probes.
  • Each patch is applied only when the source tree still has the text it fixes and patch --dry-run succeeds, so 580, 610 and already patched trees are left alone. Both build against 7.3.0-soplos-bore-ntsync-v4 and 7.2.11-soplos-bore-ntsync-v4.

[1.0.3-1] - 2026-10-21

Fixed

  • The NVIDIA DKMS patch for the dmem_cgroup_register_region change in Linux 7.3+ (NV_DMEM_CGROUP_INIT_PATCH) was never applied: its hunk header declared 7 old and 17 new lines while the body has 6 and 15, so patch rejected it as malformed and the installer only printed a warning. The header is corrected (@@ -2818,6 +2818,15 @@). Checked against the real NVIDIA 610.57.04 sources: it applies cleanly and the module builds against the Linux 7.3 headers, where the unpatched sources fail with -Wint-conversion at os-interface.c:2820.

[1.0.3] - 2026-10-20

Fixed

  • Added NVIDIA DKMS compatibility patch for Linux 7.3+ kernels (NV_DMEM_CGROUP_INIT_PATCH). Fixes -Wint-conversion build error in nvidia/os-interface.c (dmem_cgroup_register_region API signature update introduced in kernel 7.3).

[1.0.2-9] - 2026-10-04

Added

  • Support for Linux 7.2.9 Zen kernel patch (0001-zen-7.2.9.patch) in _download_zen_soplos().

Fixed

  • Enhanced Zen patch downloader (_download_zen_soplos()) to check for exact kernel version patches (0001-zen-{version}.patch) before falling back to major_minor line patches (0001-zen-{major_minor}.patch).

[1.0.2-8] - 2026-10-03

Fixed

  • Zen patch source priority was backwards: _download_zen() tried zen-kernel/zen-kernel's own upstream releases first and only fell back to SoplosLinux/zen-soplos if no matching release existed. Kernel 7.2.9 V3/V4 builds failed because the official zen-kernel release for that version carries its own CONFIG_X86_64_VERSION march mechanism in arch/x86/Makefile, which conflicts with Soplos' own x86-64 ISA-level patch applied afterward. zen-soplos is now tried first; zen-kernel/zen-kernel is only a fallback when zen-soplos has no patch for the line yet or it doesn't apply.

[1.0.2-7] - 2026-09-20

Fixed

  • RT kernels shipped without the Intel graphics driver. Mainline declares DRM_I915 as depends on !PREEMPT_RT, so olddefconfig dropped it silently on every RT build (7.0.3 through 7.2.6), and any machine with an Intel iGPU booted to a black screen with a blinking cursor. The only fix the installer knew, a third-party rt-i915 patch, was downloaded only when the machine doing the build had an Intel GPU, which the build VM does not. RT builds now always apply Soplos' own patch from SoplosLinux/rt-i915-soplos (checked with a dry-run apply before it is accepted), and stop after olddefconfig if DRM_I915 did not survive, instead of producing a kernel that cannot boot on Intel. The third-party download was removed.

Notes

  • The patch is compile-tested on 7.2.6 with and without PREEMPT_RT, but not boot-tested yet: see the rt-i915-soplos README before publishing an RT kernel built with it.
  • There is only a 7.2 patch so far. An RT build of any other kernel line stops at the DRM_I915 check until a patch for that line exists.

[1.0.2-6] - 2026-09-14

Fixed

  • RC, LTS and EOL kernels shared the exact same Stock package name as the regular stable line (e.g. linux-soplos-v1), only the kernel version differing. That is unsafe two ways over: an RC build could silently replace a stable kernel on a plain apt upgrade, and LTS/EOL kernel versions compare as lower than the current stable in Debian version ordering, so reprepro refused to publish them at all ("as it has already "). Stock builds (both the single-kernel flow and the batch release queue) now insert a channel marker into the package name — linux-soplos-rc-v1, linux-soplos-lts-v1, linux-soplos-eol-v1 — based on the selected kernel's real channel from kernel.org, so each channel gets its own package identity instead of colliding with stable.

[1.0.2-5] - 2026-09-10

Fixed

  • CONFIG_ANDROID_BINDER_IPC is a plain bool in Kconfig
    (drivers/android/Kconfig), not a tristate. The 1.0.2-4 attempt to enable
    it as a module (--module, i.e. =m) was an invalid value for a bool
    symbol, silently normalized back to n by make olddefconfig — every
    7.2.4 kernel already published with that build never actually had Waydroid
    support. Now enabled with --enable (the only valid form for this
    symbol), plus a post-olddefconfig check that warns instead of failing
    silently if it's ever dropped again for any other reason.

Added

  • Stock batch build (core/batch.py, BatchBuilder.run()) gained a
    revision counter: 0 (default) means a brand new kernel version that was
    never built before — no extra number anywhere in the resulting .deb
    files, unchanged from before. 1, 2, 3... mean this is the 1st, 2nd, 3rd
    recompile of the SAME kernel version with different patches/fixes, so
    apt/reprepro see the new build as a real upgrade instead of colliding
    on an identical package name+version with the previous one. The internal
    Debian revision (KDEB_PKGVERSION) is offset by one from what the user
    enters, since the very first build of any version already implicitly uses
    revision 1 — entering "1" for the first recompile is guaranteed to produce
    a genuinely new, working package on its own. New "Revision" spinner in the
    batch build page of the UI.

[1.0.2-4] - 2026-09-09

Added

  • CONFIG_ANDROID_BINDER_IPC enabled as a module on every build, giving
    Waydroid support with no kernel patch needed. Built as =m on purpose:
    users who never use Waydroid never load the module, at no cost. Device
    names (binder,hwbinder,vndbinder) are left for whoever loads it
    (modprobe options), not fixed at compile time.

[1.0.2-3] - 2026-08-28

Added

  • CONFIG_CGROUP_DMEM enabled unconditionally on every build (device/VRAM
    memory accounting cgroup, disabled by default in the Debian base config).
    It's a compile-time flag with nothing that uses it yet, but baking it in
    now avoids a forced recompile-and-republish cycle once
    soplos-game-daemon actually needs it. A dropped symbol after
    olddefconfig only warns, unlike the march level check, since nothing
    depends on it yet.

[1.0.2-2] - 2026-08-18

Added

  • March (x86-64 psABI) selector available for every profile, not just
    Stock — Gaming, Audio/Video, Minimal/Office and Automatic builds can now
    pick V1-V4 too, instead of always building at the compiler default.
  • Kernel selection for the Stock batch build: a "Select kernels..."
    dialog lists all 26 jobs of the release queue with checkboxes, instead
    of always building all-or-nothing.
  • Resume for the Stock batch build: a checkbox skips any kernel whose
    metapackage .deb already exists in the destination folder, so a queue
    that failed partway through can continue from where it stopped instead
    of rebuilding everything from V1.

Fixed

  • The march selector never appeared for the default profile at
    startup
    : ProfileSelector's first radio button is already
    active=True when the group is created, so its own set_active(True)
    call was a no-op and never emitted toggled — profile-changed (and
    everything that listens for it, march selector visibility included)
    only ever fired when the user switched profiles by hand, never for the
    profile shown on launch. Synced explicitly once after the window is
    built.
  • A V3/V4 build outside Stock mode looked identical to a V1 one: the
    march selector applied to the build (see Added, above) but was never
    reflected in the kernel's name for non-Stock profiles, unlike Stock's
    own auto-generated name. The march level is now appended to the name
    (and its live preview) whenever it isn't the default v1.
  • The batch "Build all 26 kernels" button kept its label after
    narrowing the selection
    : it always said "26" regardless of how many
    kernels were actually checked...
Read more