The Linux Kernel acts as the core of any Operating system by linking the hardware and software components and managing computer resources. It derives the name Kernel from the fact that it is inside like a seed in a hard shell. The Kernel exists in all Operating systems in phones, Pcs, servers e.t.c and manages the hardware.
The kernel is invisible to the user and works within its space normally known as the ‘little world‘. From its little world, it is able to perform the following tasks.
- Manage device drivers
- Memory management
- Process management
- System calls and security
Since the Kernel is a code, it can be developed and upgraded just like any other program. The default Linux Kernel available on Debian 12 is 6.10 and 5.10 on Debian 11. In this guide, we want to upgrade this Kernel version to Linux Kernel 6.15 which comes with a lot of amazing features such as:
- Latency profiling in the perf subsystem is made available so that system performance can be profiled and optimised by the developers in a more effective manner.
- Enhanced Memory Management: Introducing a new defrag_mode sysctl to reduce fragmentation and modifications in the buddy allocator to make allocations more efficient.
- Btrfs Changes: Btrfs supports faster and real-time Zstd compression levels -15 until -1 with improved performance but decreased compression ratio. It also defaults back to buffered writes in the case where direct I/O is attempted on files with checksums, decreasing virtual machine checksum mismatching.
- exFAT Performance Enhancement: Removing files on exFAT filesystems is dramatically faster, especially if using the “discard” mounting option. Removing an 80 GB file, for example, takes about 1.6 seconds compared to over 4 minutes.
fwctl
Subsystem: The fwctl subsystem introduces firmware management standardization to facilitate announced Remote Procedure Calls (RPCs) to firmware. This is necessary to allow secure device firmware configuration, update, and debugging from user space.- NOVA, a rust-based version of the Nouveau driver, an extremely early development stub of NOVA, is underway. In an early stage of development, it’s intended to provide improved support to newer GSP-based GPUs.
- Extended Device Support: Linux version 6.15 brings support for newer devices including Apple Touch Bar on Intel MacBook Pros, Samsung GalaxyBook functionality, Sony PlayStation 5 controllers, and Intel’s Killer E5000 Ethernet, to name a few.
- Python 3.9+ Requirement: To be compatible with current tools, the kernel code and the documentation are now Python 3.9 compliant.
Now let us dive into how to install Linux Kernel 6.15 on Debian 12 | Debian 11.
Getting Started
In this guide, you are required to have:
- A Debian 12 / Debian 11 system
- A user with root or sudo access
Install required packages and update your system to ensure that all the existing packages are in their latest stable versions.
sudo apt update
sudo apt install vim wget gnupg2 -y
sudo apt upgrade -y
Verify the Kernel version on your system.
$ uname -r
6.1.0-32-amd64
Step 1 – Download Linux Kernel 6.15 on Debian 12 | Debian 11
Download the Linux Kernel 6.15 stable Version from the Linux Kernel Archive page. You can also use wget
to pull the stable Linux Kernel 6.15 as below:
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.15.1.tar.xz
Also, download the GPG key signing:
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.15.1.tar.sign
With the download successful, extract the file archive:
tar -xvf linux-6.15.1.tar.xz
Using the GPG key, verify the archive as below
$ gpg --verify -vvvv linux-6.15.1.tar.sign
$ gpg --search-keys 38DBBDC86092693E
gpg: data source: https://keys.openpgp.org:443
(1) 4096 bit RSA key 38DBBDC86092693E, created: 2011-09-23
Keys 1-1 of 1 for "38DBBDC86092693E". Enter number(s), N)ext, or Q)uit > n
Step 2 – Install and Configure Kernel Modules on Debian 12 | Debian 11
Make configurations to the Linux Kernel and specify the needed kernel modules.
cd linux-6.15.1
sudo cp -v /boot/config-$(uname -r) .config
Proceed and install the required tools to compile the Linux Kernel 6.15 on Debian 12 | Debian 11.
sudo apt install -y build-essential dwarves python3 libncurses-dev flex bison libssl-dev bc libelf-dev
Configuring the Kernel on Debian 12 | Debian 11
This is an optional step to configure the Linux Kernel. Use the command below:
sudo make menuconfig
A text-based window will pop up as shown:

