solution: installing SuSE 9.2 on cerc megaraid system

From: Mark Brand (
Date: 02/08/05

Date: Tue, 08 Feb 2005 23:57:22 +0100

While trying to solve the problem of getting SuSE 9.2 installed on a
Dell 500SC with a CERC megaraid controller, I came across several
questions about this issue posted in recent months, but didn't find a
good solution. Here I'm posting my workaround so I can find it with
Google if I ever need it again. Maybe it will help somebody else too.

For a description of the problem see:

Apparently this issue started with a Yast-provided kernel upgrade on
SuSE 9.1. The workaround then was to use the module "megaraid-old"
instead of "megaraid". In the SuSE 9.2 kernel something apparently
prevents the "old" megaraid kernel module from from working.

In my Dell 500SC I have a megaraid controller that looks like this to lspci:

RAID bus controller: American Megatrends Inc. MegaRAID (rev 02)

and shows up like this in /var/log/boot.msg:

<5>megaraid: found 0x101e:0x1960:bus 0:slot 10:func 0
<5>scsi0:Found MegaRAID controller at 0xe0816000, IRQ:30
<5>megaraid: [H661:1.01] detected 1 logical drives.
<5>megaraid: supports extended CDBs.
<6>megaraid: channel[0] is raid.
<6>megaraid: channel[1] is raid.
<6>megaraid: channel[2] is raid.
<6>megaraid: channel[3] is raid.
<6>scsi0 : LSI Logic MegaRAID H661 254 commands 16 targs 7 chans 7 luns
<5>scsi0: scanning scsi channel 0 for logical drives.
<5> Vendor: MegaRAID Model: LD 0 RAID1 76G Rev: H661
<5> Type: Direct-Access ANSI SCSI revision: 02
<5>SCSI device sda: 156217344 512-byte hdwr sectors (79983 MB)
<3>sda: asking for cache data failed
<3>sda: assuming drive cache: write through
<5>SCSI device sda: 156217344 512-byte hdwr sectors (79983 MB)
<3>sda: asking for cache data failed

My workaround for this problem results in a working SuSE 9.2
installation using the plain "" kernel. It does not fix the
SuSE 9.2 kernel.

The workaround exploits the following facts:

-The original SuSE 9.1 kernel 2.6.4 (on the bootable install CD) works.
-The plain vanilla kernel 2.6.10 (and maybe other versions) from works.
-It's possible to use a SuSE 9.1 bootable install CD to perform a system
update from SuSE 9.1 to 9.2.

Here are the steps (but there are lots of possible variations):

1. Do a SuSE 9.1 installation from CD. (ftp installation
probably also OK.) It makes sense to start with a minimal installation,
but you will also need gcc, make, etc in order to build a kernel.
Install the SuSE kernel sources too because you will need the .config
file. There's no point in installing lots of packages now because
you are going to install SuSE 9.2 packages later.

2. Later (step 5) you will need the reiserfs kernel module for the SuSE
9.1 kernel on the install CD. The easiest thing to do is probably to
copy it now from /lib/modules/2.6.4/kernel/fs/reiserfs/reiserfs.ko to a

3. Build and install a plain vanilla kernel (from I
used kernel-2.6.10. Use the .config file from the SuSE kernel as your
starting configuration. In .config set the option MEGARAID_LEGACY=m
and disable the other MEGARAID options. Install your new kernel and
reboot to make sure it works. (Special SuSE features like the splash
screen and submount won't work, but you probably won't miss them. I don't.)

4. Remove the SuSE kernel and kernel sources. (rpm --erase
kernel-2.6.4 ...). This will help prevent an accidental update using
Yast later.

5. Now it's time to perform a system update to SuSE 9.2. Boot from the
SuSE 9.1 bootable install CD again. At the boot menu, select "manual
installation". Wait for the menu to appear. Now load the reiserfs module
you saved in step 2. Once the module is loaded, you can start the
installation. (I did an installation by ftp.) Be sure to choose SuSE 9.2
as your installation source (for example

6. The Yast install program will go through a detecting phase.
Eventually you should get the chance to choose to upgrade your existing
SuSE 9.1 installation. (Don't do a "new installation".) Look under
"packages" to make sure you are not going to install the kernel that
comes with SuSE 9.2. You can also select other additional software you
want. Complete the system update procedure. The plain vanilla kernel you
installed in step 3 will survive the system update.

7. Now you should have a working SuSE 9.2 system. It's a good idea to
rebuild and reinstall the kernel since SuSE 9.2 has a newer version of gcc.

Possible FAQs:
Q. Why bother with the SuSE 9.1 installation and system update to 9.2?
Why not just install SuSE 9.2 directly using the 9.1 bootable CD?
A. This would leave the SuSE 9.2 kernel installed for the first boot.

Q. Why not build the old megaraid module for the SuSE 9.2 kernel?
A. It might work. I made one attempt. I built the SuSE 9.2 kernel from
source after adding the missing MEGARAID_LEGACY=m line in .config. The
build seemed to go OK and so did loading the module during the manual
installation process, after which the drive became visible and
installation was started. However, during the installation of packages
lots of write errors on the device suddenly started to appear. Here I
gave up on this approach.

Q. Why does "asking for cache data failed" appear in boot.msg. Is this
A. I don't know . I hope somebody that knows will comment.