Based on the latest stable release of Linux Kernel mainline, this guide will demonstrate how to install Linux Kernel 6.8 on Debian 12 or 11 using the command-line terminal and Zabbly Kernel. Upgrading to the newest kernel version ensures enhanced performance, improved security, and access to the latest features and hardware support. Whether you are a system administrator or a Linux enthusiast, following these straightforward steps will enable you to update your Debian system efficiently.
Import Zabbly APT Repository For Linux Kernel 6.8
Update Debian Before Linux Kernel 6.8 Installation
Before installing Linux Kernel 6.8, 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
Import Linux Zabbly APT Repository
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
Note: 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, whereas Debian 12 supports amd64 and arm64. Debian 11 users may need to remove “arm64” from the [arch=amd64,arm64] configuration to resolve the issue.
Install Linux Kernel 6.8 on Debian
Refresh APT Index
Now, with the Linux Zabbly Kernel repository imported, first run a quick update with the following command:
sudo apt update
Install Linux Kernel 6.8 via APT Command
Now run the following command to install the Linux Kernel 6.8 on your system:
sudo apt install linux-zabbly
Once the installation process is complete, reboot your system:
sudo reboot
Verify Linux Kernel 6.8 Installation on Debian
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.
Remove Linux Kernel 6.8 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*
Remove Zabbly APT Repository
For those that are removing Linux Kernel 6.8 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
Reboot System
Reboot your system to finalize the removal of Linux Kernel 6.8:
sudo reboot
Verify Linux Kernel 6.8 Removal
Now verify the Kernel installed, which should be the default generic kernel.
uname -r
Conclusion
After you install the Linux 6.8 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.
Does not work on Debian 10, there is no support for Buster on Zabbly!
Hi Dan,
I apologize for the inconvenience caused by the page title issue; it has been corrected to prevent any future confusion. Regarding your concern about Zabbly’s support for Debian 10, it appears there is no direct support for Buster.
To address this, you might consider using XanMod or Liquorix, or building your own kernel from the source. Be aware that building a kernel can be time-consuming and requires some confidence in handling Linux environments.
Best regards,
Josh
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.