Configure the Kernel as per your preference, remember each option has a HELP button for better comprehending. Save the generated .config file and proceed.

Step 3 – Compile Linux Kernel Kernel 6.15 on Debian 12 | Debian 11
Now after all the required modules have been configured, we will proceed as below.
First, ensure that you have some free space on your system. The recommended space available should be at least 20GB, otherwise, the build will fail.
$ df -h
After checking the available space, compile the Linux Kernel 6.15 as below.
$ sudo make bzImage
This process takes some time depending on the resource of your system.

Fix the Error debian/certs/debian-uefi-certs.pem
During the make
process, you may encounter the below error.
make[1]: *** No rule to make target 'debian/certs/debian-uefi-certs.pem', needed by 'certs/x509_certificate_list'. Stop.
make: *** [Makefile:1868: certs] Error 2
Don’t worry about this error, fix it as below.
$ make localmodconfig
using config: '.config'
....
* Restart config...
...
Now repeat the make
process again.
sudo make bzImage
Now it should be successful and return the output:
..........
OBJCOPY arch/x86/boot/setup.bin
OBJCOPY arch/x86/boot/vmlinux.bin
HOSTCC arch/x86/boot/tools/build
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#1)
Install Modules
Install Linux Kernel modules:
sudo make modules
sudo make modules_install

Step 4 – Install Linux Kernel 6.15 on Debian 12 | Debian 11
Now we are set to install the compiled Linux Kernel 6.15:
$ sudo make install
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
sh ./arch/x86/boot/install.sh 6.15.1 \
arch/x86/boot/bzImage System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 6.15.1 /boot/vmlinuz-6.15.1
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 6.15.8 /boot/vmlinuz-6.15.1
update-initramfs: Generating /boot/initrd.img-6.15.1
......
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-6.15.1
Found initrd image: /boot/initrd.img-6.15.1
Found linux image: /boot/vmlinuz-6.1.0-32-amd64
Found initrd image: /boot/initrd.img-6.1.0-32-amd64
Found linux image: /boot/vmlinuz-6.1.0-31-amd64
Found initrd image: /boot/initrd.img-6.1.0-31-amd64
Found linux image: /boot/vmlinuz-6.1.0-30-amd64
Found initrd image: /boot/initrd.img-6.1.0-30-amd64
Found linux image: /boot/vmlinuz-6.1.0-25-amd64
Found initrd image: /boot/initrd.img-6.1.0-25-amd64
done
The command will install the files below in the /boot directory.
- initramfs-6.15.1.img
- vmlinuz-6.15.1
- System.map-6.15.1
Step 5 – Update Grub on Debian 12 | Debian 11.
For the changes made to take place, we need to update our GRUB on Debian 12 / Debian 11.
$ sudo update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-6.15.1
Found initrd image: /boot/initrd.img-6.15.1
Found linux image: /boot/vmlinuz-6.1.0-32-amd64
Found initrd image: /boot/initrd.img-6.1.0-32-amd64
Found linux image: /boot/vmlinuz-6.1.0-31-amd64
Found initrd image: /boot/initrd.img-6.1.0-31-amd64
Found linux image: /boot/vmlinuz-6.1.0-30-amd64
Found initrd image: /boot/initrd.img-6.1.0-30-amd64
Found linux image: /boot/vmlinuz-6.1.0-25-amd64
Found initrd image: /boot/initrd.img-6.1.0-25-amd64
done
Step 6 – Reboot your System
After the Linux Kernel 6.15 has been installed on Debian 12 | Debian 11 using one of the methods above, reboot your system to run the new Linux Kernel.
sudo reboot -i
The Linux kernel automatically switches to Linux Kernel 6.15 on Debian 12 / Debian 11.
Step 7 – Post Linux Kernel 6.15 Installation or Upgrade
Once the system successfully boots, verify the Linux Kernel.
$ uname -a
Linux debian 6.15.1 #1 SMP PREEMPT_DYNAMIC Debian 6.1.15 (2025-03-06) x86_64 GNU/Linux
Update your system.
sudo apt update && sudo apt upgrade
Conclusion
That is it! You have successfully installed the Linux Kernel 6.15 on Debian 12 | Debian 11. Now enjoy the amazingness of this latest Linux Kernel.
Interested in more: