How to fix SUSE Linux 10.0 for the Adaptec ATA 2400A (and other I2O?) RAID controllers

When upgrading your Linux machine to or installing a fresh version of SUSE Linux 10.0, you’re likely to run into some weird problems when you have an Adaptec ATA 2400A or possibly any other I2O RAID controller installed in your system.

Since I ran into these problem myself, I though I might as well tell you how to fix them. All my problems started when I upgraded my trusty Linux server to SUSE Linux 10.0. Actually, back then it was 10.0-RC1 but the problem is still with 10.0 and I presume it was also introduced in SUSE Linux 9.3 with the latest patches and updates.

The thing is that SUSE in their (usual) blistering ignorance of good procedures choose to activate some “cutting edge” features without – again, as usual – thinking them through. One of those features is I2O support. Normally, this would have been a great idea for the I2O subsystem greatly simplifies handling of I2O devices which turn out to be mostly RAID controllers. (Surprise, surprise).

There’s a catch, though. As the I2O FAQ clearly states, you can have either the I2O or the Adaptec driver loaded but not both at the same time. Now have a guess what SUSE is doing. Right, they’re loading both. What will happen is that your system will happily start to install Linux and copy the contents of CD1 to your hard drive. It doesn’t matter whether this drive is controlled by the RAID controller or not for the kernel used at that point of the installation doesn’t contain any I2O support.

Problems start afterwards. For the next step of the installation process runs using the kernel that was installed in Phase One. And this kernel does have I2O support enabled. At least the clash of the I2O system and the Adaptec driver dpt_i2o can and will have many side effects. First and most noticeable is that you can’t access the array any longer. Much harder to detect is the fact that your PCI bus and especially it’s IRQ and memory allocation will be fubar’ed. This can and more often than not will result in failures to start the GUI for the installer, sporadic hangs and possibly problems with other devices on the PCI bus. I don’t know whether other controllers are affected as well. The I2O site names a whole bunch of supported adapters and I don’t know whether they already support the I2O subsystem or come with their own drivers as my Adaptec does. Feedback on this topic is welcome.

To fix the hangs, you’ll either have to compile your own kernel (which I presume you don’t want to do) or disable the I2O support in the installed kernel (which is my preferred way of solving this problem). To achieve that goal, just finish Phase One of the installation as usual. When the system boots after Phase One is finished, however, you re-insert the first CD and fire up the rescue system. You’ll get to a root shell. From there, mount your hard drive using a set of simple commands:

mkdir /mnt/tmp
mount /dev/hda1 /mnt/tmp
cd /mnt/tmp/lib/modules/2.6.13-15-default/kernel/drivers/message
mv i2o i2o.fubar

Note that you’ll have to replace the /dev/hda1 above with your actual boot device. For an array provided by the RAID controller /dev/sda1 would most likely be the correct value. The same is true for systems booting from real SCSI devices. Reboot. Installation should now proceed without problems and the system should run fine afterwards.

Don’t forget that you’ll have to do this every time you update your kernel.

I agree that this is a rather brute force approach but it’s the fastest and easiest way I could come up with. If you’ve got a better solution let me know.

Incoming search terms:

This entry was posted in Hardware, Linux. Bookmark the permalink.

3 Responses to How to fix SUSE Linux 10.0 for the Adaptec ATA 2400A (and other I2O?) RAID controllers

  1. Hannes Reinecke says:

    Thank you so very much for this enlightening report.
    Of course, _if_ you had notified someone e.g. via SUSEs (nowadays Novells) bugzilla about this, someone there could have done something about it.

    I, for one. As this bugzilla would have shown up on my screen.

    Didn’t we even have a wiki for this sort of thing?
    I seem to remember something when the started openSUSE …

    Seriously, if you have something which _really_ nags you just open a bugzilla. That help us (and, eventually, even you) far better. THX.

  2. See, there’s only one kind of bug that *really* nags me: the one I can’t find a fix for. These I actually do report as you can check with the PHP project and others. In addition, my experiences with SUSE fixing any bugs I reported (personally to the product managers back then) aren’t exactly what I would call encouraging. Instead they left me with a feeling of things being deliberately broken by design. You may find some examples by searching for “SUSE Linux” on this very web site. This behaviour of SUSE may have changed now and if it has, I sincerely apologize. I just didn’t feel like reporting yet another problem that from my experience won’t get fixed anyway.

  3. mpsmith says:

    Thanks for this post! I hadn’t upgraded my system for a while and recently tried to upgrade a suse 9.0 to suse 10.0. Of course I ran into the problems that you described. I thought I was losing it for a while until I figured out what was going on. I wouldn’t have known how to fix the problem though, so thank you. I too believe that suse is/has been going down hill, which is unfortunate because I mostly like the distro. I am waiting for, and hoping that, the debian etch release in december will be worthy of becoming my distro of choice!

    -mpsmith

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>