Kernel 2.2.12->2.2.20

 

Home
HOWTOs
FreeS/WAN & Debian
Kernel 2.2.12->2.2.20
RH 7.1 Thinkpad A21m
RH 7.2 Thinkpad A21m
SCSI + IDE
System
RedHat 6.1 with recompiled 2.2.12-20 smp kernel
IBM Intellistation Z-Pro 6899
Dual Pentium Pro 200MHz 256k cache
64MB RAM
4.5GB SCSI HD
(2) 20GB EIDE drives in RAID1 array (mirrored)
LILO
Why?
Add USB support
Possibly improving the performance of the onboard sound "card".
Preparations
Make sure that your current /boot/vmlinuz and /boot/System.map are symbolic links.  If they are not, rename them and create links in case you need to boot with the old kernel.
Source
Kernel source 
RAID Patches http://people.redhat.com/mingo/raid-patches/
Configuring the kernel
There are several options for how to configure the kernel:  make config; make menuconfig; make oldconfig; and make xconfig.  I prefer make xconfig.
Many of the options require "Prompt for development and/or incomplete code/drivers" [Code maturity level options] to be selected.  If an option you want is grayed out, ensure that development code is selected.
Making and installing the new kernel
If you already have kernel source in /usr/src/linux, move it or archive it!
Extract the kernel source to /usr/src/linux, configure it, make it, and install it:
cd /usr/src
tar xfz /path/to/kernel/archive/linux-2.2.20.tar.gz
cd linux
patch -p1 < /path/to/patch/raid-2.2.20-A0
make mrproper
make xconfig
make dep
make bzImage
make modules
make modules_install
make install
Create the initial ramdisk image
cd /boot
mkinitrd initrd-2.2.20RAID.img
Edit /etc/lilo.conf and add the following section at the end:
image=/boot/vmlinuz-2.2.20RAID
        label=linux-2.2.20RAID
        read-only
        root=whatever root is -- look at the other entry(ies)
        initrd=/boot/initrd-2.2.20RAID.img

Make sure that there is a line "prompt" towards the top.

Execute /sbin/lilo -v

Reboot.  When LILO comes up, enter linux-2.2.20RAID and the new kernel should load.

Tweaks

Upon rebooting with the new kernel, you will might see a message like "/etc/rc.d/rc.sysinit /proc/sys/kernel/sysrq: no such file or directory."  Apparently, the kernel shipped with RedHat 6.1 included the "Magic SysRq key" [Kernel hacking].  If your new kernel doesn't have this then you will see the warning message.  To get rid of the warning message, I edited /etc/rc.d/rc.sysinit:
if [ "$MAGIC_SYSRQ" = "no" ]; then
    if [ -f /proc/sys/kernel/sysrq ]; then
        echo "0" > /proc/sys/kernel/sysrq
    fi
fi
 
Gotchas
The README file for the kernel source seems to be a little out of date.  Several steps necessary for building/installing a kernel seem to be missing or glossed-over: make install and mkinitrd are crucial steps which seems to have been missed.
If you are using RAID, get the patches!  Even though there are RAID options for the kernel, they use the older RAID tools.  RedHat 6.1 includes the newer (0.90) tools which require the kernel patch.  Failure to patch the kernel generates a message like:
Starting up RAID devices: /dev/md0: Invalid argument
/dev/md0 is not a RAID0 or LINEAR array!
md0

*** An error occurred during the RAID startup
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D for normal startup):
Unresolved Issues
Warm reboots hang trying to boot the kernel:  "Uncompressing Linux...  Ok, booting the kernel."
Other links
http://www.linuxdoc.org/FAQ/Linux-RAID-FAQ/
http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html
Disclaimer

The information provided is what worked for me.  I provide this material as information only.  If it doesn't work for you, I am not liable for any damage caused.  Installing a new kernel is not for the faint-of-heart.  Improperly installing a new kernel may render the system inoperable.

 

Copyright 2001, John Corrigan

Last Modified: 12/12/2001 05:19:25 PM