New-Linux-Kernel
From FiberWiki
How to install a custom linux kernel
Let's start by joining the correct directory
cd /usr/src
Then you will want to download the kernel from kernel.org
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.10.tar.gz
Let's open it now
tar zxvf linux-2.6.27.10.tar.gz
Now we need to create a symlink
ln -s linux-2.6.27.10 linux
Since this might be your first time lets take the easy route by going to the following directory and moving your current config file to your new kernel directory
cd /boot
Let's look at the contents
ls
Now the current config should look something like this
config-2.6.18-x
Let's move it to the new kernel location and rename it to .conf (Don't forget to change the "x" to the correct name)
cp config-2.6.18-x /usr/src/linux/.config
Now we need to move back to our new kernel directory
cd /usr/src/linux
If you want to customize your kernel or add in new features like ntfs support.
make menuconfig
Once done adding in features or renaming it we need to compile it (This can take a while...)
make bzImage; make modules; make modules_install; make install
Now it should be added to /boot/grub/menu.lst you can check by doing the following
cat /boot/grub/menu.1st
It should look something like this
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.27.10)
root (hd0,0)
kernel /vmlinuz-2.6.27.10 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.27.10.img
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-92.el5.img
Please note that the locations of the kernel and initrd might not be the same as ours. This is just giving you and idea of how the kernel will be added above the current one.
Now you will want to change it to look like this one. ( We change the default=1 to default=0 which is the new kernel)
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.27.10)
root (hd0,0)
kernel /vmlinuz-2.6.27.10 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.27.10.img
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-92.el5.img
Now reboot the machine and it should come up with the new kernel!
