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 by step HowTo covers compiling Linux kernel
version 3.0.xx under Debian GNU Linux. However, instructions remains the same
for any other distribution except for apt-get command.
Step # 1 Get Latest Linux kernel code
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 inux-3.0.32.tar.bz2 represents 3.0.32 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
Step # 2 Extract tar (.tar.bz3) file
Type the following command:
# tar -xjvf linux-3.0.32.tar.bz2 -C /usr/src
# cd /usr/src
Step # 3 Configure kernel
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
Now you can start kernel configuration by typing any one of
the command:
$ make menuconfig - Text based color menus, radiolists &
dialogs. This option also useful on remote server if you wanna compile kernel
remotely.
$ make xconfig - X windows (Qt) based configuration tool,
works best under KDE desktop
$ make gconfig - X windows (Gtk) based configuration tool,
works best under Gnome Dekstop.
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.
Step # 4 Compile kernel
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 -
# make
modules_install
Step # 5 Install kernel
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:
- System.map-3.0.32
- config-3.0.32
- vmlinuz-3.0.32
Step # 6: Create an initrd image
Type the following command at a shell prompt:
# cd /boot
# mkinitrd -o
initrd.img-3.0.32 3.0.32
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.
Step # 7 Modify Grub configuration file -
/boot/grub/menu.lst
Open file using vi:
# vi /boot/grub/menu.lst
title Debian
GNU/Linux, kernel 3.0.32 Default
root
(hd0,0)
kernel
/boot/vmlinuz root=/dev/hdb1 ro
initrd /boot/initrd.img-3.0.32
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
Step # 8 : Reboot computer and boot into your new kernel
Just issue reboot command:
# reboot
[Optional]
Some are reporting issues with the initrd.img-3.0 file not
being generated. You can fix it with the following commands. [Thanks to
bicepjai]
cd /usr/src/linux-3.0
mkinitramfs -o /boot/initrd.img-3.0
If you have issues and want to uninstall the new kernel, just reboot and select the old kernel at bootup. Then search the Synaptic Package manger for linux-image-3 and linux headers-3, and uninstall the packages.
To Patch running Linux Kernel Please refer http://www.linuxhowto.in/2012/06/howto-patch-running-linux-kernel.html
To Patch running Linux Kernel Please refer http://www.linuxhowto.in/2012/06/howto-patch-running-linux-kernel.html
DISCLAIMER: The
information provided on this website comes without warranty of any kind and is
distributed AS IS. Every effort has been made to provide the information as
accurate as possible, but no warranty or fitness is implied. The information
may be incomplete, may contain errors or may have become out of date. The use
of this information described herein is your responsibility, and to use it in
your own environments do so at your own risk.
Copyright
© 2012 LINUXHOWTO.IN
No comments:
Post a Comment