Advertisment

Upgrading your Linux Kernel

author-image
PCQ Bureau
New Update

On this month’s PCQ CD, you’ll find the latest update to

Red Hat Linux 6.2 kernel–kernel 2.2 16-3–under /mnt/cdrom/cdrom/linux

kernel. Enhancements include security fixes, core updates like VM fixes and Kmod

fixes, IDE driver updates, and i810 driver updates.

Advertisment

An upgrade is a must for all those users who had trouble with

i810 motherboards. The new agpgart.o kernel module seems to have fixed most of

the issues which caused X to die with the error "gart allocate:cannot

allocate memory". It also has built-in audio drivers for the i810.

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 have to make sure you get all the steps right,

or you may land up with a brain-dead machine.

Before we get to the install part, you need to know more

about the machine you’re going to upgrade with the new kernel. Specifically,

you need to know what processor you’re using, and whether your motherboard is

uniprocessor or multiprocessor (SMP).

Advertisment

It’s very important that you get the processor type exactly

right. There are six versions of the kernel on the CD:

  • kernel-2.2.16-3.i386.rpm compiled for 386 class machines

  • kernel-2.2.16-3.i586.rpm compiled for 586 class machines

  • kernel-2.2.16-3.i686.rpm compiled for 686 class machines

  • kernel-smp-2.2.16-3.i386.rpm compiles for 386 class SMP

    machines

  • kernel-smp-2.2.16-3.i586.rpm compiles for 586 class SMP

    machines

  • kernel-smp-2.2.16-3.i686.rpm compiles for 686 class SMP

    machines

Figure out whether your processor/motherboard fits into one

of the above categories. SMP motherboard users should replace the kernel type

with the SMP version of the kernel. If you’re unsure about what processor you’re

using, stick with kernel-2.2.16-3.i386.rpm.

Advertisment

Intel 80386, 80486 processors and clones use

kernel-2.2.16-3.i386.rpm; Intel Pentium, 586 processors and clones use

kernel-2.2.16-3.i586.rpm; Intel Pentium Pro processors and above (including PII,

PIII, Celeron, etc) use kernel-2.2.16-3.i686.rpm; AMD K6, K6-2, K6-3 processors

and above use kernel-2.2.16-3.i586.rpm; AMD K7 processors and above use

kernel-2.2.16-3.i686.rpm; and Cyrix MII processors and above use

kernel-2.2.16-3.i686.rpm

You can also use the command "uname —m" to print

the machine (hardware) type. This might sometimes report back the wrong

processor ID, though.

~# uname -m

Advertisment

i686

Now that we have all the required information, we can proceed

with the kernel upgrade.

~# mount /mnt/cdrom

Advertisment

~# cd /mnt/cdrom/cdrom/linux/kernel

The command to upgrade a new RPM package is:

rpm -UvhF package.rpm

Advertisment

Let’s see what the options mean:

-U This upgrades or installs the package currently installed

to the version in the new RPM.

-v Verify

Advertisment

-h Print hash marks as the package archive is unpacked.

-F This will upgrade packages, but only if an earlier version

currently exists.

First, we install the main kernel rpm. Don’t forget to

replace ix86 with the correct version for your hardware:

# rpm -ivh kernel-2.2.16-3.ix86.rpm

SMP motherboard users should do this instead:

# rpm -ivh –force kernel-smp-2.2.16-3.ix86.rpm

Again, remember to replace the ix86 with i386, i586 or i686,

as applicable to your machine.

This package contains documentation files from the kernel

source:

# rpm -Uvh kernel-doc-2.2.16-3.i386.rpm

Kernel-headers and Kernel-source includes the C header files

for the Linux kernel, as well as the source code.

# rpm -Uvh kernel-headers-2.2.16-3.i386.rpm kernel-source-2.2.16-3.i386.rpm

The kernel-ibcs package allows you to run programs in the

iBCS2 formats:

# rpm -Uvh kernel-ibcs-2.2.16-3.i386.rpm

Install the kernel-pcmcia-cs package if your system uses

PCMCIA cards:

# rpm -Uvh kernel-pcmcia-cs-2.2.16-3.i386.rpm

The kernel-utils package contains ksymoops, a utility that

can be used for decrypting the kernel’s OOPS output:

rpm -Uvh kernel-utils-2.2.16-3.i386.rpm

Advertisment