10.7. Moving to the Linux 2.2.x Kernels

The Linux kernel 2.2.0 was released on January 25, 1999, bringing with it many new features, performance enhancements, and hardware support. Any existing Linux system can be upgraded with one of these new kernels in much the same fashion as described in Section 10.4 (with caveats).

This section will describe how to upgrade your Red Hat system to the new kernels. As Red Hat 6.0 (and above) already ships with the new kernel and supporting packages by default, this section will only be useful to those of you who are still using an earlier version, such as 5.2. I will likely remove this section from future versions of this document, once I believe a majority of users have migrated to 6.0 and beyond.


Warning! If you decide to upgrade your older system to support the new kernels, be advised that as the process involves a number of package upgrades, it is possible that something will go horribly wrong. As always, have recent backups available to you in case something goes wrong. If you don't have experience with upgrading files with RPM as well as compiling kernels, perhaps you might wish to upgrade to Red Hat 6.1.

You have the choice of upgrading to either a stock kernel as provided by Red Hat, or upgrading by compiling a custom kernel. I would recommend getting things going with a stock kernel first, and then build a customized kernel later as you normally would (see Section 10.5 for details.)

In order to use the latest kernel, it is first necessary to upgrade to the newest utilities and libraries. Red Hat has identified which packages need to be upgraded to support the newest kernel, and have placed the appropriate RPM files on their FTP site at ftp://ftp.redhat.com/redhat/updates/5.2/kernel-2.2/i386/ (for Red Hat 5.2 users on the i386 platform).

A very good web page, detailing the appropriate system tools that are necessary for moving to 2.2.x is available at http://www-stu.calvin.edu/~clug/users/jnieho38/goto22.html; I will attempt to summarize the information below (items marked with a leading ``**'' indicate you will most likely need to upgrade the item for Red Hat 5.2; items not indicated as such are probably okay but probably worth checking).

  • ** initscripts-3.78-2.4 or better (Type ``rpm -q initscripts'' to check your version)

  • ** modutils-2.1.121 or better (Type ``rpm -q modutils'' to check your version)

  • ** mount-2.9-0 or better (Type ``rpm -q mount'' to check your version)

  • gcc- or better (``rpm -q gcc'')

  • binutils- or better (``rpm -q binutils'')

  • libc-5.4.46 or better (Red Hat uses the newer ``glibc''. Not needed.)

  • glibc-2.0.7-6 or better (``rpm -q glibc'')

  • ld.so 1.9.9 or better (``ls -l /lib/ld.so.*'')

  • libg++- or better (``rpm -q libg++'')

  • procps-1.2.9 or better (``rpm -q procps'')

  • ** procinfo-15 or better (``rpm -q procinfo'')

  • psmisc-17 or better (``rpm -q psmisc'')

  • ** net-tools-1.50 or better (``rpm -q net-tools'')

  • loadlin-1.6 or better (Needed only if you are booting Linux from DOS using Loadlin. Not sure how to calculate the version number; download the latest version to be sure.)

  • sh-utils-1.16 or better (``rpm -q sh-utils'')

  • autofs-3.1.1 or better (``rpm -q autofs'')

  • nfs-server2.2beta37 or better (``rpm -q nfs-server''; needed only if you are serving NFS file shares.)

  • bash-1.14.7 or better (``rpm -q bash'')

  • ncpfs-2.2.0 or better (``rpm -q ncpfs''; needed only if you are mounting Novell file systems.)

  • kernel-pcmcia-cs-3.0.6 or better (``rpm -q kernel-pcmcia-cs''; needed only for laptops which need PCMCIA card support.)

  • ppp-2.3.5 or better (``rpm -q ppp''; needed only if you are connecting to the Internet with a modem and PPP.)

  • dhcpcd-1.3.16-0 or better (``rpm -q dhcpcd''; needed only if you need a DHCP client to connect to the Internet, such as with a cable modem).

  • ** util-linux-2.9.0 (``rpm -q util-linux'')

  • setserial-2.1 or better (``rpm -q setserial'')

  • ipfwadmin/ipchains (Only needed if you are doing IP firewalling; see the ``IPCHAINS-HOWTO'' guide at http://isunix.it.iltu.edu/resources/ldp/HOWTO/IPCHAINS-HOWTO.html.)

You should download and upgrade any packages using RPM as required (see Section 10.1 for details on how to use RPM).


Caution: Upgrading to the new ``modutils'' package will result in modules no longer functioning for the older 2.0.x kernels! Therefore, do not upgrade this package until you have installed the new kernel in ``/usr/src/linux''.

After bringing your system's tools up to date, you can install the kernel sources. You can find them on Red Hat's FTP site as well; I recommend downloading the ones provided as updates for Red Hat 6.1, at ftp://ftp.redhat.com/redhat/updates/6.1/i386/. To do so, type the following:

rpm -Uvh kernel-source*.rpm kernel-headers*.rpm

Now that the new kernel sources have been installed, it should be safe to upgrade your modutils package. However, the new kernel no longer uses the ``kerneld'' module for on-demand loading of kernel modules. Therefore, you should disable this module before updating modutils. To disable kerneld and upgrade the modutils package, type the following as "root":

/sbin/chkconfig kerneld off
/etc/rc.d/init.d/kerneld stop
rpm -Uvh modutils*.rpm

You should now be able to configure, compile, and install your 2.2 kernel as you normally would (see Section 10.6 for details). You may be surprised to see the dizzying amount of new configuration settings available. Take your time and read the help text for any options you are unfamiliar with!

With any luck, the next time you boot your system you will be running the latest and greatest Linux kernel version!

Much more detailed information on these procedures can be found on Red Hat's web site at http://www.redhat.com/corp/support/docs/kernel-2.2/kernel2.2-upgrade.html.