Recent versions of the Linux kernel have drivers for new devices and other innovations. Unfortunately, many popular Linux distributions are in no rush to update their kernel. This tutorial will show you how easy it is to install any version of the Linux kernel on Ubuntu and Linux Mint without compiling. You can choose to install either a newer kernel or an older one than your distribution's repository suggests.
If you wish, you can easily remove the installed Linux kernels and return to the kernel from the repository.
Since Linux Mint is based on Ubuntu, this instruction is fully applicable to Linux Mint distributions, except for LMDE. For LMDE (Linux Mint Debian Edition) see “How to Install the Latest Linux Kernels on Debian and Debian Based Distributions”.
Kernel update warning
It should be remembered that due to the incompatibility of the kernel with programs (first of all, with proprietary GPU drivers), you may encounter problems, including a black screen during boot.
In most cases, the problems encountered can be resolved without reinstalling the distribution. Start by going to the advanced options in the boot menu and boot with the previous version of the kernel. When the computer boots up, remove the problematic kernel.
Proprietary graphics card drivers can cause problems, as older versions may not be compatible with the latest kernels without a patch. If you have proprietary video drivers installed, then seriously consider before following the instructions below. Also get ready, look for instructions on how to solve the problem when loading the distribution into a black screen.
Owners of old distributions should be especially careful – it is strongly recommended to update the kernel only on the latest OS versions.
Another very likely problem that you may encounter if you install the latest kernel is the problem with unresolved dependencies and, as a result, the inability to use the apt package manager to update and install programs. If you are faced with a situation where, after successfully installing a new kernel, you cannot update packages using apt, then try installing older versions of the kernel that suit you, and uninstall the versions that cause dependency problems. Remember that it is impossible to remove the kernel you booted with – boot your computer with any other version of the kernel before uninstalling.
mainline – Ubuntu kernels repository
For Ubuntu, there is a repository of compiled mainline kernels of all versions, including the most recent, so installation is not too difficult – you do not need to compile the Linux kernel. Moreover, there are tools, including those with a graphical interface, to install any kernels.
In fact, if the kernels have already been compiled, then it is enough to download the following files from one folder from the server:
-
linux-headers-*-generic_*_amd64.deb
-
linux-headers-*_all.deb
-
linux-image-unsigned-*-generic_*_amd64.deb
-
linux-modules-*-generic_*_amd64.deb
And install them with the command:
sudo dpkg -i linux*.deb
But the process can be simplified even further by using utilities for working with kernels.
Mainline (a continuation of the free version of ukuu) – a program with a graphical and console interface for updating the kernel
If you prefer a graphical interface then use Mainline.
To install the program run the following commands:
sudo apt-add-repository -y ppa:cappelikan/ppa
sudo apt update
sudo apt install mainline
To launch the graphical interface, run:
mainline-gtk
To run the console version, run:
mainline
Using the graphical version should be straightforward. At startup, you will receive information about the available kernels, you can select any kernel and install it by simply clicking on the “Install” button. Additionally, actions such as removing kernels and viewing the changelog for each kernel version are available.
Using the console version is as follows:
Syntax:
mainline COMMAND [OPTIONS]
Options and Commands Reference:
Commands:
--check Check for kernel updates
--notify Check for kernel updates and notify current user
--list List all available mainline kernels
--list-installed List installed kernels
--install-latest Install latest mainline kernel
--install-point Install latest point update for current series
--install <name> Install specified mainline kernel(1)
--uninstall <name> Uninstall specified kernel(2)
--uninstall-old Uninstall kernels older than the running kernel
--download <name> Download specified kernels(2)
--clean-cache Remove files from application cache
Options:
--include-unstable Include unstable and RC releases
--hide-unstable Hide unstable and RC releases
--debug Enable verbose debugging output
--yes Assume Yes for all prompts (non-interactive mode)
--user Override user
Notes:
(1) A version string taken from the output of --list
(2) One or more version strings (comma-separated) taken from the output of --list
Restart your computer to use the new kernel.
By default, your system will boot with the latest kernel, if you want to change this, then go to advanced boot options
and select the version you want from the installed kernels.
The ubuntu-mainline-kernel.sh utility
Installing ubuntu-mainline-kernel.sh
The latest kernel on Ubuntu and Linux Mint can also be installed using the ubuntu-mainline-kernel.sh command line utility.
Download and install the ubuntu-mainline-kernel.sh script:
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
ubuntu-mainline-kernel.sh help
Usage:
ubuntu-mainline-kernel.sh -c|-l|-r|-u
ubuntu-mainline-kernel.sh options:
Arguments:
-c Check if a newer kernel version is available
-i [VERSION] Install kernel VERSION, see -l for list. You don't have to prefix
with v. E.g. -i 4.9 is the same as -i v4.9. If version is
omitted the latest available version will be installed
-l [SEARCH] List locally installed kernel versions. If an argument to this
option is supplied it will search for that
-r [SEARCH] List available kernel versions. If an argument to this option
is supplied it will search for that
-u [VERSION] Uninstall the specified kernel version. If version is omitted,
a list of max 10 installed kernel versions is displayed
-h Show this message
Optional:
-s, --signed Only install signed kernel packages (not implemented)
-p, --path DIR The working directory, .deb files will be downloaded into
this folder. If omitted, the folder /tmp/ubuntu-mainline-kernel.sh/
is used. Path is relative from $PWD
-ll, --low-latency Use the low-latency version of the kernel, only for amd64 & i386
-lpae, --lpae Use the Large Physical Address Extension kernel, only for armhf
--snapdragon Use the Snapdragon kernel, only for arm64
-do, --download-only Only download the deb files, do not install them
-ns, --no-signature Do not check the gpg signature of the checksums file
-nc, --no-checksum Do not check the sha checksums of the .deb files
-d, --debug Show debug information, all internal command's echo their output
--rc Also include release candidates
--yes Assume yes on all questions (use with caution!)
Example of installing the latest kernel version
Checking the current kernel version:
uname -r
5.11.0-36-generic
The kernel is version 5.11.
We check which version of the kernel is the latest:
ubuntu-mainline-kernel.sh -c
To display a list of available kernels versions for installation, run the command:
sudo ubuntu-mainline-kernel.sh -r
For example, we want to install the kernel version v5.12.11, then the command is as follows (you do not need to specify the “v” prefix):
sudo ubuntu-mainline-kernel.sh -i 5.12.11
If you want to install the latest version at the moment, then run the following command:
sudo ubuntu-mainline-kernel.sh -i
You will be asked if you want to continue, enter “y”:
Latest version is: v5.14.6, continue? (y/N)
The program has exited – a restart is required for the changes to take effect.
Check the kernel version again:
How to recover Linux after installing the kernel
If your computer boots with a black screen, freezes, or something doesn't work after updating the kernel, reboot and select Advanced options for your distribution from the GRUB menu:
Then select the previous kernel version and press Enter:
Regardless of the reason, you need to boot with the previous version of the kernel if you want to remove the latest kernel. This is because you cannot remove the kernel that is currently in use.
If you do not see the GRUB2 menu, press and hold the Shift key or press the Esc key repeatedly (this may vary depending on BIOS or UEFI boot and the version of Ubuntu/Linux Mint you are using) while booting GRUB. The Grub menu should appear allowing you to select a previous kernel version.
After booting the previous kernel, you can remove the faulty kernel. ubuntu-mainline-kernel.sh allows you to remove kernels installed from the Ubuntu kernel PPA.
With ubuntu-mainline-kernel.sh you can remove the kernel version by running:
sudo ubuntu-mainline-kernel.sh -u VERSION
Where VERSION is the kernel version, for example 5.14. You can also use this utility with -u without specifying a version, in which case the tool will list up to 10 kernel versions and ask you which one you want to remove. It's worth noting that ubuntu-mainline-kernel.sh will not show official Ubuntu kernels in this list.
Update GRUB settings if not done automatically:
sudo update-grub