kickstarting a 2600

Ned Bass bass6 at
Sun Aug 17 13:04:00 CDT 2003


On Thu, Aug 14, 2003 at 03:23:13PM -0500, Wendy.Faulkner wrote:
> I found a megaraid_2002 driver which was on a boot diskette and I merged
> that into my kickstart.  I see it load during the kickstart, but I still
> get "An error has occurred - no valid devices were found on which to
> create new filesystems."

I ran into the same problems trying to kickstart a PE2600.  You don't
mention what you did to merge the megaraid_2002 into your kickstart,
so I'll go over the solution that I came up with.  

At the time Red Hat had not posted megaraid driver disks for Update 2 for
RHEL AS 2.1, so my solution was to add the megaraid_2002.o module from
the kernel-BOOT binary rpm to the initrd-everything.img initial ramdisk.
It looks like Red Hat has since posted driver disks, so the trouble I
went to may not be necessary anymore.  Your best bet may be to download
and install the Update 2 release, and use the driver disks posted here:

However, if that is not practical for you for whatever reason, this
approach should also work.  I did not document what I did at the time,
so I am reconstructing the following from memory and hopefully I am not
forgetting anything.

First, I extracted the needed module from the kernel-BOOT package:

# rpm2cpio kernel-BOOT-2.4.9-e.24.i386.rpm | ( cd /tmp ; cpio -i --make-directories '*megaraid_2002*' )

Note that I am using 2.4.9-e.24 but the steps should be the same for the
version you're using.

Then, to modify initrd-everything.img:

# zcat initrd-everything.img > /var/tmp/initrd-everything 
# mount -o loop /var/tmp/initrd-everything /mnt/disk1
# zcat /mnt/disk1/modules/modules.cgz | ( cd /tmp ; cpio -i --make-directories )
# cp /tmp/lib/modules/2.4.9-e.24BOOT/kernel/drivers/addon/megaraid_2002/megaraid_2002.o /tmp/2.4.9-e.24BOOT/
# cd /tmp
# find 2.4.9-e.24BOOT/ | cpio -o -H crc > modules.cpio
# gzip -9 -n modules.cpio
# mv modules.cpio.gz modules.cgz
# cp modules.cgz /mnt/disk1/modules
# cd /mnt/disk1/modules

At this point I modified the files pcitable and module-info in the
modules directory, as shown by the following diffs.  I don't know if
this step was strictly necessary.  I think I copied the entries from the
megaraid driver disk for the e.12 kernel.

--- /tmp/pcitable.orig	Sun Aug 17 10:38:04 2003
+++ pcitable	Mon Jun 16 17:11:13 2003
@@ -34,6 +34,7 @@
 0x1000	0x0021	"sym53c8xx"	"Symbios|53c1010 66MHz Ultra3 SCSI Adapter"
 0x1000	0x0030	"mptscsih"	"Symbios|53c1030"
 0x1000	0x0040	"mptscsih"	"Symbios|53c1035"
+0x1000	0x0407	"megaraid_2002"	"LSI|MegaRAID PERC 4/QC Verde"
 0x1000	0x008f	"sym53c8xx"	"Symbios|53c875J"
 0x1000	0x0621	"mptscsih"	"Symbios|FC909"
 0x1000	0x0622	"mptscsih"	"Symbios|FC929"

--- /tmp/module-info.orig	Sun Aug 17 10:41:32 2003
+++ module-info	Mon Jun 16 17:10:22 2003
@@ -238,6 +238,9 @@
 	"MegaRAID 418, 428, 438, 466, 762"
+	scsi
+	"Updated MegaRAID version 2 driver"
 	"LSI Logic Fusion MPT Base Driver"

That completes the modifications to the initial ramdisk, so the loopback
mounted image can be unmounted:

# umount /mnt/disk1

Now /var/tmp/initrd-everything.img can be copied back to your tftp server
or wherever it's being loaded from.  Finally, I added the following line
to my kickstart file to force it to load megaraid_2002.o

device scsi megaraid_2002

At this point the installation was able to load the megaraid_2002 module and
recognize the volumes on the PERC4 controller.


More information about the Linux-PowerEdge mailing list