Linux is a Operating System kernel and user space applications will create different distributions like CentOS, Ubuntu, Mint, Kali around this kernel. Kernel can be downloaded freely and used without any license fee. In this tutorial we will learn how to download Linux Kernel from kernel.org and compiling with GCC . An the last step installing or upgrading the kernel.
Download Kernel Source Code
Kernel source code is originally maintained in the kernel.org . But there are a lot of mirrors which serve to download the kernel source code. In this step we will download kernel source code by using wget
command like below. Current stable version of the Linux Kernel is 4.17.6
.
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.6.tar.xz

Install GCC and Other Requirements
GCC is most popular compiler for C and C++ source codes in Linux environment. We will use GCC in order to compile and create binaries for Linux Kernel . We will install gcc
with the following command for different distributions.
Ubunt, Debian, Mint, Kali:
$ sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
CentOS, Fedora:
$ sudo yum install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

Extract Kernel Source Code
Kernel source code has a lot of text type data which may take a lot of disk space and bandwith. So Linux Kernel code is distributed in compressed formats like xz
, tar.gz
etc. We download Kernel Source code as xz
so we need to extract source code with the tar
command like below.
$ tar xvf linux-4.17.6.tar.xz
Create Compile Configuration
We will create a configuration which will used to compile required modules and kernel features.
$ make menuconfig

Compile Linux Kernel Source Code with GCC and Make
We will use make
command wich will run compile process according to the configuration we have created with the make menuconfig
command.
$ make

Compile Linux Kernel Faster
By default make command will make compile with a single thread . But as modern CPU’s have multiple cores which gives ability to use multiple threads we can run parallel compile with -j
option of the make
command. In this case we specify 4 threads
$ make -j 4
