How to Install Linux Kernel 6.7 on Debian 12 or 11

This guide will show you the steps to install Linux Kernel 6.7 on Debian 12 or 11 using the Zabbly Kernel for the most current and stable mainline release.

If you’re planning to upgrade to Linux Kernel 6.7 on your Debian 12 Bookworm or Debian 11 Bullseye system, it’s essential to follow these expert guidelines closely. This process involves using an unsigned kernel, which means you’ll need to disable secure boot before you begin.

Please proceed with caution, especially if you’re not an experienced Linux user or if you’re operating in a professional environment. Choosing to install an advanced version of the Linux Kernel, like 6.7, is often done for specific reasons. While it can enhance your system’s performance and fix compatibility issues with newer hardware, it’s important to be aware that it may also introduce new challenges or, in rare cases, affect your system’s stability.

Curious about what the Linux Kernel 6.7 brings to the table? Discover all the latest updates and features in Linux Kernel 6.7.

Firstly, as mentioned in the introduction, this method for installing Linux Kernel 6.7 is unsigned, so you’ll need to disable secure boot if you want to use it.

Secondly, do not install this upstream Linux Kernel unless you have a specific reason. Upstream Kernels can increase performance and fix hardware issues but can also introduce new issues or, in the rare event, break your system.

Import Zabbly APT Repository For Linux Kernel 6.7

Step 1: Update Debian Before Linux Kernel 6.7 Installation

Before installing Linux Kernel 6.7, update your system with all available packages.

First, run the update command:

sudo apt update

Proceed to upgrade any outdated packages using the following command.

sudo apt upgrade

Step 2: Import Linux Zabbly APT Repository on Debian 12 or 11

Zabbly offers specialized Linux kernel builds for Debian and Ubuntu. These builds support a broad range of hardware and are ideal for running Incus containers and virtual machines. They’re based on the recent stable mainline Linux kernel and receive weekly updates.

Start by installing the necessary packages:

sudo apt install lsb-release software-properties-common apt-transport-https ca-certificates curl -y

Next, import the Linux Zabbly Kernel GPG key with the following command:

curl -fSsL | gpg --dearmor | sudo tee /usr/share/keyrings/linux-zabbly.gpg > /dev/null

Lastly, import the APT Linux Zabbly Kernel APT repository with the following command:

codename=$(lsb_release -sc) && echo deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/linux-zabbly.gpg] $codename main | sudo tee /etc/apt/sources.list.d/linux-zabbly.list

If you’re experiencing background noise on Debian 11 with Zabbly such as no package found, it may be due to Zabbly only supporting both amd64 on Debian 11 where Debian 12 supports amd64 and arm64.

To resolve the issue, Debian 11 users may need to remove “arm64” from the [arch=amd64,arm64] configuration.

Install Linux Kernel 6.7 on Debian 12 or 11

Step 1: Refresh APT Index

Now, with the Linux Zabbly Kernel repository imported, first run a quick update with the following command:

sudo apt update

Step 2: Install Linux Kernel 6.7 via APT Command

Now run the following command to install the Linux Kernel 6.7 on your system:

sudo apt install linux-zabbly

Once the installation process is complete, reboot your system:

sudo reboot

Verify Linux Kernel 6.7 Installation on Debian 12 or 11

Before proceeding, the first step is to refresh your repository to reflect the changes made to your sources list and preferences.

uname -r

If you have Neofetch installed, you can print your system specs in pretty text with the following command:


And that is it; keep the Kernel updated like you would with all your APT packages.

Additional: How to Restore Debian Default Kernel

It’s important to note that some users may encounter issues with their hardware, such as loss of sound when using the new Linux Kernel.

Step 1: Remove Linux Kernel 6.7 via APT Command

To remove the Kernel, the first step is to execute the following command.

sudo apt remove linux-zabbly linux-headers-*-zabbly* linux-image-*-zabbly*

Step 2: Remove Zabbly APT Repository

