Help answer threads with 0 replies.
Go Back > Forums > Linux Forums > Linux - Software
User Name
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.


  Search this Thread
Old 09-06-2007, 03:51 AM   #1
LQ Newbie
Registered: Oct 2006
Posts: 1

Rep: Reputation: 0
Add new cciss driver module to initrd.img ,stage2.img

Hi All ,

I am trying to install RHEL4 update 4 (kernel-2.6.9-5.EL) on HP Prolaint DL380 G5 .
while installing its not detecting the Hard Drive
DL380 G5 having HP Smart Array P400 controller and RHEL4 update 4 dos not contain this driver.

then i downloaded HP Smart Array driver "cpq_cciss-2.6.18-5.rhel4.i686.dd"
form HP site

during installation i have provied the driver disk at boot prompt
boot : linux dd

using this driver disk i have successfully install RHEL4 update 4 on DL380 G5

its working fine .

now i am tring to insert cciss.ko driver module on initrd.img so that i can install RHEL4 on DL380 G5 with out providing the driver disk , means it will take the driver automatically .

I followed the following steps :

A ) extract the "cpq_cciss-2.6.18-5.rhel4.i686.dd.gz"

gunzip cpq_cciss-2.6.18-5.rhel4.i686.dd.gz

mount -o loop cpq_cciss-2.6.18-5.rhel4.i686.dd /mnt/scsi

mkdir /drivers

