Moby Disk Consulting
Software Development, Training & Consulting
William Garrison - mobydisk at mobydisk daht com

Migrating RH9 to Kernel 2.6.1 (2003-01-16)

References

This is my list of problems, and the corresponding solutions, that I encountered when upgrading my Red Hat 9 install to kernel 2.6.1. Right now, there is limited info on 2.6.1, most of it is on 2.6. This is not an upgrade guide or a how-to, it is a list of specific issues that you may encounter. Before upgrading to 2.6.x please read and absorb these pages:

Intro

Below is a list of all the problems I ran into, and how I fixed them. Some of these are because I failed to follow directions, or misunderstood them. Others are issues that arise due to incompatibilities, bugs, or cosmic rays. You may want to read over some of these before installing, just so you have an idea what you might run into. I recommend fixing as many as possible BEFORE compiling and booting into your new kernel. It's much easier that way. Printing this might be a good idea.

Issues

RPM does not work

Get RPM 4.2 or higher.

QM_MODULES: function not implemented

This is a real big one. If you get this, you didn't install module-init-tools. If you are like me, it's because the instructions said to do depmod -V and verify version 0.9.9 or higher, and you had like version 2.4.22 and figured you were way ahead. Wrong! Somehow 0.9.9 is newer than 2.4.22. module-init-tools is the replacements for modprobe, depmod, insmod, and a few other things that are so vital you might not even boot to runlevel 3 without them. At some point, you will learn that these tools are incompatible with the ones you have now. Don't worry. The install for these tools renames the old ones to depmod.old, modprobe.old, etc. and calls them if you try to boot back to your old 2.4 kernel. Phew! So you can still safely go back to 2.4 if you need to.

Now, you are desperately trying to find an RPM for these vital components since nothing works without them! All I could find was a tarball. Sorry, now you are relegated to compiling and installing something from source without 90% of your OS functioning. Another ouchie here. Do this first!

Modules do not load properly

This may manifest itself in many ways. You might boot and find you have no network or sound. Or maybe you cannot even boot to your partition because ext3 or reiserfs or vfat didn't load.It might be that modprobe reports that it cannot find a module...

FATAL: module fglrx not found

Or maybe:

tulip device eth0 does not seem to be present, delaying initialization.

Background

The kernel knows to automatically load modules when they are needed. This feature is sometimes referred to as hotplug or kernel module autoloading. Most drivers are laoded this way, rather than through explicit init scripts. This may be contrary to what you are told (I found very few people realized how much was happening through autoload). The kernel knows what to autoload based on a table of symbols. This table is used/updated by the module-init-tools. Under 2.4 kernels, this is in /proc/ksyms. In 2.6, this is in /proc/kallsyms. Aha! So we need to tell our init scripts to look in the new location, and modules will now load properly.

Solution

You need to fix the Red Hat init script in /etc/rc.sysinit. First, backup the /etc/rc.sysinit file into /etc/rc.sysinit.2.4. Next, open that file and change all references to "ksyms" to "kallsyms". This change will fix module loading in 2.6, but break it for 2.4. To boot back to 2.4, swap the files around. A more intelligent change would be to modify the script so that it detects the OS version, and looks in the proper location.

FATAL: modprobe XXXXXX not found

Somewhere, one of the how-tos says to do "depmod 2.6" or "depmod 2.6.1" from within your 2.4 kernel. The "2.6.1" parameter tells depmod to look in the approprate kernel directory. This didn't work for me. I had to boot into the 2.6.1 kernel, then do "depmod" then reboot for it to work.

Fatal IO error 104
No matching section for instance (BUSID PCI:1:0:1) found
ATI Radeon video card

Background

It looks like the ATI driver tries to take advantage of some new features of the 2.6 kernel, but they appear to be broken. There are also some issues specific to Athlon processors. These are likely fixed by the time you read this document. If not, here is what to do:

Solution

In my case, I had to do insmod command instead of the modprobe command because I hadn't resolved the module autoloading problem yet.
The driver patches are in various places on the net. For now, here is the fglrx 2.6 kernel patch and here is the fglrx AMD patch.

USB errors on startup and USB not functioning

First, be sure that you follow the directions from the Migrating to Linux Kernel 2.6 page (see links above). If you still have problems, read on.

After that, recompile the kernel with all the USB drivers enabled. There are 3: UHCI, OHCI, and EHCI. They correspond to USB 1.0, 1.1, and 2.0. If you look at the help in the kernel configuration, it tells you how to use lspci -v to determine which of the 3 you need. It's easiest just to compile all 3. The kernel autoload should handle the rest.

Make sure the USB keyboard and mouse drivers are compiled. This avoids the error message at startup about these modules not being found.

The USB driver names have changed. Modify /etc/modprobe.conf and /etc/modules.conf so that all references to usb-uhci are changed to uhci-ucd. Likewise usb-ohci should become ohci-ucd and usb-ehci should be ehci-ucd.

CD/DVD burner not working

Upgrade to cdrecord 2.0 or higher [http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html]

KDE audio mixer (kmix) not working

This shouldn't happen if the kernel module autoloading is working.

The kmix that comes with kdemultimedia-3.1-4 uses OSS (Open Sound System) which is now replaced with ALSA. Supposedely, kde 3.2 supports this, but I am not daring enough to upgrade. To get kmix (and perhaps other applications) working, just load the OSS emulation modules:

su -
modprobe snd_pcm_oss
modprobe snd_mixer_oss

CD/DVD drives vanished

This is probably not directly 2.6 kernel related. It happened to me at some point during the configuration process and I don't know why. I had to recreate the devices for my CD and DVD drives. For anyone else who has this issue, here is what to do:

I have 2 DVD drives (a DVD rewriter, and a regular DVD-ROM). No CD drive was recognized in any application. /dev/hdc and /dev/hdd were present however.

It looks like 2.6.1 won't let you have a drive be both SCSI and IDE at the same time. (This does make sense really). You must access the CD drives as SCSI drives now. Can't be both ways. This shows you how to reconstruct the CD drives so that they work under ide-scsi emulation. These instructions assume you have 2 CD drives like I do. Instructions should be mostly the same for just one.

  1. Gain super-user priveledges:

    su -

  2. Create a cdrom device that maps to SCSI device 0. Create another that maps to SCSI device 1.

    ln -s /dev/cdrom /dev/scd0
    ln -s /dev/cdrom1 /dev/scd1

    You will now have:

    lrwxr-xr-x 1 root root 9 Jan 14 02:26 cdrom -> /dev/scd0
    lrwxr-xr-x 1 root root 9 Jan 14 02:26 cdrom1 -> /dev/scd1

  3. Create mount points for the devices.

    mkdir /mnt/cdrom
    mkdir /mnt/cdrom1

    You will now have:

    drwxr-xr-x 2 root root 4096 Jan 14 02:12 cdrom
    drwxr-xr-x 2 root root 4096 Jan 14 02:12 cdrom1

  4. Add entries into /etc/fstab for these devices:

    /dev/cdrom /mnt/cdrom udf,iso9660,auto noauto,user,ro 0 0
    /dev/cdrom1 /mnt/cdrom1 udf,iso9660,auto noauto,user,ro 0 0

    These settings allow any user to mount CDs. (man fstab for more info). You should now be able to use and burn CDs again. I also had weird craziness appear with the KDE icons that point to the devices, and I had to recreate them several times until they magically started working. :-(