How to upgrade Linux Kernel on Ubuntu 20.04 to 5.16 Release

In this tutorial, we are going to learn how to upgrade Linux Kernel to 5.16 on Ubuntu 20.04.

Linux Kernel is a free and open-source, monolithic, modular, multitasking Unix-like operating system. It is the main component of a Linux operating system and is the core interface between the computer’s hardware and its processes. It makes communication possible between computer hardware and processes running on it and it manages resources effectively.

Linux 5.16 mainline was released recently by Linux Torvalds with better new features to try out. The mainline tree is maintained by Linus Torvalds and It is where all new features are added and releases always come from.

Notable updates on this release are:

  • Intel Advanced Matrix Extension support is now stable with this release.
  • This kernel now supports Rasperry-Pi compute modules
  • Raptor Lake p[rocessor support is included in this release.
  • It now bring support for Rockchips
  • It has added Apple magic keyboard

Table of Contents

  1. Run updates for your system
  2. Check the current version of Linux kernel you are running
  3. Download Linux kernel headers from Ubuntu Mainline
  4. Download Linux Kernel image
  5. Download modules required to build the kernel
  6. Install new kernel
  7. Reboot the system
  8. Conclusion

Upgrade Linux Kernel to 5.16 release

1. Run system update

The first thing to do is to run system updates on our Ubuntu 20.04 server. Use the following command on your terminal.

$ sudo apt update && apt upgrade -y

When upgrades and updates are complete, we can now begin to download headers, modules, and images.

2. Download Linux kernel Headers.

Linux kernel headers is a package providing the Linux kernel headers. These are part of the Kernel even though shipped separately. The headers act as an interface between internal kernel components and also between userspace and the kernel.

To download this package header, head over to the Ubuntu PPA mainline repository and make downloads for your amd64 system. We are going to download the following header files.

$ wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16-rc5/amd64/linux-headers-5.16.0-051600rc5_5.16.0-051600rc5.202112121931_all.deb

You will see the following output from your terminal.

output
--2021-12-14 08:44:29--  https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16-rc5/amd64/linux-headers-5.16.0-051600rc5_5.16.0-051600rc5.202112121931_all.deb
Resolving kernel.ubuntu.com (kernel.ubuntu.com)... 91.189.94.216
Connecting to kernel.ubuntu.com (kernel.ubuntu.com)|91.189.94.216|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12284980 (12M) [application/x-debian-package]
Saving to: ‘linux-headers-5.16.0-051600rc5_5.16.0-051600rc5.202112121931_all.deb’

linux-headers-5.16.0-051600r 100%[===========================================>]  11.72M  60.9MB/s    in 0.2s    

2021-12-14 08:44:30 (60.9 MB/s) - ‘linux-headers-5.16.0-051600rc5_5.16.0-051600rc5.202112121931_all.deb’ saved [12284980/12284980]

Another header file to download is this one.

$ wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16-rc5/amd64/linux-headers-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb

Sample output will look like this:

output
--2021-12-14 08:45:17--  https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16-rc5/amd64/linux-headers-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb
Resolving kernel.ubuntu.com (kernel.ubuntu.com)... 91.189.94.216
Connecting to kernel.ubuntu.com (kernel.ubuntu.com)|91.189.94.216|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2908436 (2.8M) [application/x-debian-package]
Saving to: ‘linux-headers-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb’

linux-headers-5.16.0-051600r 100%[===========================================>]   2.77M  --.-KB/s    in 0.1s    

2021-12-14 08:45:17 (27.9 MB/s) - ‘linux-headers-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb’ saved [2908436/2908436]

Note the difference between those headers

2. Download Linux kernel Modules

Linux kernel are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. A module can be configured as built-in or loadable. To dynamically load or remove a module, it has to be configured as a loadable module in the kernel configuration.

To download the Linux Kernel module run the following command on your terminal.

$ wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16-rc5/amd64/linux-modules-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb

Next is to download the image.

3. Download Linux Kernel Image

Linux kernel image is a snapshot of the Linux kernel that is able to run by itself after giving the control to it. For example, whenever you need to boot the system up, it will bootload an image from the hard disk.

To download the Linux Kernel image 5.16 run the following command on your terminal.

$ wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16-rc5/amd64/linux-image-unsigned-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb

Make sure you are seeing the image from the downloads.

Sample output will look like this:

Output
linux-image-unsigned-5.16.0- 100%[===========================================>]   9.85M  55.5MB/s    in 0.2s    

2021-12-14 08:47:29 (55.5 MB/s) - ‘linux-image-unsigned-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb’ saved [10329384/10329384]

Now that we have finished downloading images, modules, and headers it is now time to install them but first, let’s confirm our downloads.

$ ls
linux-headers-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb
linux-headers-5.16.0-051600rc5_5.16.0-051600rc5.202112121931_all.deb
linux-image-unsigned-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb
linux-modules-5.16.0-051600rc5-generic_5.16.0-051600rc5.202112121931_amd64.deb

4. Install Linux Kernel on Ubuntu 20.04

To install Linux Kernel 5.16, let’s run the following command;

$ sudo dpkg -i *.deb

Wait for the process to complete before restarting the system.

After you have restarted the system, check the Linux Kernel release installed.

$ uname -r

the output you will now get is like this;

5.16.0-051600rc5-generic

Conclusion

As you can see we have successfully upgraded from 5.4.0-88-generic to 5.16.0-051600rc5-generic, the latter being the latest release.

Best Books to learn Linux

  • How Linux Works, 3rd Edition: What Every Superuser Should Know
  • Understanding the Linux Kernel, Third Edition

About Mason Kipward

I am a technology enthusiast who loves to share gained knowledge through offering daily tips as a way of empowering others. I am fan of Linux and all other things open source.
View all posts by Mason Kipward →

Leave a Reply

Your email address will not be published.