From time to time it may be wise to upgrade your Linux kernel. This will allow you to keep up with the new features and bug fixes as they become available. Or, perhaps, you are running Linux on new or specialty hardware, or wish to enable certain features for which a custom kernel is needed.
This section will describe upgrading and customizing a new kernel. It isn't as difficult as you might think!
Announcements of new kernel versions can be obtained through various sources, including the comp.os.linux.announce newsgroup, as well as on the http://freshmeat.net/ and http://slashdot.org/ web sites.
Please note that there are currently two “streams” of kernel development -- one stream is considered “stable” releases, while the other stream is considered “development” releases. For mission critical applications such as an Internet server, it is highly recommended that you use the stable releases and stay away from the development kernels.
The difference between the two streams is that, with the development kernels, new as-yet untested hardware drivers, filesystems, and other “cutting edge” developments are introduced on a regular basis. These kernels are for use by hackers only -- people who don't mind having to reboot their system, should a kernel bug rear its ugly head.
The stable kernels introduce new features and drivers only after they have been thoroughly tested. Minor releases in this stream also serve to clean up any remaining bugs that are found and corrected.
The two streams use version numbers which are numbered differently to help distinguish between them. The stable kernels are numbered with the second number even (eg. 2.0.35, 2.0.36, 2.2.4) while the development kernels are numbered with the second number odd (eg. 2.1.120, 2.1.121, 2.3.0).
The latest stable kernel is always made available in source as well as pre-compiled binary formats on the ftp://ftp.redhat.com/redhat/updates/ FTP site. Download the desired kernel packages for your version and platform (for example, you would want to navigate to the ``/6.1/i386/'' directory and download the ``kernel-*.i386.rpm'' files for the 6.1 version on the Intel platform).
Note: You do not need to download the kernel sources file unless you are planning on building a custom kernel yourself (see the section called Building a Custom Kernel for details on building a custom kernel).
Sometimes, you may find it necessary to use a kernel that has not yet been made available as an RPM. In this case, you can find the latest kernels from the ftp://ftp.kernel.org FTP site, in the /pub/linux/kernel/ directory. Change to the appropriate major version subdirectory (eg. ``v2.0''), which contains all kernel releases up to the most current one. Download the desired kernel package (for example, the compressed tarball for version 2.0.36 would be called ``linux-2.0.36.tar.gz'' for the Intel platform) and untar it in the ``/usr/src'' directory.
Note: Most user-installed applications not installed from RPM should be untarred under the ``/usr/local/src/'' directory by convention, but this is a kernel tree so we'll make an exception in this case. :-)
Please be aware that if you decide to upgrade your kernel by downloading a tarball, you will most certainly need to configure, compile, and install it yourself. Unless you have special needs that require the very latest development kernel, I strongly recommend you upgrade your kernel through Red Hat-provided RPM files -- these are preconfigured and precompiled for you, although you can compile a custom kernel from RPM files as well should you wish.