Updating and Compiling Kernel in Linux: A Comprehensive Guide
If you use a Linux operating system, you may have heard of the term “Kernel”. Kernel is the core of the operating system that manages all the system resources, including hardware and software.
With time, new updates and features are added to the kernel, making the system more efficient and secure. In this article, we will discuss two ways of updating and compiling the kernel in Linux.
Updating the Kernel through Package Manager
The easiest and most common way of updating the kernel in Linux is through the package manager. The package manager is a tool that manages the installation, removal, and updating of software packages in Linux.
In this method, we will use the package manager – pacman (Arch-based systems) to update the kernel. We will start with checking the current kernel version using the following command:
$ uname -r
The above command will display the kernel version in use.
Now, we will perform a system update with pacman, which will check for the latest updates for the entire system, including the kernel. To perform a system update, use the following command:
$ sudo pacman -Syu
The above command will download and install the latest updates available for the system, including the updated kernel.
Once the installation is complete, we will need to reboot the system to use the newly installed kernel. To reboot the system, use the following command:
$ sudo reboot
After the system boots up, we will check the kernel version using the following command:
$ uname -r
This command should display the new kernel version.
Compiling and Installing the Kernel from Source
Compiling and installing the kernel from source is a more advanced method than updating the kernel through the package manager. It provides more control over the customization of the kernel, and it also allows the user to compile and install the kernel with specific features.
We will discuss the steps involved in compiling and installing the kernel from source. Step 1: Downloading the Latest Version of Linux Kernel
The first step in compiling the kernel from source is to download the latest version of the Linux kernel from kernel.org.
You can download the kernel using the following command:
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.7.tar.xz
In the above command, we have downloaded the latest version of the kernel, which is version 5.14.7 at the time of writing this article. Step 2: Extracting the Downloaded File and Navigating to the Directory
After downloading the kernel, we will extract the downloaded file using the following command:
$ tar xvf linux-5.14.7.tar.xz
This command will extract the file and create a directory named linux-5.14.7 in the current directory.
We will navigate to the extracted directory using the following command:
$ cd linux-5.14.7
Step 3: Installing Required Packages Before Kernel Compilation
Before we can compile the kernel, we need to install some required packages. These packages include ncurses, make, gcc, bc, and openssl.
We will use pacman to install these packages:
$ sudo pacman -S ncurses make gcc bc openssl
Step 4: Copying the Configuration File of Current Kernel
The current kernel on the system has a configuration file that specifies the kernel’s features and options. We need to copy this configuration file to make changes in the new kernel.
We can copy the configuration file using the following command:
$ zcat /proc/config.gz > .config
Step 5: Preparing the Configuration File for New Kernel
After copying the configuration file, we need to make changes to it and prepare it for the new kernel. We can prepare the configuration file using the following command:
$ make menuconfig
This command will open a graphical user interface that allows us to enable or disable specific kernel features according to our needs.
Step 6: Enabling or Disabling Specific Kernel Features and Starting the Compilation Process
In the graphical user interface, we can enable or disable specific kernel features according to our requirements. Once we are done with the customization, we will start the kernel compilation process using the following command:
$ make
This command will take some time to compile the kernel, and the time will depend on the system’s hardware and the kernel’s size.
Step 7: Installing the Compiled Kernel Modules
After the compilation is complete, we need to install the compiled kernel modules using the following command:
$ make modules_install
This command will install the kernel modules at the appropriate location. Step 8: Copying the vmlinuz File for Architecture to the /boot Directory
We need to copy the kernel’s primary file, vmlinuz, to the /boot directory using the following command:
$ sudo cp arch/x86_64/boot/bzImage /boot/vmlinuz-
This command will copy the vmlinuz file to the /boot directory.
Step 9: Generating an Initramfs Image and Saving it to /boot Directory
We need to generate an initramfs image for the kernel using the following command:
$ sudo mkinitcpio -k
This command will generate an initramfs image and save it to the /boot directory. Step 10: Copying System.map File to /boot Directory and Creating a Symbolic Link
We need to copy the System.map file to the /boot directory using the following command:
$ sudo cp System.map /boot/System.map-
After copying, we need to create a symbolic link to the file using the following command:
$ sudo ln -sf /boot/System.map-
This command will create a symbolic link to the System.map file.
Step 11: Generating a GRUB.cfg File
We need to generate a grub.cfg file using the following command:
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
This command will generate a grub.cfg file that lists all the available kernels on the system, including the newly installed kernel. Step 12: Rebooting System and Selecting Newly Installed Kernel from GRUB Menu
Finally, we need to reboot the system using the following command:
$ sudo reboot
After rebooting, the GRUB menu will display all the available kernels on the system.
We need to select the newly installed kernel from the menu to start using it. Step 13: Checking Kernel Version After Booting Up
To check the kernel version after booting up, we can use the following command:
$ uname -r
This command will display the newly installed kernel version.
Conclusion
Updating and compiling the kernel from source are two ways to keep the Linux system up-to-date and efficient. The update through the package manager is the easiest and recommended method for beginners, while compiling and installing the kernel from source is more advanced and provides greater control over the customization of the kernel.
In this article, we have discussed the steps involved in updating and compiling the kernel in Linux. With this knowledge, you can keep your Linux system up-to-date and secure.
In summary, the article explained two ways of updating and compiling the Linux kernel. Updating through the package manager is the easiest, while compiling from source provides greater control over customization.
In both methods, it is essential to check the current kernel version, install required packages, customize the configuration file, and reboot the system. Keeping the kernel up-to-date enhances system performance, security, and efficiency, making it a critical aspect of Linux system management.
By following the steps outlined in this article, users can keep their Linux system up-to-date and secure.