cp /mnt/* /drivers

cd /drivers

gunzip -S .cgz modules.cgz

cpio -ivd < modules

umount /mnt/scsi

so /drivers contains the following files.
2.6.9-6.EL ( directory contains the cciss.ko driver module for HP Smart Array P400 controler)

B ) Insert cciss.ko into initrd.img and edit module-info , modules.dep , modules.pcimap , pcitable

# get the initial ramdisk image out of the RHEL4 update disk CD1

mkdir /CD1

#extract the RHEL4 iso file into /CD1

mkdir /image

cp /CD1/isolinux/initrd.img /image

cd /image

gzip -dc initrd.img > # decompress it

# mount the ramdisk so you can access it's contents.

mount -o loop /mnt/temp

# so we have a working copy of the compressed modules.

cp /mnt/temp/modules/modules.cgz /image

# extract the modules, which hide in a compressed cpio

gzip -dc modules.cgz > modules.cpio

# extract the modules in the ramdisk

cpio -idv < modules.cpio

# Put the HP Smart Array P400 module cciss.ko in with
the other modules. The source of your driver will vary depending on where
you get it from as mentioned earlier, but it should be in a proper kernel version
folder in the cciss driver download.

cp -p /drivers/2.6.9-5.EL/cciss.ko /image/2.6.9-5.EL/i686/

find 2.6.9-5.EL/ -depth -print | cpio -ov -H crc > modules.cpio # compress it in .cpio

gzip -c9 modules.cpio > modules.cgz # and compress it .cgz

cp -p modules.cgz /mnt/temp/modules # Put your compressed modules back in the image.

vim /mnt/temp/modules/module-info # edit the entry for the cciss to be for cciss and a text description.


"Update HP CCISS driver"

vim /mnt/temp/modules/pcitable # from the editor add the following and save:

0x103c 0x3220 "cciss" "CPQ|SAP6xx"
0x103c 0x3223 "cciss" "CPQ|SAP8xx"
0x103c 0x3230 "cciss" "CPQ|SAP4xx"
0x103c 0x3233 "cciss" "CPQ|SAE5xx"
0x103c 0x3238 "cciss" "CPQ|SAE2xx"

vim /mnt/temp/modules/modules.pcimap # from the editor add the following and save:
# pci module vendor device subvendor subdevice class class_mask driver_data
cciss 0x00000e11 0x0000b060 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000001
cciss 0x00000e11 0x0000b178 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000001
cciss 0x00000e11 0x00000046 0xffffffff 0xffffffff 0x00000000 0x00000000 0x00000001

vim /mnt/temp/modules/pci.ids # from the editor add the following line

0x103c Hewlett Packard Company
3223 Smart Array P800 Controller
3230 Smart Array P400 Controller
3233 Smart Array E500 Controller
3238 Smart Array E200 Controller

umount /mnt/temp # unmount the now that you're done with it.

gzip -c9 > initrd.img # compress the ramdisk back into image format.

cp -p initrd.img /CD1/isolinux/ # copy the modified ramdisk image back onto your rhel4 source disk 1.

#Create the ISO Image

mkisofs -R -J -T -no-emul-boot -boot-load-size 4 -boot-info-table -V "RHEL4-ES-U4-Disk1" -b isolinux/isolinux.bin -c isolinux/ -o RHEL4-ES-U4-Disk1.iso CD1

Now i have RHEL4-update4 disk which contains the HP Smart Array P400 controller driver module .

using this RHEL4-ES-U4-Disk1 i tried to devloyed on DL380 G5 .

while installing its detecting the Hard Drive and i am able to install linux successfully .

But the problem i am facing is that :

when i reboot the system after reboot its not loading the linux OS

the error messege i am getting
Red Hat nash version 4.1.18 starting
mkrootdev: label / not found

mount : error 2 mounting ext2
mount : error 2 mounting none
switchroot : mount faild 22

umount /initrd/dev faild 2

kernel panic not syncing

#Then i updated the in /CD1/RedHat/base/stage2.img

cd /image
mkdir /mnt/stage

mount -o loop stage2.img /mnt/stage

mkdir /image/stage-work
cd /mnt/stage
tar -cvf /image/stage2.tar .

cd /image/stage-work

tar -xvf /image/stage2.tar

cp -a /mnt/temp/modules/* /image/stage-work/modules/

mkcramfs stage-work/ stage2.img

cp stage2.img /CD1/RedHat/base/

Again i recreate the ISO and tried to install But i am getting the same error

Any help will be apreciated
Old 09-20-2007, 04:59 PM   #2
LQ Newbie
Registered: Sep 2007
Posts: 3

Rep: Reputation: 0

Try to boot the computer into a rescue mode, do a ch root which should load your file system, and then make a new initrd, with your modules within it.

There's a link, should help you... if not I'll post back in a few days. I'm trying a similar issue at work with an SCSI Controller.

Best of luck!!
Old 09-23-2007, 02:14 PM   #3
LQ Newbie
Registered: Sep 2007
Posts: 2

Rep: Reputation: 0
I'm trying having a similar issue. I've been successful adding a driver for a SATA RAID card to the initrd.img file that the CD boots to. The installation process detects the drive array and installs the OS successfully. When trying to boot the machine though it fails with the same error posted above. Can anyone tell me what file or files on the CD need to be updated so that the installed OS will boot successfully. Any help is apprecated!
Old 09-24-2007, 03:49 PM   #4
LQ Newbie
Registered: Sep 2007
Posts: 3

Rep: Reputation: 0

Okay, at work on Friday, I fixed the problem... really easy actually.

Use your linux CD (with the modified initrd.img) to load into a rescue mode. (Generally all you have to do is type "linux rescue" at the prompt)

After everything loads, load your file system with chroot (for me I think it was "$ chroot /mnt/sysimage" or something to that effect. Add your modules into the /lib/modules/(kernelversion)/drivers/scsi/ folder, and edit module.dep in /lib/modules/(kernelversion)/ and then make a new initrd.

# mkinitrd -fv /boot/initrd-2.4.21-27.img 2.4.21-27

(for example)

then change your boot loader to point at that initrd, so it loads... and you're done!

Also, to add the modules into your file system through rescue mode, you may have to boot a liveCD and do a "sudo cp" onto your HDD, unless you have other ways to get them on.

Hope this works :-)
Old 09-25-2007, 12:09 AM   #5
LQ Newbie
Registered: Sep 2007
Posts: 2

Rep: Reputation: 0
If I understand your process correctly, that will only take care of the drivers on the system just installed right? That doesn't fix the problem of having to do that to future machines that are installed from the same disk?

I'm looking for a solution that allows me to install everything my server requires, drivers, rpm's, basically the entire machine, start to finish without user intervention. Kickstart does that for the all the packages, configurations, and additional rpm's I choose to install and then in the %post section I can run any other scripts necessary to complete the process. So that only leaves the drivers. I know you can build them into the initrd.img file. I've been successful at that. It just doesn't propagate down to the installation. There should be another file on the CD I can put the driver images into and have to work, but I don't know what that file is. I'll keep digging around and post back if I come up with anything.
Thanks for the information provided,


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Failed to symbolic-link boot/initrd.img-2.6.18-4-486 to initrd.img Scotteh Linux - Software 8 06-01-2007 11:24 PM
What is stage2.img AlanL Fedora 1 04-01-2007 08:32 AM
Initrd.img spaguzz Slackware 4 12-16-2004 03:35 AM
Initrd.img spaguzz Linux - Software 1 12-09-2004 03:21 PM
initrd.img php_rocks Linux - Newbie 1 08-31-2003 11:20 PM > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 04:07 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration