How to Install XanMod Kernel on Debian 13 and 12

Last updated Sunday, March 15, 2026 3:18 pm 15 min read

Desktop workloads that need better frame pacing, lower input latency, or faster network recovery often outgrow Debian’s stock kernel. You can install XanMod kernel on Debian 13 and 12 from the official APT repository, keep it updated through normal package management, and choose the branch that matches your CPU and workload.

On Linux, XanMod ships as ready-made kernel packages rather than a patch set you build by hand. Those packages add CPU-targeted builds, aggressive scheduler and memory tuning, and BBRv3 as the default TCP congestion control, which makes the project attractive for gaming, audio work, and other high-response desktop systems.

Check XanMod Support and Requirements on Debian

Start by confirming that your Debian release and CPU architecture match XanMod’s current repository support. XanMod packages are built for 64-bit x86 systems only, so ARM systems and 32-bit Debian installs need a different kernel path.

uname -m
x86_64

Next, confirm your Debian release codename:

. /etc/os-release && printf '%s %s\n' "$VERSION_ID" "$VERSION_CODENAME"
13 trixie

Continue only on Debian 13 (trixie) or Debian 12 (bookworm). As of March 2026, XanMod publishes signed repository metadata for those suites, while Debian 11 (bullseye) returns a missing Release file and is no longer supported by the repository.

XanMod also requires Secure Boot to be disabled. The kernel is not signed with Microsoft’s third-party UEFI key, so firmware with Secure Boot enabled will refuse to load it even when the packages install correctly.

Install XanMod Kernel on Debian

The official APT repository is the supported installation path for Debian. It keeps future XanMod updates inside normal package management instead of turning kernel maintenance into a manual download job.

Update Debian Before XanMod Installation

Refresh your package metadata and apply any pending upgrades before you add a new kernel repository. That reduces header, toolchain, and dependency mismatches later in the install.

sudo apt update && sudo apt upgrade

If your account does not already have sudo privileges, add a user to sudoers on Debian before you continue.

A kernel change is a good time to create a rollback point. If you want snapshot-based recovery before you switch kernels, install Timeshift on Debian first.

Install XanMod Repository Prerequisites on Debian

Minimal Debian installs do not always include the HTTPS certificate bundle, GPG tooling, or the download utility used in the next steps. Install them now so the key import and repository write work on both Debian 13 and 12.

sudo apt install -y ca-certificates gpg wget

The -y flag accepts APT’s confirmation prompt automatically so the command finishes in one paste. The next step uses the wget download utility with -qO- to send the key directly into GPG without saving a temporary file first.

Add the XanMod GPG Key on Debian

XanMod serves its repository key in ASCII-armored format, so APT needs it converted into a binary keyring first. Store the converted key under /usr/share/keyrings/, which is the preferred Debian location for repository signing keys.

wget -qO- https://dl.xanmod.org/archive.key | sudo gpg --dearmor --yes -o /usr/share/keyrings/xanmod-archive-keyring.gpg

The --yes flag makes the command rerunnable without a TTY prompt, and gpg --dearmor converts the armored key into the format APT reads during package verification.

Add the XanMod Repository on Debian

Write the repository in DEB822 format, which is Debian’s preferred source-file style. This block reads your codename from /etc/os-release and writes the source file as root in one step.

. /etc/os-release
printf '%s\n' \
  "Types: deb" \
  "URIs: https://deb.xanmod.org" \
  "Suites: $VERSION_CODENAME" \
  "Components: main" \
  "Signed-By: /usr/share/keyrings/xanmod-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/xanmod-release.sources > /dev/null

The $VERSION_CODENAME value expands to trixie on Debian 13 or bookworm on Debian 12. The sudo tee part matters because a plain > redirection would try to write the file from your unprivileged shell.

cat /etc/apt/sources.list.d/xanmod-release.sources
Types: deb
URIs: https://deb.xanmod.org
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/xanmod-archive-keyring.gpg

On Debian 12, the Suites line shows bookworm instead.

Refresh APT Metadata for XanMod on Debian

Once the source file exists, refresh APT so Debian can read the XanMod package index and expose the kernel metapackages.

sudo apt update
Get:4 https://deb.xanmod.org trixie InRelease [4,909 B]
Get:5 https://deb.xanmod.org trixie/main amd64 Packages [33.0 kB]

Debian 12 shows the same fetch lines with bookworm in place of trixie. Check a package candidate before you install anything so you know the repository is working and the metapackage name is valid on your release.

apt-cache policy linux-xanmod-x64v3
linux-xanmod-x64v3:
  Installed: (none)
  Candidate: 6.x.x-xanmod1-0
  Version table:
     6.x.x-xanmod1-0 500
        500 https://deb.xanmod.org trixie/main amd64 Packages

The exact version changes as XanMod publishes new builds, and Debian 12 shows bookworm where Debian 13 shows trixie.

Detect Your CPU Level for XanMod on Debian

XanMod ships CPU-targeted packages instead of one generic metapackage for every amd64 system. The upstream check_x86-64_psabi.sh script tells you which package suffix your CPU can use before you install anything.

wget -q https://dl.xanmod.org/check_x86-64_psabi.sh
chmod +x check_x86-64_psabi.sh

The chmod +x step adds execute permission so Debian can run the downloaded file as a program instead of treating it like plain text. If you want a quick refresher on that flag, see the guide to the chmod command in Linux with examples.

Run the script from the same directory to print the CPU level it detected:

./check_x86-64_psabi.sh
CPU supports x86-64-v3

An x86-64-v3 result is the normal outcome on most modern desktop CPUs. Older but still 64-bit capable systems may report x86-64-v2, while much older hardware may need the legacy x86-64-v1 path.

  • If the script reports x86-64-v3, use the matching x64v3 package such as linux-xanmod-x64v3, linux-xanmod-lts-x64v3, or linux-xanmod-rt-x64v3.
  • If the script reports x86-64-v2, use the matching x64v2 package name for the branch you want.
  • If the script reports x86-64-v1, only the LTS branch provides a package for that level: linux-xanmod-lts-x64v1.

There is no separate linux-xanmod-x64v4 or linux-xanmod-x64v5 metapackage. CPUs that support newer instruction levels still use the x64v3 package family.

Choose the Right XanMod Branch on Debian

The current Debian repository centers on three normal branches: MAIN, LTS, and RT. Pick the branch that matches your stability expectations before you install the metapackage.

XanMod branchMeta-package examplesCPU levelsBest forTrade-off
MAINlinux-xanmod-x64v2, linux-xanmod-x64v3x64v2, x64v3Gaming, fast desktops, general performance tuningFastest-moving general-purpose XanMod branch
LTSlinux-xanmod-lts-x64v1, linux-xanmod-lts-x64v2, linux-xanmod-lts-x64v3x64v1, x64v2, x64v3Systems that need better DKMS compatibility and slower branch churnOlder kernel base than MAIN
RTlinux-xanmod-rt-x64v2, linux-xanmod-rt-x64v3x64v2, x64v3Real-time audio and very low-jitter workloadsMore specialized branch, not the default choice for every desktop

Think of this as a two-part choice. The detection script decides the x64v1, x64v2, or x64v3 suffix, while MAIN, LTS, or RT decides the tuning and release cadence. For example, an x86-64-v3 system can install linux-xanmod-x64v3, linux-xanmod-lts-x64v3, or linux-xanmod-rt-x64v3.

Install Your XanMod Package on Debian

Choose one branch and one CPU level, then install the matching metapackage. Most desktop systems from the last decade land on the MAIN x64v3 package.

Install XanMod MAIN on Debian

Use MAIN when you want the normal XanMod experience with the newest performance-focused branch.

# Most desktop systems from roughly 2015 onward
sudo apt install -y linux-xanmod-x64v3

# Older CPUs that still meet x86-64-v2 requirements
sudo apt install -y linux-xanmod-x64v2

A successful install on the current Debian 13 and 12 repository resolves the metapackage plus the matching image and headers:

The following NEW packages will be installed:
  linux-headers-6.19.8-x64v3-xanmod1 linux-image-6.19.8-x64v3-xanmod1 linux-xanmod-x64v3
0 upgraded, 3 newly installed, 0 to remove and xx not upgraded.

Install XanMod LTS on Debian

