TechAmor
For the Love of Technology
TechAmor
A Multi Technology Portal for Tech Enthusiasts
Your Company Address
India
Linux is an open source operating system.Linux is free.Linux being open source gives us advantage of customizing the linux and creating our own version.Various flavours of Linux have already evolved.Eg. Ubuntu evolved from Debian.Edubuntu(Educational version of Ubuntu) evolved from Ubuntu.
To customize linux we have to tinker with source and recompile the kernel.
Below are the steps that we need to follow to compile a linux kernel.
Visit http://kernel.org/ and download the latest source code. File name would be linux-x.y.z.tar.bz2, where x.y.z is actual version number. For example file linux-2.6.25.tar.bz2 represents 2.6.25 kernel version. Use 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
Note: Replace x.y.z with actual version number.
Type the following command:
# tar -xjvf linux-2.6.25.tar.bz2 -C /usr/src(-C represents the path where kernel src is stored)
# cd /usr/src
Before you configure kernel make sure you have development tools (gcc compilers and related tools) are installed on your system. If gcc compiler and tools are not installed then use apt-get command under Debian Linux to install development tools.
# apt-get install gcc
and in Red Hat Distributions
#yum install gcc
Now you can start kernel configuration by typing any one of the command:
For example make menuconfig command launches following screen:
$ make menuconfig
You have to select different options as per your need. Each configuration option has HELP button associated with it so select help button to get help.
Start compiling to create a compressed kernel image, enter:
$ make
Start compiling to kernel modules:
$ make modules
Install kernel modules (become a root user, use su command):
$ su - (super user)
# make modules_install
So far we have compiled kernel and installed kernel modules. It is time to install kernel itself.
# make install
It will install three files into /boot directory as well as modification to your kernel grub configuration file:
Type the following command at a shell prompt:
# cd /boot
# mkinitrd -o initrd.img-2.6.25 2.6.25
initrd images contains device driver which needed to load rest of the operating system later on. Not all computer requires initrd, but it is safe to create one.
Open file using vi:
# vi /boot/grub/menu.lst
or
#vi /boot/grub/grub.conf
title Debian GNU/Linux, kernel 2.6.25 Default
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hdb1 ro
initrd /boot/initrd.img-2.6.25
savedefault
boot
Remember to setup correct root=/dev/hdXX device. Save and close the file. If you think editing and writing all lines by hand is too much for you, try out update-grub command to update the lines for each kernel in /boot/grub/menu.lst file. Just type the command:
# update-grub
Just issue reboot command:
# reboot