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.
Table of Contents
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 https://pkgs.zabbly.com/key.asc | 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] https://pkgs.zabbly.com/kernel/stable $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:
neofetch
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
Conclusion
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.
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/Makefile.build:243: /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
Worked good 🙂
Doesn’t boot with this unfortunately
Hi,
Was secure boot disabled? Which debian version was this also? I’ll try and replicate.
Thanks
Awesome article and it all works flawlessly!
Thank you for the comment, glad it worked out well for you.