Upgrade to 2.6.5
Installing the 2.6 kernel
The 2.6 kernel came around promising a lot of improvements over the previous versions. In most cases it has delivered. Installing the new version isn't all that easy though, this is in contrast to the 2.4 version which even a novice linux user could manage without difficulty.
The first step when installing any software is to read the documentation, but if you are like me and have re-compiled the kernel many times before you probably just skimmed through. And this lead to the first glitch in the install process.
*** Warning: make dep is unnecessary now.
This of course is the wake up call that tells us that 2.6.x is very different from the 2.4.x versions that we are used to and it's time to start reading up. When you do, you find that you need to upgrade your module_init_tools before you can compile the kernel. So we will back track and install that before proceeding.
First visit http://www.kernel.org/pub/linux/kernel/people/rusty/modules/ and download module_init_tools (in my case I grabbed version 3.0). The next step is very important, you need to find out the correct path to your sbin. In some instances this may be /sbin/ in others /usr/local/sbin/ and there may even be an /usr/sbin directory in your system. I made the wrong decision when I first installed module_init_tools and modules just refused to load up. Eventually i found the correct one by typing which modprobe
Once you determine the correct path, you can then follow the README and install you module init tools. Then you can make use of the much improved make xconfig interface to configure the kernel (unless of course you are command line freak).
Make sure that you compile the essentials, most notably file system drivers into the core of the kernel. If you are using NTFS, FAT or other weird file system you can compile them as modules but it's dangerous to compile the drivers for your main filesystem (in my case I have a mixture of ext2,ext3 and reiser) as modules.
Once you are configured things the way you want it, you should type make instead of make dep. followed by make modules_install. Now comes the fun part, installing your newly compiled kernel.
Strangely in many of the documents I have read, they assume you want to throw your old kernel out of the windows the moment that you have a new version compiled. You definitely don't want to do that. You want to keep the old version loitering around for a month or so until you are very sure that the newly compiled kernel works the way you expect it to work.
So just copy the new version (in my case it's in arch/i386/boot/bzImage) to your boot partition without clobbering the old kernel. (in my case I named this /boot/vmlinuz-2.6.5 and kept the old vmlinuz-2.4.20-8 intact). Similarly copy the new System.map to the boot sector under a new file name and just make a symbolic link.
The final step is to edit your boot loader. In my case I am using grub and not Lilo. So the file to edit is /boot/grub/grub.conf ( you may find a symlink in /etc/grub.conf). I added the following lines:
title 2.6.5 rootnoverify (hd0,1) kernel /vmlinuz-2.6.5
(hd0,1) refers to my boot partition and the path name to the kernel is with respect to this partition and not the file system root. Editing the grub.conf is not enough you have to place it on the Master Boot Record of your hard disk. In most cases you can do so with the command:
In some cases this may not work. If that happens to you, I leave you with the unenviable task of reading the grub man pages.
Now save your work, type init 6 and keep your fingers crossed and hope that your hard disk doesn't start leaking oil. If the boot failed and your hard disk hasn't burnt out, reboot with your old kernel and starting googling. If your system does boot up successfully please see the next page, you might find that your RPMs no longer work, and you might also find your speaker is dead. (While you are at it don't forget to feed your dog).
part II : Dead speakers and other mysteries