Periodically new devices and technology coming out and it’s important to keep our Linux system kernel up-to-date if we want to get the most of out it.
Moreover, updating system kernel will ease us to take advantage of new kernel functions and also it helps us to protect ourselves from vulnerabilities that have been found in earlier versions.
Suggested Read: How to Upgrade Kernel in CentOS 7
Ready to update your kernel on Ubuntu and Debian or one of their derivatives such as Linux Mint? If so, keep reading!
Check Installed Kernel Version
To find the current version of installed kernel on our system we can do:
$ uname -sr
The following shows the output of the above command in a Ubuntu 18.04 server:
Linux 4.15.0-42-generic
Upgrading Kernel in Ubuntu Server
To upgrade the kernel in Ubuntu, go to http://kernel.ubuntu.com/~kernel-ppa/mainline/ and choose the desired version (Kernel 5.0 is the latest at the time of writing) from the list by clicking on it.
Next, download the .deb
files for your system architecture using wget command.
Download Linux Kernel for 32-Bit System
$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_i386.deb
Download Linux Kernel for 64-Bit System
$ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-image-unsigned-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb $ wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0/linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb
Once you’ve downloaded all the above kernel files, now install them as follows:
$ sudo dpkg -i *.deb
Sample Output
(Reading database ... 140176 files and directories currently installed.) Preparing to unpack linux-headers-5.0.0-050000_5.0.0-050000.201903032031_all.deb ... Unpacking linux-headers-5.0.0-050000 (5.0.0-050000.201903032031) over (5.0.0-050000.201903032031) ... Preparing to unpack linux-headers-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb ... Unpacking linux-headers-5.0.0-050000-generic (5.0.0-050000.201903032031) over (5.0.0-050000.201903032031) ... Preparing to unpack linux-image-unsigned-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb ... Unpacking linux-image-unsigned-5.0.0-050000-generic (5.0.0-050000.201903032031) over (5.0.0-050000.201903032031) ... Selecting previously unselected package linux-modules-5.0.0-050000-generic. Preparing to unpack linux-modules-5.0.0-050000-generic_5.0.0-050000.201903032031_amd64.deb ... Unpacking linux-modules-5.0.0-050000-generic (5.0.0-050000.201903032031) ... Setting up linux-headers-5.0.0-050000 (5.0.0-050000.201903032031) ... Setting up linux-headers-5.0.0-050000-generic (5.0.0-050000.201903032031) ... Setting up linux-modules-5.0.0-050000-generic (5.0.0-050000.201903032031) ... Setting up linux-image-unsigned-5.0.0-050000-generic (5.0.0-050000.201903032031) ... Processing triggers for linux-image-unsigned-5.0.0-050000-generic (5.0.0-050000.201903032031) ... /etc/kernel/postinst.d/initramfs-tools: update-initramfs: Generating /boot/initrd.img-5.0.0-050000-generic /etc/kernel/postinst.d/x-grub-legacy-ec2: Searching for GRUB installation directory ... found: /boot/grub Searching for default file ... found: /boot/grub/default Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst Searching for splash image ... none found, skipping ... Found kernel: /boot/vmlinuz-4.15.0-42-generic Found kernel: /boot/vmlinuz-4.15.0-29-generic Found kernel: /boot/vmlinuz-5.0.0-050000-generic Found kernel: /boot/vmlinuz-4.15.0-42-generic Found kernel: /boot/vmlinuz-4.15.0-29-generic Replacing config file /run/grub/menu.lst with new version Updating /boot/grub/menu.lst ... done /etc/kernel/postinst.d/zz-update-grub: Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.0.0-050000-generic Found initrd image: /boot/initrd.img-5.0.0-050000-generic Found linux image: /boot/vmlinuz-4.15.0-42-generic Found initrd image: /boot/initrd.img-4.15.0-42-generic Found linux image: /boot/vmlinuz-4.15.0-29-generic Found initrd image: /boot/initrd.img-4.15.0-29-generic done
Once the installation is complete, reboot
your machine and verify that the new kernel version is being used:
$ uname -sr
And that’s it. You are now using a much more recent kernel version than the one installed by default with Ubuntu.
Summary
In this article we’ve shown how to easily upgrade the Linux kernel on Ubuntu system. There is yet another procedure which we haven’t showed here as it requires compiling the kernel from source, which is not recommended on production Linux systems.
If you’re still interested in compiling the kernel as a learning experience, you will get the instructions on how to do it at the Kernel Newbies page.
As always, feel free to use the form below if you have any questions or comments about this article.
There is problems with amd64/…5.11.17(and above)….generic and dependence libc6.
https://answers.launchpad.net/umkl/+question/696873