The Linux Kernel Compile (Debian/Ubuntu)

0 0 votes
Article Rating

Below is an image you can visualize the kernel if you want to, or read what’s below that image to begin.

These steps are to compile the linux kernel on Debian or Ubuntu, but you can use similar methods on other linux based systems.

Firstly we must download a whole bunch of packages, so we must run the command below.

Bash
sudo apt build-dep linux
Bash

there’s another aspect to this command: linux-image-$(uname -r) so the whole command would be listed below:

Bash
sudo apt build-dep linux linux-image-$(uname -r)
Bash

This downloads the “build-dep” (short for build dependencies) for linux and linux-image-$(uname -r) except I cannot get that second thing with uname in it to work. So i’ve noted that here. There isn’t anything else on this on the page that I found it on, in the Ubuntu documentation: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

So far I have been building this kernel on my computer without this second part of the build-dep command working. Without it working. Anyway we need to download a few more dependencies, not included in this command.

Bash
sudo apt install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm
Bash

one more, last one:

Bash
sudo apt install git
Bash

Now navigate to where you want to leave the source code for the linux kernel. Like, ~/Kernel/linux-6/ because this is the 6th version of the linux kernel we will be downloading. Once you’ve cd’d your way there, run this command, which takes a really long time, it downloads 4.5 gb of files and structure that make up the linux kernel:

Bash
sudo git clone https://github.com/torvalds/linux.git
Bash

This command, it downloads 4.5 gb but it’s required to build the linux kernel currently. The kernel won’t build on just the 100mb file from www.kernel.org, at least not on my machine. With this downloaded, you’ll have the kernel source and have the whole thing, you can investigate this further by googling like “linux kernel git clone” or something. I don’t know.

Anyway the command below is alot more complicated than just some “default” configuration, but it’s called defconfig anyway.. There’s really nothing simple about the linux kernel, and this is no exception. So below takes you to the directory in which that download was stored, the root of the kernel source tree, and then configures the build.

Bash
cd linux
sudo make defconfig
Bash

That doesn’t take very long. It looks through the kernel source and adds whatever is in the defconfig package to the .config file in the kernel root directory. After that, if there are no errors enter the next command:

What this command means is “debian-package” and use-j16, or, 16-threads of logic to compile the kernel with. If your computer doesn’t have 16 threads, you need to edit the command to include however many threads your computer has. So for 8-threads, you would enter: sudo make -j8 deb-pkg or sudo make -j 8 deb-pkg

A space doesn’t screw us up there. The word deb-pkg means compile the debian packages, the command outputs 3 .deb files, which we talk about below.

Bash
sudo make -j16 deb-pkg
Bash

See your system monitor, under the “Resources” tab you can see how many threads your machine has. If it’s not like 8 threads or 16 or greater, then compiling the kernel could take a long time.

Previous versions of the linux kernel had an error about debian-certs.pem when compiling on an ubuntu based system well they got rid of that in this latest version, so you don’t need to worry about that.

Finally after that command finishes, it takes about 1 hour or something, on my machine with 16-threads it only took about 30 minutes. After that, outside of the root directory of the linux kernel there will be some files. Look through them to find the 3 .deb files, and run the command

Bash
sudo apt install file.deb
Bash

So replace file.deb with the file you want to install. You may already be familiar with installing .deb files, I don’t know, but that’s how you install them. After a restart, that’s about it for the linux kernel, which has become kind of easy to do now, now that it doesn’t bomb your system, or fail to compile…

admin
Author: admin

0 0 votes
Article Rating

You may also like...

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x