You are on page 1of 3

How to: Compile Linux kernel 2.

6
Compiling custom kernel has its own advantages and disadvantages. However, new Linux user /
admin find it difficult to compile Linux kernel. Compiling kernel needs to understand few things
and then just type couple of commands. This step y step howto covers compiling Linux kernel
version !.".xx under #eian $%& Linux. However, instructions remains the same for any other
distriution except for apt'get command.
Step # 1 Get Latest Linux kernel code
(isit http)//kernel.org/ and download the latest source code. *ile name would e linux'
x.y.+.tar.+!, where x.y.+ is actual version numer. *or example file inux'!.".!,.tar.+!
represents !.".!, kernel version. &se wget command to download kernel source code)
$ cd /tmp
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-x.y.z.tar.bz2
%ote) -eplace x.y.+ with actual version numer.
Step # 2 Extract tar (.tar.!"# $ile
Type the following command)
# tar -xv! linux-2.6.2".tar.bz2 -# /u$r/$rc
# cd /u$r/$rc
Step # " Con$i%ure kernel
.efore you configure kernel make sure you have development tools /gcc compilers and related
tools0 are installed on your system. 1f gcc compiler and tools are not installed then use apt'get
command under #eian Linux to install development tools.
# apt-get in$tall gcc
%ow you can start kernel configuration y typing any one of the command)
& make menucon$i% ' Text ased color menus, radiolists 2 dialogs. This option also
useful on remote server if you wanna compile kernel remotely.
& make xcon$i% ' 3 windows /4t0 ased configuration tool, works est under 5#6
desktop
& make %con$i% ' 3 windows /$tk0 ased configuration tool, works est under $nome
#ekstop.
*or example make menuconfig command launches following screen)
$ make menucon!ig
7ou have to select different options as per your need. 6ach configuration option has H6L8
utton associated with it so select help utton to get help.
Step # ' Compile kernel
9tart compiling to create a compressed kernel image, enter)
$ make
9tart compiling to kernel modules)
$ make module$
1nstall kernel modules /ecome a root user, use su command0)
$ $u -
# make module$%in$tall
Step # ( )nstall kernel
9o far we have compiled kernel and installed kernel modules. 1t is time to install kernel itself.
# make in$tall
1t will install three files into /oot directory as well as modification to your kernel gru
configuration file)
9ystem.map'!.".!,
config'!.".!,
vmlinu+'!.".!,
Step # 6: Create an initrd ima%e
Type the following command at a shell prompt)
# cd /boot
# mkinitrd -o initrd.img-2.6.2" 2.6.2"
initrd images contains device driver which needed to load rest of the operating system later on.
%ot all computer re:uires initrd, ut it is safe to create one.
Step # * +odi$, Gru con$i%uration $ile -
.oot.%ru.menu.lst
;pen file using vi)
# vi /boot/grub/menu.l$t
title &ebian '()/*inux+ kernel 2.6.2" &e!ault
root ,hd-+-.
kernel /boot/vmlinuz root//dev/hdb0 ro
initrd /boot/initrd.img-2.6.2"
$avede!ault
boot
-ememer to setup correct root</dev/hd33 device. 9ave and close the file. 1f you think editing
and writing all lines y hand is too much for you, try out update'gru command to update the
lines for each kernel in /oot/gru/menu.lst file. =ust type the command)
# update-grub
%eat. Huh>
Step # / : 0eoot computer and oot into ,our new kernel
=ust issue reoot command)
# reboot