face="Arial">After installing Red Hat 5.2, one of the first things you might want to do is
update your kernel. This is because the original Red Hat Linux 5.2 shipped with a
pre-release version (2.0.36-0.7) of the 2.0.36 kernel. We have, however, included the
final-release version (2.0.36-3) of the kernel on the PCQ CD, in the directory
/pcq-linux/extra/kernel-updates/2.0.36. (Did we see a 2.2 directory just before that?)
size="2">
Updating the kernel is not one of those simple "rpm
-Uvh"
commands. It takes a little more than that to get this one right. There are several issues
involved and you’ve to make sure you get all the steps right, or you may land up with
a brain-dead machine.
First of all, it’s a good idea to determine which kernel you
are using. We are assuming that you’ve installed Linux from the accompanying PCQ CD.
Even after you’ve run the pcqupdt script the kernel has not been upgraded. The kernel
currently installed would be 2.0.36-0.7. This can be confirmed by looking at the contents
of your lilo.conf file (/etc/lilo.conf). Now in order to update the kernel there are
certain things you must make sure you have. There are a few non-kernel files, and then the
kernel updates themselves are required. Run this command to check if you have these files
with you:
# rpm -q mkinitrd SysVinit
initscripts
mkinitrd-1.8-3
SysVinit-2.74-5
initscripts-3.78-1
Check for the kernel files too.
# rpm -q kernel kernel-headers
kernel-source kernel-ibcs kernel-pcmcia-cs
kernel-2.0.36-0.7
kernel-headers-2.0.36-0.7
kernel-source-2.0.36-0.7
kernel-ibcs-2.0.36-0.7
kernel-pcmcia-cs-2.0.36-0.7
Now that we know which files we have, let’s compare them with
the list of updates provided by Red Hat (ftp://updates.redhat.com/5.2/i386). The updates
directory will also actually have files–other than the kernel update–that need
to be updated. Most of these files have been put on the PCQ CD, including the ones for the
kernel update. So for the time being if you have the CD then you don’t need to
download anything new.
The kernel updates files are in
/pcq-linux/extra/kernel-updates/2.0.36 directory. Now to confirm if the files are all
intact, mount the CD, change to the kernel update directory and give the following
command:
# rpm -K -nopgp *rpm
kernel-2.0.36-3.i386.rpm:
size md5 OK
kernel-headers-2.0.36-3.i386.rpm: size md5 OK
kernel-ibcs-2.0.36-3.i386.rpm: size md5 OK
kernel-pcmcia-cs-2.0.36- 3.i386.rpm: size md5 OK
kernel-source-2.0.36-3.i386.rpm: size md5 OK
proceed with the actual update. Just to make sure that we can still use the system, it
would be a good idea to make a boot disk.
This is easy to do with Red Hat 5.2—just use the mkbootdisk
command
# mkbootdisk -device /dev/fd0 2.0.36-0.7
This will, of course, wipe out any data on the floppy and create a
bootable disk with a working kernel on it. It would be a good idea to boot from this
floppy once to make sure that it really works.
Now we are ready to start the update. Let’s start with the
kernel source and header files. These are required only if you do development work or
kernel hacking.
# rpm -Uvh
kernel-headers-2.0.36-3.i386.rpm kernel-source-2.0.36-3.i386
kernel-headers #########
kernel-source ##########
Any errors at this stage would probably be due to the
fact that a directory that did not exist was being removed. However, everything should
actually be okay and work fine.
Next let’s install the kernel and modules. This one is not an
upgrade but a fresh install so you need to use the rpm -ivh command instead.
# rpm -ivh kernel-2.0.36-3.i386.rpm
kernel-ibcs-2.0.36-3.i386.rpm kernel-pcmcia-cs-2.0.36-3.i386.rpm
kernel #############
kernel-ibcs #############
kernel-pcmcia-cs #########
Now to create the initial ram disk.
# mkinitrd /boot/initrd-2.0.36.img 2.0.36-3
Edit /etc/lilo.conf using a text editor such as joe. Note that your
values may be different. Use your existing lilo.conf values as a guide, duplicate the
current Linux image and adapt it for the new kernel.
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
other=/dev/hda1
label=windows
table=/dev/hda
image=/boot/vmlinuz-2.0.36-3
label=linux
root=/dev/hda6
read-only
image=/boot/vmlinuz-2.0.36-0.7
label=linuxold
root=/dev/hda6
read-only
# lilo -v
LILO version 20, Copyright 1992-1997
Werner Almesberger
Reading boot sector from /dev/hda
Merging with /boot/boot.b
Boot other: /dev/hda1, on /dev/hda, loader /boot/chain.b
Added windows *
Boot image: /boot/vmlinuz-2.0.36-3
Added linux
Boot image: /boot/vmlinuz-2.0.36-0.7
Added linuxold
/boot/boot.0300 exists - no backup copy made.
Writing boot sector.
This is the procedure in brief. For more details, fire up your
browser, mount our CD, and read the file kernupd.htm in the /doc/kernel directory.