One of the most fundamental elements in any Linux distribution is the kernel and although we have heard about it, on many occasions we do not know with certainty what role it plays in the system..
The Linux kernel is basically the core component of the GNU / Linux operating system, and its function is linked to managing the hardware resources of the computer such as the CPU, memory and hard drives , and thus offering the best use of These resources, and similarly with the kernel, are provided drivers for devices that are connected to different system buses such as USB, PCI, SATA or IDE.
For administration or control issues in some specific cases we can resort to a custom-compiled Linux kernel in order to enable or disable specific functions of said Kernel, which are not available by default in the distribution kernel. To do this, TechnoWikis will explain in detail how to compile and use the most recent Linux kernel taken from the sources in CentOS 7..
1. How to install the necessary packages to compile Kernel Linux CentOS 7
First, we will update the repositories of the software packages, proceed to install the development tools necessary to compile a kernel, and install the ncurses library with the yum command as follows:
yum update yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2
2. How to compile and install Linux CentOS 7 Kernel
The next step is to download the latest sources of Kernel 4.17 using the wget command in the / usr / src / directory or alternatively download the last kernel by visiting the following link:
kernel
Note
The stable version at this time is 4.17.11.
Step 1
First, we access the indicated directory:
cd / usr / src /
Then we download the kernel by running:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.11.tar.xz
Step 2
We proceed to extract the compressed files and modify the directories using the following commands:
tar -xvf linux-4.17.11.tar.xz
Now we access the kernel directory as follows:
cd linux-4.17.11 /
3. How to configure Kernel Linux on CentOS 7
Step 1
The Kernel for CentOS 7 must be configured correctly with the following configuration options that are required within the system environment:
CONFIG_KVM_GUEST = y CONFIG_VIRTIO_PCI = y CONFIG_VIRTIO_PCI_LEGACY = y CONFIG_BLK_DEV_SD CONFIG_SCSI_VIRTIO = y CONFIG_VIRTIO_NET = y CONFIG_SERIAL_8250 = y CONFIG_SERIAL_8250_CONSOLE = y
Now we are going to copy the running Kernel configuration (.config) from the / boot directory to the new Linux-4.17.11 kernel as follows:
cp -v /boot/config-3.10.0-693.5.2.el7.x86_64 /usr/src/linux-4.17.11/.config
Now we are going to execute the make menuconfig command in order to configure the Linux kernel, and as soon as the command is executed, a pop-up window with all the kernel menus will be displayed, there it will be possible to enable or disable certain kernel features and if We want to exit just press the ESC key to exit the wizard.
Step 2
The following wizard will be displayed, there we will define the parameters as we deem necessary.
Step 3
When we make the desired changes we select the Save option to apply these changes and we will see the following. Select "Ok" to finish the process.
Step 4
The following will be displayed, click on "Exit" to exit the assistant.
4. How to compile the kernel in CentOS 7 (Linux)
Before starting the process we must validate the free space in the file system, for this we execute the following:
df -h
Now we will compile and install the kernel and modules with the following commands, this can take a considerable time, the compilation process assigns the files in the / boot directory and creates a new kernel entry in the grub.conf file:
make bzImage make modules make make install make modules_install
Once this process is finished, we will restart the system and verify the new kernel by executing the following:
join me -sr
In this way we have learned to compile the Linux kernel in CentOS 7.