» Upgrading to stock 2.4.20 kernel from source
Small Disclaimer: These instructions are specifically designed to upgrade
your Red Hat 8.0 default installed kernel to the stock v2.4.20 kernel from kernel source downloaded from www.kernel.org.
Most of the steps also apply to other distributions so your mileage may
vary. See http://www.kernel.org/ for more information about the Linux
Pros: Much improved performance when using VMware and Wine(X).
Cons: None known.
Let us begin: First make sure you have the necessary kernel
development packages installed by clicking on System
Settings>Packages on your menu. You should have Development
Tools and Kernel Development boxes checked (if not, check them).
Then open a terminal and get, build, and install the 2.4.20 kernel by:
enter root's password
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.bz2
# tar -xvjf linux-2.4.20.tar.bz2
# rm -f linux-2.4 linux
# ln -s linux-2.4.20 linux-2.4
# ln -s linux-2.4 linux
# cd linux
# cp /boot/config-2.4.18-14 .config
# make xconfig
NOTE: This part may or may not be necessary depending on your processor. I have not been able to compile the 2.4.19 or 2.4.20 kernels on my AMD Athlon XP 1600+ with the 53c710 SCSI Support enabled. However, on
my AMD K6-2 450 it compiled fine with this option enabled. If you want to try compiling without turning this option off just click Save and Exit. But if
you have an Athlon you might want to do the following:
Click SCSI Support, then click SCSI low-level drivers, then set Simple 53c710 SCSI Support to n. Click OK, click Main Menu, click Save and Exit, click OK.
Now build and install:
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
# make install
If everything built properly the "make install" command will install
your kernel in /boot and add an entry in your GRUB (or LILO) boot menu automatically
(now you will have two kernel entries on your GRUB menu, the new one will NOT
be the default. Select it on the GRUB boot menu and if it boots and your
system works fine you can make it the default kernel in your GRUB
config file later (default=x depending on which entry your new kernel
An alternate method of installation: Instead of doing a "make install" you can do a "make rpm" which will build a kernel RPM. You will need the "rpm-build" package installed and you'll need to modify the kernel Makefile for this to work with Red Hat 8.0 as they changed the command name to build an RPM. Edit /usr/src/linux/Makefile and find the line in the "rpm:" section that starts out with "rpm -ta". Change the "rpm -ta" to "rpmbuild -ta". Now if you do a "make rpm" it should go through the entire compile process again and build a kernel RPM under "/usr/src/redhat/RPMS/<arch>".
The RPM method of installation is nice if you want to build your kernel on one machine and install it on another. Just make sure when you build it you build it for the right architecture that you plan to install it on. Also when you install I suggest you do an "rpm -ivh kernel*" rather than an "rpm -Uvh kernel*" so it will not wipe out your old kernel. You'll need to edit your /boot/grub/menu.lst and make an entry for the new kernel. Couple of tips on the grub entry, you can copy the section for your 2.4.18 kernel and change the 2.4.18 to 2.4.20 in the new section. Do not copy the "initrd" line as this method will not create a new initrd so take this into consideration if you need to preload a driver. Also instead of "root=LABEL=/" you'll want to use the device name of your root partition, e.g. "root=/dev/hda1".
NOTE: If you use VMware or the NVidia kernel drivers, or any other 3rd party kernel modules they will have to be rebuilt and
installed after booting the new kernel.
NOTE2: It has been reported by ThePreacher that these instructions work for Mandrake 9.0 as well. The only difference would be replacing /boot/config-2.4.18-14 with /boot/config-2.4.19-16mdk in the above instructions. Thanks Preach!