Use LTS first if you rely on NVIDIA, VirtualBox, VMware, ZFS, or anything else that must rebuild out-of-tree kernel modules after updates.

# Modern CPUs
sudo apt install -y linux-xanmod-lts-x64v3

# Older but still x86-64-v2 capable CPUs
sudo apt install -y linux-xanmod-lts-x64v2

# Very old 64-bit CPUs that need the legacy x64v1 build
sudo apt install -y linux-xanmod-lts-x64v1

Install XanMod RT on Debian

Use RT only when you specifically need the real-time branch for audio production or other low-jitter workloads.

# Modern CPUs
sudo apt install -y linux-xanmod-rt-x64v3

# Older but still x86-64-v2 capable CPUs
sudo apt install -y linux-xanmod-rt-x64v2

Install XanMod DKMS Build Tools on Debian

Install the DKMS toolchain if you plan to build third-party modules against XanMod headers. That includes systems where you later install NVIDIA drivers on Debian or use other DKMS-backed software.

sudo apt install -y --no-install-recommends dkms libdw-dev clang lld llvm

XanMod is built with Clang and LLVM, so having the same toolchain available helps DKMS jobs line up with the headers you just installed.

Reboot into the XanMod Kernel on Debian

The kernel packages do not become active until the next boot. Reboot once the install finishes so GRUB can load the new XanMod image.

sudo reboot

Debian’s stock kernel stays in GRUB as a fallback, which is useful if you later need to roll back or remove XanMod.

Verify XanMod Kernel on Debian

Do not stop at the reboot. Confirm the active kernel string, the default TCP congestion control, and the matching header package so you know the switch really completed.

Confirm the Active XanMod Kernel on Debian

The quickest verification is the running kernel release string.

uname -r
6.19.8-x64v3-xanmod1

That is the verified Debian 13 and 12 MAIN output as of March 2026. If you install LTS or RT, the string still ends in xanmod1 but reflects the branch and CPU level you chose.

Confirm BBRv3 on XanMod on Debian

XanMod’s BBRv3 support is one of the most common reasons readers pick this kernel, so verify it directly instead of assuming it is active.

Debian SSH sessions can leave /usr/sbin outside a regular user’s PATH, so this check uses the absolute command path that worked during live validation:

sudo /usr/sbin/sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr

If you want to test throughput changes or compare BBR behavior against another kernel, enable BBR on Debian for the full tuning and verification workflow.

Confirm Matching XanMod Headers on Debian

Header alignment matters for DKMS rebuilds. This package query expands your active kernel string inside the match so you can confirm that the installed header package matches the running XanMod kernel exactly.

dpkg -l | grep "linux-headers-$(uname -r)"
ii  linux-headers-6.19.8-x64v3-xanmod1      6.19.8-x64v3-xanmod1-0~20260314.g7e750f0 amd64        Linux kernel headers for 6.19.8-x64v3-xanmod1 on amd64

If the command returns nothing, reinstall the matching metapackage and reboot again before you try to build external modules.

Manage XanMod Kernel on Debian

Once XanMod is installed, routine maintenance stays simple. You update through APT, keep the same branch by using the matching metapackage, and remove it like any other kernel package set when you want to return to Debian’s default kernel.

Update XanMod on Debian

Use the same metapackage you installed earlier when you want a branch-specific update. This command updates the MAIN x64v3 package; replace it with your LTS or RT metapackage if that is what you installed.

sudo apt update
sudo apt install --only-upgrade -y linux-xanmod-x64v3

Reboot after the upgrade so the new kernel loads. Routine full-system upgrades also pull newer XanMod builds, and you can configure unattended upgrades on Debian for the rest of your package maintenance.

Remove XanMod and Restore Debian’s Default Kernel

Do not purge the kernel you are currently running. Install Debian’s stock metapackages first, boot into the non-XanMod kernel, and only then remove the XanMod image, headers, and repository files.

Removing kernel packages can leave you without a safe fallback if you skip the stock-kernel step. Verify that GRUB still offers a non-XanMod entry before you start purging packages.

Install Debian’s Default Kernel Before Removing XanMod

Reinstall Debian’s normal kernel metapackages first so GRUB has a stock kernel ready for the next reboot.

