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:
-
Linux
Kernel 2.6 how-to
[http://armin.emx.at/kernel_2.6/kernel_2.6_howto.html] -
How to upgrade to
the 2.6 kernel
[http://kerneltrap.org/node/view/799] -
Upgrading RH9 to
2.6.0
[http://www.fearthecow.net/kernel.html] -
Migrating to
Linux Kernel 2.6
[http://thomer.com/linux/migrate-to-2.6.html]
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
Get RPM 4.2 or higher.
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!
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.
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.
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
- Get the fglrx driver version 3.7 or higher from ATI's web site.
- Apply the 2.6 kernel patch and the Athlon patch (if you have an AMD Athlon chip) to the fglrx driver then build and install it as normal.
- modprobe agpgart (it may already be loaded)
-
modprobe fglrx
(If that fails, try insmod /lib/modules/2.6.1/fglrx.ko)
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.
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
.
Upgrade to cdrecord 2.0 or higher [http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html]
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
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.
- /dev/cdrom and /dev/cdrom1 vanished
- /mnt/cdrom and /mnt/cdrom1 vanished
- Research suggested that ide-scsi emulation was preventing regular IDE access from working. This makes no sense since it worked prior to 2.6.1! Even so, it is my only angle.
- An /etc/gstab.REVOKE magically appears with /dev/cdrom and /dev/cdrom1 in it, but with the wrong settings!
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.
-
Gain super-user priveledges:
su -
-
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/scd1You 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 -
Create mount points for the devices.
mkdir /mnt/cdrom
mkdir /mnt/cdrom1You 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 -
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 0These 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. :-(