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.
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."
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.