sudo apt install -y linux-image-amd64 linux-headers-amd64

On both Debian 13 and 12, this metapackage can pull a newer stock kernel than the one already on disk. That is normal, and the reboot is still successful as long as the running kernel string no longer includes xanmod.

uname -r
6.12.74+deb13+1-amd64

That is the verified Debian 13 rollback output. Debian 12 returned 6.1.0-44-amd64 after the same stock-kernel restore step.

Purge XanMod Packages on Debian

Once you are back on Debian’s stock kernel, purge the XanMod metapackages, images, and headers, then clean out orphaned dependencies.

sudo apt purge -y 'linux-xanmod-*' 'linux-image-*-xanmod*' 'linux-headers-*-xanmod*'
sudo apt autoremove -y --purge

APT may print several is not installed lines while it evaluates all matching XanMod package names across MAIN, LTS, and RT branches. That is normal as long as the actual installed XanMod image, headers, and metapackage are removed.

apt autoremove --purge can also remove older Debian fallback kernels that are no longer referenced by the linux-image-amd64 metapackage. On live Debian 13 and 12 tests, it removed one older stock kernel while keeping the current Debian fallback intact.

Remove the XanMod Repository Files on Debian

Delete the DEB822 source file and signing key so APT stops checking the XanMod repository during future updates.

sudo rm /etc/apt/sources.list.d/xanmod-release.sources
sudo rm /usr/share/keyrings/xanmod-archive-keyring.gpg

Rebuild GRUB and Verify XanMod Removal on Debian

Refresh APT, rebuild GRUB, reboot, and then verify both the packages and repository files are gone.

sudo apt update
sudo update-grub
sudo reboot

After the reboot, confirm that no XanMod packages remain:

dpkg -l | grep xanmod || echo No XanMod packages remain
No XanMod packages remain

Then verify that the source file and key file are gone and that Debian is back on its normal kernel naming:

test ! -e /etc/apt/sources.list.d/xanmod-release.sources && echo repository file removed
test ! -e /usr/share/keyrings/xanmod-archive-keyring.gpg && echo key removed
uname -r
repository file removed
key removed
6.12.74+deb13+1-amd64

Debian 12 returned the same two cleanup lines followed by 6.1.0-44-amd64.

Compare XanMod With Other Debian Kernel Options

XanMod is not the only path when you want more performance or newer kernel behavior on Debian. The comparison here makes it easier to weigh stock stability, low-latency tuning, and upstream-focused alternatives.

Kernel optionPrimary focusBest forTrade-off
Debian stock kernelStability and broad hardware coverageServers, conservative desktops, rollback safetyLess aggressive tuning and slower new-feature uptake
XanMod MAINDesktop responsiveness, gaming, and throughputGaming systems, creator workstations, high-response desktopsFaster-moving branch with more frequent kernel turnover
XanMod LTSLower latency with better module compatibilityNVIDIA, VirtualBox, VMware, ZFS, and other DKMS-heavy systemsOlder kernel base than MAIN, fewer brand-new features
Liquorix kernelLow-latency desktop tuningInteractive desktops and multimedia workloadsDifferent tuning profile and package naming than XanMod
Latest upstream kernelCloser-to-upstream features and driversHardware enablement testing and upstream-focused setupsLess downstream tuning for desktop latency
  • Keep Debian’s stock kernel when uptime and conservative testing matter more than responsiveness tweaks.
  • Choose XanMod MAIN for the simplest performance-focused Debian setup on modern desktop hardware.
  • Choose XanMod LTS first if you depend on external kernel modules that have to rebuild after every kernel update.
  • Look at Liquorix or a mainline kernel if you want a different balance between low latency and upstream behavior.

If you would rather stay closer to upstream, install the latest Linux kernel on Debian. If you want another low-latency desktop option, install Liquorix kernel on Debian instead.

Troubleshoot XanMod Kernel on Debian

Most XanMod issues on Debian fall into three buckets: boot failures, DKMS rebuild failures, or repository configuration problems. Start with the symptom that matches what your system is doing instead of trying random kernel fixes.

Recover a Debian System That Fails to Boot After XanMod Installation

