First login to your Debian machine on the command line as root. Install the prerequisites that we need to compile the new kernel:
#apt-get install kernel-package ncurses-dev fakeroot wget bzip2
Then go to /usr/src:
#cd /usr/src
Then get the latest Linux kernel source (or the kernel source you need) from http://www.kernel.org/pub/linux/kernel/v2.6/
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.13.tar.bz2
Unpack the kernel sources:
#tar xjf linux-2.6.17.13.tar.bz2
#cd linux-2.6.17.13/
It is normally a good idea to take the configuration of your existing kernel 2.6 as a starting point for the configuration of your new kernel. Usually the current kernel configuration is saved in a file under /boot, e.g. /boot/config-2.6.12. We will load this configuration and then do the changes we desire
#make menuconfig
Select Load an Alternate Configuration File and enter the location of the configuration file of your current kernel.
The configuration of your current kernel will be loaded, and you can now browse through the menu and change the configuration to suit your needs. When you are finished, save your new kernel configuration
Then run the following commands (please note that make dep is not needed any more for kernel 2.6):
#make-kpkg clean
#fakeroot make-kpkg –revision=custom.1.0 kernel_image
If the compilation stops with an error, run
#make clean
and then re-run the previous commands starting with
#make menuconfig
Change the kernel configuration where the error occurs. If no error occurs you will find the new kernel as a Debian package called kernel-image-2.6.17.13_custom.1.0_i386.deb under /usr/src.
#cd ../
Now you have to install some packages that are needed by kernel 2.6. Add the following line to /etc/apt/sources.list:
deb http://www.backports.org/debian/ sarge-backports main contrib
Then run:
#apt-get update
#apt-get install module-init-tools initrd-tools procps
If you are asked the following question:
"If you really want to remove modutils type 'yes':"
type yes.
It might also be necessary to update packages like bind9, quota, etc. – depending on your configuration. If you have problems with your existing packages try to get the appropriate package from www.backports.org.
Install your new kernel:
#dpkg -i kernel-image-2.6.17.13_custom.1.0_i386.deb
Create a ramdisk of your new kernel (otherwise your system will most likely not boot):
#cd /boot/
#mkinitrd -o /boot/initrd.img-2.6.17.13 2.6.17.13
We are almost finished now. We now have to edit the bootmanager.
LILO:
Edit the image=/vmlinuz stanza of your /etc/lilo.conf and add the line initrd=/boot/initrd.img-2.6.14.5:
# Boot up Linux by default.
#
default=Linux
image=/vmlinuz
label=Linux
read-only
initrd=/boot/initrd.img-2.6.17.13
# restricted
# alias=1
Run
#lilo
to update your boot loader and reboot your machine:
#shutdown -r now
GRUB:
#vi /boot/grub/menu.list
default 5
timeout 5
color cyan/blue white/blue
title Debian GNU/Linux, kernel 2.6.17.13
root (hd0,2)
kernel /boot/vmlinuz-2.6.17.13 root=/dev/hda3 ro
initrd /boot/initrd.img-2.6.17.13
savedefault
boot
title Debian GNU/Linux, kernel 2.6.17.13 (recovery mode)
root (hd0,2)
kernel /boot/vmlinuz-2.6.17.13 root=/dev/hda3 ro single
initrd /boot/initrd.img-2.6.17.13
savedefault
boot
title Debian GNU/Linux, kernel 2.4.27-2-386
root (hd0,2)
kernel /boot/vmlinuz-2.4.27-2-386 root=/dev/hda3 ro
initrd /boot/initrd.img-2.4.27-2-386
savedefault
boot
title Debian GNU/Linux, kernel 2.4.27-2-386 (recovery mode)
root (hd0,2)
kernel /boot/vmlinuz-2.4.27-2-386 root=/dev/hda3 ro single
initrd /boot/initrd.img-2.4.27-2-386
savedefault
boot
title Other operating systems:
root
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
Everything is ok your machine should come up with the new kernel.
#uname -a
Leave a Reply