For those that are removing Linux Kernel 6.7 and reverting to the default Debian kernel permanently, remove the APT repository you imported with the following command:

sudo rm /etc/apt/sources.list.d/linux-zabbly.list

After sorting the preferences file or if you went a step further and removed the unstable repositories, it’s time to execute an APT update.

sudo apt update

Step 3: Reboot System

Reboot your system to finalize the removal of Linux Kernel 6.7:

sudo reboot

Step 4: Verify Linux Kernel 6.7 Removal

Now verify the Kernel installed, which should be the default generic kernel.

uname -r


After you install the Linux 6.7 kernel from the Zabbly kernel repository on Debian 12 (Bookworm) or Debian 11 (Bullseye), you should see a significant improvement if you have new hardware. The gains are minimal for most, but remember to keep the kernel up-to-date as many updates will be pushed in the future, more than what your original kernel would see.

6 thoughts on “How to Install Linux Kernel 6.7 on Debian 12 or 11”

  1. Didn’t work for me (Debian Bookworm):

    DKMS make.log for xtrx-0.0.1+git20190320.5ae3a3e-3.2 for kernel 6.6.7-zabbly+ (x86_64)
    Mo 18. Dez 09:48:55 CET 2023
    make: Verzeichnis „/usr/src/linux-headers-6.6.7-zabbly+“ wird betreten
    CC [M] /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.o
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c: In function ‘xtrxfd_mmap’:
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:1075:31: error: assignment of read-only member ‘vm_flags’
    1075 | vma->vm_flags |= VM_LOCKED;
    | ^~
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:1090:31: error: assignment of read-only member ‘vm_flags’
    1090 | vma->vm_flags |= VM_IO;
    | ^~
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:1115:31: error: assignment of read-only member ‘vm_flags’
    1115 | vma->vm_flags |= VM_LOCKED;
    | ^~
    In file included from ./include/linux/linkage.h:7,
    from ./arch/x86/include/asm/cache.h:5,
    from ./include/linux/cache.h:6,
    from ./include/linux/time.h:5,
    from ./include/linux/stat.h:19,
    from ./include/linux/module.h:13,
    from /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:22:
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c: In function ‘xtrx_init’:
    ./include/linux/export.h:29:22: error: passing argument 1 of ‘class_create’ from incompatible pointer type [-Werror=incompatible-pointer-types]
    29 | #define THIS_MODULE (&__this_module)
    | ~^~~~~~~~~~~~~~~
    | |
    | struct module *
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:1523:35: note: in expansion of macro ‘THIS_MODULE’
    1523 | xtrx_class = class_create(THIS_MODULE, CLASS_NAME);
    | ^~~~~~~~~~~
    In file included from ./include/linux/device.h:31,
    from ./include/linux/pci.h:37,
    from /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:25:
    ./include/linux/device/class.h:230:54: note: expected ‘const char *’ but argument is of type ‘struct module *’
    230 | struct class * __must_check class_create(const char *name);
    | ~~~~~~~~~~~~^~~~
    /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.c:1523:22: error: too many arguments to function ‘class_create’
    1523 | xtrx_class = class_create(THIS_MODULE, CLASS_NAME);
    | ^~~~~~~~~~~~
    ./include/linux/device/class.h:230:29: note: declared here
    230 | struct class * __must_check class_create(const char *name);
    | ^~~~~~~~~~~~
    cc1: some warnings being treated as errors
    make[2]: *** [scripts/ /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build/xtrx.o] Fehler 1
    make[1]: *** [/usr/src/linux-headers-6.6.7-zabbly+/Makefile:1913: /var/lib/dkms/xtrx/0.0.1+git20190320.5ae3a3e-3.2/build] Fehler 2
    make: *** [Makefile:234: __sub-make] Fehler 2
    make: Verzeichnis „/usr/src/linux-headers-6.6.7-zabbly+“ wird verlassen


Leave a Comment

Your Mastodon Instance
Share to...