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