If Debian hangs at boot, drops to a blank screen, or panics after the XanMod install, boot back into Debian’s stock kernel from GRUB first. That gives you a safe base to remove XanMod or switch to the LTS branch.

  1. Reboot and force the GRUB menu to appear, usually by holding Shift right after firmware startup.
  2. Open Advanced options for Debian.
  3. Select a kernel entry that does not include xanmod in the version string.
  4. After Debian starts, either remove XanMod or reinstall using the XanMod LTS branch.

Fix DKMS or NVIDIA Modules That Fail on XanMod on Debian

Out-of-tree modules have to rebuild for every new kernel. When they lag behind the current XanMod branch, Debian usually leaves a DKMS error behind instead of loading the module cleanly.

Error! Bad return status for module build on kernel: 6.19.8-x64v3-xanmod1
Consult /var/lib/dkms/<module>/<version>/build/make.log for more information.

Check the current DKMS state first:

sudo dkms status
nvidia/550.xx, 6.19.8-x64v3-xanmod1, x86_64: added

Install the DKMS toolchain if it is missing, then rebuild all modules against the active XanMod headers:

sudo apt install -y --no-install-recommends dkms libdw-dev clang lld llvm
sudo dkms autoinstall

Recheck DKMS afterward:

sudo dkms status
nvidia/550.xx, 6.19.8-x64v3-xanmod1, x86_64: installed

If the rebuild still fails, move to the XanMod LTS branch and then install NVIDIA drivers on Debian again against that slower-moving kernel series.

Fix XanMod Repository Errors on Debian

The most common XanMod repository failure on Debian is using an unsupported release codename. Bullseye is the usual example because the repository no longer publishes a Release file for Debian 11.

E: The repository 'https://deb.xanmod.org bullseye Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Confirm your codename first:

. /etc/os-release && printf '%s\n' "$VERSION_CODENAME"
trixie

For the stable Debian releases covered here, only trixie and bookworm work. XanMod also lists newer development suites upstream, but bullseye is unsupported and fails with a missing Release file. If you already run trixie or bookworm, recheck the source file and key path before you rerun sudo apt update.

cat /etc/apt/sources.list.d/xanmod-release.sources
Types: deb
URIs: https://deb.xanmod.org
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/xanmod-archive-keyring.gpg

Disable Secure Boot Before Booting XanMod on Debian

If Debian keeps booting the stock kernel even though the XanMod packages installed, Secure Boot is the first thing to check. Disable it in your firmware settings, save the change, and then boot the XanMod entry again from GRUB.

Some firmware offers an option to enroll an unsigned EFI image manually instead of fully disabling Secure Boot, but the workflow is hardware-specific and usually has to be repeated after kernel updates. For most Debian desktop systems, disabling Secure Boot is the cleaner path when you choose XanMod.

XanMod Kernel on Debian FAQ

What is XanMod kernel on Debian?

XanMod is a performance-tuned Linux kernel package set for Debian that focuses on lower latency, CPU-targeted builds, and newer desktop-oriented tuning than Debian’s stock kernel. You install it through APT rather than compiling a kernel by hand.

Does XanMod include BBRv3 by default on Debian?

Yes. Current XanMod builds on supported Debian releases expose BBR as the active TCP congestion control by default. Verify it with sudo /usr/sbin/sysctl net.ipv4.tcp_congestion_control after the reboot.

Does XanMod still support Debian 11?

No. As of March 2026, the XanMod Debian repository publishes signed metadata for trixie and bookworm, while bullseye returns a missing Release file. Upgrade Debian before you try to install XanMod from the repository.

How do I remove XanMod and go back to Debian’s default kernel?

Install linux-image-amd64 and linux-headers-amd64 first, reboot into the stock Debian kernel, purge the XanMod image, header, and meta-packages, remove the XanMod source file and key, rebuild GRUB, and then verify uname -r no longer shows xanmod.

Conclusion

XanMod kernel on Debian now gives you an APT-managed path to lower-latency tuning, CPU-targeted packages, and BBRv3 without compiling a kernel by hand. Keep Debian’s stock kernel in GRUB as your fallback, use the LTS branch when DKMS compatibility matters, and check the official XanMod website when you want the current release notes.

Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffee Buy me a coffee

Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Leave a Comment

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: