1.0.1-9 — August 2026
Unattended release build queues all kernels of a release with no interaction; x86-64 architecture level was never actually applied since 1.0.1 — fixed via a proper Kconfig patch; translations completed for all eight languages.
Added
- Unattended release build (Stock mode): builds every kernel of a release one after another with no interaction — 6 variants for v1 and v2 plus x3d for v3 and v4. Destination folder and core count are chosen once, dependencies are resolved once, and the machine is kept awake for the whole queue. Every kernel starts from a completely fresh build directory. Packages are saved to
<destination>/<version>/V1throughV4. The queue stops at the first failure and keeps that build directory intact for inspection. Uses the existing build screen with its live log, system stats and cancel button — the cancel button stops the whole queue.
Fixed
- x86-64 architecture level was never applied: The build set
CONFIG_GENERIC_CPU{2,3,4}, symbols that do not exist in mainline — they come from an out-of-tree patch that was never applied.scripts/configwrote them,olddefconfigdropped them silently, and every kernel compiled at the v1 baseline. Kernels named-v2,-v3and-v4were byte-identical to-v1apart fromCONFIG_LOCALVERSION. This affected every release built since 1.0.1, including the published 7.1.4, 7.1.5 and 7.1.7 kernel sets. The level now comes from SoplosLinux/soplos-cpu-kernel-patch, which adds a proper Kconfig choice (X86_64_ISA_V1toV4) and the matching-march=x86-64-v{2,3,4}branches. The patch is downloaded and applied automatically whenever the level is above v1. The build now aborts if the level symbol does not surviveolddefconfig, instead of silently producing a mislabelled kernel.
Changed
- v1 no longer writes any architecture symbol. It is the upstream baseline and now builds exactly as vanilla does.
Translations
- Translated the batch interface into all eight languages, plus six older strings that had been left untranslated since 1.0.1-7:
Profile:,Version:,Cores to use for compilation:, its tooltip, the empty-filter message and the build directory deletion error.
1.0.1-8 — July 2026
NVIDIA DKMS patch now covers open-module driver layouts (nvidia-open-590/610); patch skipped on driver versions that no longer use the old VMA locking API; dead constants removed from installer core.
Fixed
- NVIDIA DKMS patch silently skipped on open kernel modules:
get_nvidia_dkms_patch_commands()only looked fornvidia/nv-mmap.cinside each/usr/src/nvidia-*/tree. Thenvidia-open-590andnvidia-open-610packages keep their sources underkernel-open/nvidia/, so the patch was skipped without any warning on every system using them — which is now all Turing and newer hardware. Both source layouts are now walked. - Spurious patch-failed warning on recent driver versions: The VMA Locking patch was attempted unconditionally, printing a "patch failed" warning on driver versions that no longer use the old VMA locking API. It is now applied only when
VMA_LOCK_OFFSETis actually present in the source.
Removed
- Dead constants in installer core:
DRACUT_CONF_DIRandDRACUT_SOPLOS_CONFincore/installer.pywere defined but never referenced anywhere in the project.
1.0.1-7 — July 2026
Compile-tab core count selector added; Soplos Kernels tab gains profile and version filter dropdowns; filter button-label blank and filter-row boundary glitches fixed.
Fixed
- Filter changes left Install/Remove buttons blank: Changing a filter in the Soplos Kernels tab left the Install/Remove buttons without a label until something else (e.g. clicking Refresh) triggered a full re-render —
_rebuild_kernels_list()recreates buttons without a label, and only_refresh_soplos_kernels_tab()actually sets it. Filter changes now trigger both. - Filter row visually stuck to kernel list: The filter row had no clear visual boundary from the kernel list beneath it — the single-pixel in-card separator was barely noticeable on the dark theme. The filter row is now inside its own card, matching the visual pattern of the repository-status and kernel-list cards.
Added
- Core count selector: The "Compile kernel" tab now has a spin button ("Cores to use for compilation") next to the cleanup checkbox, defaulting to all logical cores. Available for both regular profiles and Stock/developer mode. The chosen value is threaded through
full_install()toinstaller.build(), wheremake -j{n}uses it instead of always auto-detecting. - Soplos Kernels tab: profile and version filters: Two dropdowns ("Profile" and "Version") above the kernel list, populated dynamically from the packages actually present in the repository — so a newly published flavor like Zen appears on its own without anything hardcoded. Supports filtering by profile, by march level (V1–V4), or both simultaneously.
1.0.1-6 — July 2026
BORE and Zen patch source selection hardened with dry-run verification before acceptance; Zen's alternate scheduler (PDS) now correctly enabled at build time; new fallback sources added for both BORE and Zen.
Fixed
- BORE/Zen patch source selection: A patch source could download successfully and still fail to apply against the current kernel point release — the failure only surfaced during the actual
patchapply step, by which point it was too late to fall back to another source. Downloaded BORE/Zen candidates are now verified with apatch --dry-runagainst the extracted kernel tree before being accepted; if a source downloads fine but doesn't apply, the next source in the chain is tried automatically instead of aborting the build. - Zen's alternate scheduler never actually built: Selecting the "zen" patch applied the full patchset and the build succeeded, but the kernel silently ran mainline CFS/EEVDF instead of BMQ/PDS —
CONFIG_SCHED_ALTdefaults tonin Kconfig, so it needed to be forced on explicitly.configure()now enablesCONFIG_SCHED_ALTandCONFIG_SCHED_PDSwhenever "zen" is selected. Verified on real hardware:CONFIG_SCHED_ALT=y/CONFIG_SCHED_PDS=yin the running kernel's config, and Project C-specific sysctls (kernel.yield_type) present while CFS-only sysctls are gone, confirming PDS is genuinely active.
Added
- BORE — third fallback source: SoplosLinux/bore-soplos, used only when neither firelzrd nor CachyOS have a working patch for the requested kernel version yet.
- Zen — fallback source: SoplosLinux/zen-soplos, used when zen-kernel/zen-kernel hasn't published a matching release yet.
1.0.1-5 — July 2026
The "Which kernel is right for my hardware?" popup now shows the detected CPU model, GPU and total RAM alongside the x86-64 architecture level.
Improved
- "Which kernel is right for my hardware?" popup: Now also shows the detected CPU model, GPU, and total RAM alongside the supported x86-64 architecture level, giving users a fuller picture of their hardware before picking a kernel package.
1.0.1-4 — July 2026
The "Which kernel is right for my hardware?" button now detects the CPU's x86-64 architecture level and shows it directly, instead of opening the wiki.
Improved
- "Which kernel is right for my hardware?" button: No longer opens the wiki page. It now detects the highest x86-64 architecture level (v1–v4) the CPU actually supports and shows it directly, so users know which kernel package variant to pick from the list without leaving the app.
1.0.1-3 — July 2026
Fixed an X3D VCache selection bug that could send an incompatible patch combination to the build.
Fixed
- X3D VCache selection leaving Zen checked alongside BORE: Selecting X3D force-enables BORE, but since that happened while patch-toggle signals were blocked, BORE's own "uncheck Zen (incompatible)" logic never ran — Zen could stay checked alongside BORE+X3D if it was already active, sending a broken patch combination to the build. X3D's auto-select now also clears whatever is incompatible with BORE.
1.0.1-2 — July 2026
Three build-reliability fixes and two new additions: handheld gaming EC driver support and an automatic march-level guardrail for the X3D VCache patch.
Fixed
- X3D VCache patch download: Now uses a per-kernel-version URL (6.x / 7.0 / 7.1) instead of a single stale link that no longer existed in the source repository.
- Base kernel configuration: Now fetched fresh from Debian sid on every build instead of copying the config of a previously installed kernel — avoids configuration drift accumulating across builds and missing support for recently-added hardware.
- Build failure from inherited module signing key path: The base config's
MODULE_SIG_KEYcould point to a path that only exists inside Debian's own build system, breakingdpkg-buildpackageat the certs stage. Now reset to the kernel's own default path when no custom Secure Boot key is set. - Patch tooltips always in English: The descriptions shown on hover in the Patches selector (BORE, PREEMPT_RT, Zen, NTSYNC, X3D VCache) were never passed through the translation system. Now properly localized in all 8 languages, with missing NTSYNC and X3D VCache translations added.
Added
- Handheld gaming EC drivers:
ASUS_ARMOURY(ROG Ally / Ally X) andOXP_EC(OneXPlayer / AYANEO) are now forced as modules in every build. - March level guardrail for X3D: v1 and v2 march levels are now disabled automatically when the X3D VCache patch is selected, since X3D hardware requires at least x86-64-v3.
1.0.1-1 — July 2026
Fixed march-level package detection and display names in the Soplos Kernels tab.
Fixed
- March-level package detection: Package filter regex now accepts march-level suffixes (
v1–v4) so packages likelinux-soplos-bore-v3are correctly listed in the Soplos Kernels tab. - Display names for march-level packages: Packages now show the march level as a separate label —
linux-soplos-v3→ "Stock V3",linux-soplos-bore-v3→ "BORE V3".
1.0.1 — July 2026
x86-64 microarchitecture level selector and AMD X3D VCache scheduler patch in Stock mode, plus auto-generated kernel names and a wiki help button in the Soplos Kernels tab.
Added
- x86-64 march level selector (Stock mode): Build kernels targeting v1 (Generic), v2 (SSE4.2+), v3 (AVX2+) or v4 (AVX-512) microarchitecture levels via
CONFIG_GENERIC_CPU{2,3,4}. v1 is selected by default for maximum hardware compatibility. - AMD X3D VCache scheduler patch (Stock mode): Original Soplos patch (x3d-soplos) that detects asymmetric L3 cache topology on AMD Ryzen X3D dual-CCD processors (7950X3D, 9950X3D) and steers tasks towards the VCache CCD using a load-balanced hook in
select_task_rq_fair(). Auto-selects BORE and NTSYNC patches; compiled kernel is namedsoplos-x3d-v3orsoplos-x3d-v4depending on the selected march level. - Auto-generated kernel name (Stock mode): The kernel name field is now read-only and computed automatically from the selected patch set and march level — no manual entry required.
- Wiki info button in the Soplos Kernels tab: Opens the CPU Compatibility guide on soplos.org to help users choose the right kernel for their hardware.
1.0.0-4 — June 2026
NVIDIA VMA patch now applied when installing or updating pre-built kernels from the Soplos repository tab, preventing DKMS failures on NVIDIA systems.
Fixed
- NVIDIA patch in Soplos Kernels tab: The NVIDIA VMA compatibility patch was only applied when compiling kernels from source. Now also applied before
apt installandapt install --only-upgradein the Soplos Kernels tab, preventing DKMS build failures on NVIDIA systems when installing or updating pre-built kernels. - NVIDIA VMA patch fuzz: Added
--fuzz=5to the patch command so the same patch applies correctly to driver versions with minor line offset differences (e.g. 580 vs 590).
1.0.0-3 — June 2026
Fixed spurious Update button appearing after a Soplos kernel update before reboot.
Fixed
- Spurious Update button after kernel update: After updating a Soplos kernel, the old
vmlinuzwas still present in/bootbefore reboot. The vmlinuz version fallback was comparing it against the repo candidate and showing the Update button incorrectly. The fallback now only activates when the metapackage is not registered in apt (Installed: (none)), so if apt knows the package is up to date, it is trusted and the vmlinuz is not checked.
1.0.0-2 — June 2026
Fixed Soplos Kernels update detection, stale package lists after action, and locale-dependent apt-cache output.
Fixed
- Update button detection: Stops parsing
apt-cache showat the first blank line (end of the first stanza), ensuring the candidate version is always used for update checks instead of being overwritten by the installed version. - Stale package list: Forces a full re-fetch of available packages from apt after installing, updating, or removing a kernel, instead of refreshing with cached data.
- Locale-dependent output: Forces
LC_ALL=Con apt-cache calls to prevent field parsing failures on non-English locales.
1.0.0-1 — June 2026
Added a "Remove repository" button to the Soplos Kernels tab for clean repository removal without affecting installed kernels.
Added
- Remove repository button: New button in
the Soplos Kernels tab — removes
/etc/apt/sources.list.d/soplos-kernels.sourcesand/usr/share/keyrings/soplos-kernels.gpg, then runsapt-get update. Already installed kernels are not affected. UI updates instantly.
1.0.0 — April 2026
Initial release: custom kernel compiler with BORE, Zen, NTSYNC and PREEMPT_RT support, Soplos Kernels tab, Secure Boot / MOK management and full i18n in 8 languages.
Added — Build Features
- PREEMPT_RT integration: For kernels ≥
6.12, PREEMPT_RT is built-in upstream — no external patch download; automatically
enables
CONFIG_PREEMPT_RT=y. - Source reuse: Recycle existing kernel sources for faster subsequent compilations with automatic patch conflict detection.
- Expandable build history: Installation history with automatic kernel tags (XanMod, Liquorix, Zen, System…) and improved UI.
- Keyboard shortcuts: Ctrl+Q quit, Ctrl+W close, F5 refresh, F1 about, Ctrl+Tab / Ctrl+Shift+Tab switch tabs.
- About dialog: Application information with version, author, license and website.
- NTSYNC patch: NT synchronization primitives support for Wine/Proton gaming performance.
- NVIDIA kernel 7.x patch: Automatically applies VMA locking API compatibility patch to NVIDIA DKMS sources before build — fixes DKMS failure on kernel 7.0+ (from SoplosLinux/nvidia-patches).
- DKMS MOK auto-enroll: After installation with Secure Boot active, automatically prompts to enroll the DKMS signing key when an NVIDIA GPU is detected — fixes NVENC and CUDA not working with Secure Boot.
- Save .deb before cleanup: When the build
directory cleanup option is active, offers to save the compiled
.debpackages to a chosen folder before deleting. - MOK key path in UI: The key management dialog now shows the storage path of MOK keys so users know where to find them.
Added — Stock Profile & Extras
- Stock profile (hidden): New «Soplos
Stock» kernel profile accessible via Ctrl+Shift+D — compiles a vanilla
kernel with no profile modifications, suffix
soplos, compatible with all Soplos distributions. Toggling again hides the profile card. - Double-click protection: Install button is disabled immediately on click and re-enabled only if validation fails — prevents launching duplicate builds.
- DKMS rebuild explanation: MOK key dialog explains that DKMS automatically rebuilds NVIDIA modules on each new kernel install and that those modules need the signing key enrolled to load with Secure Boot active.
- Config resolution pass: A second
make olddefconfigis run after all profile and patch options are applied — prevents interactive configuration prompts appearing mid-build when new Kconfig symbols are introduced by a profile.
Added — Soplos Kernels Tab
- Soplos Kernels tab: New tab to install pre-built Soplos kernels (Stock, BORE, Zen, NTSYNC, BORE+NTSYNC, Real-Time) directly from the official Soplos repository — no compilation required.
- Tabbed interface: Main window now uses
Gtk.Notebookwith two tabs: «Build Kernel» and «Soplos Kernels». - Repository management: One-click button to add the Soplos kernels apt repository with GPG key verification.
- Dynamic kernel list: The Soplos Kernels tab reads available packages from apt-cache at runtime — any package added to the repository appears automatically without code changes.
- Refresh button: Forces
apt-get updateand reloads the kernel list. - Stock profile post-build: When building
with the hidden Stock profile, automatically creates the corresponding metapackage
.deband prompts to save all packages to a chosen folder — does not install the kernel on the system. - Kernel version display: Available version shown next to each kernel name in the Soplos Kernels tab.
- Update button: When a newer kernel version is available in the repository, an Update button appears — upgrades the metapackage and purges the old kernel image and headers automatically.
- Persistent build history: History file
moved to
~/.local/share/soplos-kernel-installer/history.json— survives build directory cleanup. Automatic migration from previous locations. - Clean package naming: Added
KDEB_PKGVERSION=1tomake bindeb-pkg— packages now namedlinux-image-7.0.3-soplos_1_amd64.debinstead of repeating the version twice.
Fixed
- Debug package generation: Fixed incorrect
generation of
-dbgpackages by correctingapply_to_configmethod. - History duplicates: Fixed duplicate
entries for versions like
7.0-rc6vs7.0.0-rc6. - Package isolation: Kernel packages
isolated in subdirectories (
~/kernel_build/{version}/with image + headers + libc-dev only). - External kernel tags: Correct automatic tagging of external kernels (XanMod, Liquorix, Zen, System…) in history.
- Patch state tracking: Added
.applied_patchesmetadata for proper patch conflict detection during source reuse. - Kernel profile bugs: Fixed PREEMPT_DYNAMIC, HZ, THP and DEBUG_INFO Kconfig choice block handling — all profiles now compile correctly.
- GPU detection: NVIDIA and Intel GPU detection now checks only display/VGA/3D lines in lspci output — AMD CPU lines no longer cause false positives.
- Base config fallback: Fixed
_find_base_config()Python literal bug — now correctly usesrun_command("uname -r")at runtime. - Path quoting: Fixed missing quotes around
paths in
cpandmake -Ccommands — prevents failures if paths contain spaces. - rt-i915 patch: CachyOS rt-i915 fix now only downloaded on systems with an Intel GPU.
- BORE fallback: BORE patch now falls back to CachyOS/kernel-patches when not available in the firelzrd repo.
- Cleanup checkbox: The «Clean build directory after installation» checkbox now actually triggers the cleanup.
- EOL kernel detection: End-of-Life kernels from kernel.org are now correctly parsed and shown as «(EOL)» with a red warning label.
- Mainline label: Mainline kernels (e.g. 7.0) are no longer incorrectly shown as «(latest)» — now correctly labelled «(mainline)».
- MOK signed kernel detection:
sb_has_mok_signed_kernels()now also physically verifies/boot/vmlinuz-*files withsbverify --cert MOK.pem. - Stock profile package naming: Removed trailing dash from package and kernel names when building with the Stock profile.
- Stock profile suffix matching: Fixed
_suffix_matchalways returning True for Stock profile — now correctly uses the computed suffix variable. - Soplos Kernels detection: Installed
kernel detection now checks
/boot/vmlinuz-*existence — correctly reflects actual status regardless of how the kernel was installed or removed. - Soplos Kernels remove button: Remove button stays active for installed kernels even when the repository is not configured.
- Cross-tab refresh: Kernel history list refreshes automatically after install/remove from the Soplos Kernels tab.
- Kernel release name: Now read from
include/config/kernel.releasein the source tree — correctly handles patch-injected version suffixes (e.g.zen1). - Stock post-build package discovery:
Fixed saving only the metapackage when a patch injects a version suffix —
last_kernel_releasecaptured before the build-only return. - Old kernel cleanup on update: After
updating a Soplos kernel, old image and headers are purged —
apt autoremovewas insufficient as manually-installed packages are not auto-removed.
Security
- MOK password injection fixed: Shell
injection vulnerability in MOK enroll/delete/reset operations — password is now
safely quoted with
shlex.quote()before being passed tomokutil. - Kernel name validation: Install button
validates the custom kernel name against
[a-zA-Z0-9._-]before proceeding — prevents invalid names reachingscripts/config. - Remove kernel validation:
remove_kernel()validates the release string against a strict regex before constructing any shell commands.
Improved
- Installation simplified to
sudo apt install soplos-kernel-installeronly. - Documentation: Updated README with new features and corrected screenshot paths.
- UI: Enhanced user experience with better feedback and navigation.
Translations
- 9 missing strings added across all 8 languages (en, es, de, fr, it, pt, ro, ru): mainline label, Soplos Stock profile name and description, EOL warning markup, invalid kernel name error, DKMS enrolled/not-enrolled texts, and post-install DKMS rebuild prompt.
ES
FR
PT
DE
IT
RO
RU