How to add third party device driver to Linux Installation CD?

I have a system with a RAID card (which I will boot from) that does not come with built in driver support from Redhat/CentOS Linux. So during the installation, I need to type 'linux dd' at the boot prompt, insert the driver CD and load the driver. I'd like to eliminate having to do this extra step of inserting a driver disk and instead have the Linux Install CD come with build in support for this RAID.

How can I add this third party driver to the install CD? What exact steps do I need to take to add it and reburn a new install CD?

This is urgent so any help would be appreciated, thanks!

P.S.
The third party device driver install CD comes with the following files:
modinfo
modules.cgz
modules.dep
pcitable
rhdd

The RAID card manufacturer also provides the drivers as the following files:
3w-9xxx.hug
3w-9xxx.ko
3w-9xxx.smp


patKCAsked:
Who is Participating?
 
DarthModCommented:
PAQed with points refunded (500)

DarthMod
Community Support Moderator
0
 
m1tk4Commented:
I think when you realize how complex is what you are trying to do you'll give up, it's not worth it.

In a nutshell, what happens during the installation is the custom driver you supplied on a diskette is built into a initrd (init RAM disk) image that is allocated at boot time to boot the kernel from. So, to include your device driver on the installation CD you need to build an initrd with your driver and replace

- the default initrd on the boot CD
- all kernel packages on the CDs
- all kernel source packages on the CDs (if any)

with an initrd built with your driver, update checksums used by mediacheck.

This is if everything goes fine. There is also a possibility that install checks the signatures of RPMs installed, and because you can't sign your new kernel RPMs with either RedHat or CentOS signatures that all other packages are signed with, you'll need to re-sign them ALL with your signature.

If you are not convinced to abandone this idea by now, your skills probably are vastly higher than mine and I'll stop here ;)))

0
 
patKCAuthor Commented:
That's disappointing to hear.

Is there any other workarounds? Like say burning the device driver to a folder on the install CD and programming the kickstart to utilize that device driver automatically?
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
m1tk4Commented:
I'm not so familiar with kickstart to advise you on that, but what you could do is burn the files that come with 3rd party device driver install cd onto the first boot CD along with the distribution files. They have to be in the root directory though and you still need to run linux dd to prompt for them.

0
 
MyrandorCommented:
For your information, we've been using 3ware cards on Redhat, Fedora and CentOS without any third party drivers. Linux has a 3ware drivers which works fine on many (and maybe all) 3ware cards.

Just to a "lsmod" and you should see the driver loaded, without even installing a third party driver.

If it's not there, make sure that the driver you download is compatible with the kernel version you run. For example, a driver for kernel 2.4 will not work on a 2.6 system.
0
 
patKCAuthor Commented:
Thanks for the replies everyone. BTW the included 3ware driver with CentOS did not work correctly with my 9550SX card so I was forced to use a separate driver.

The good news is I found a relatively simple solution! Compiling the drivers into the install media is a monumental task as m1tk4 mentioned. We know you can utilize the dd option to load a separate driver in. There's nothing stopping that driver from being located on the install media since the installer just looks in the root directory of the partiton you specify the driver is at. So I just copied the driver files (modinfo,modules.cgz,modules.dep,pcitable,rhdd) to the root of the install DVD. Typing linux dd and pointing it to the install CD lets it load the driver! Cool no more disk swapping!

Let's not stop there though. We know you can automate the install procedure by utilizing kickstart. And guess what? Kickstart has a driverdisk option! Hallelujah! A thousand thank yous to the guy who thought of including that option. So now, you no longer have to point the installer to your driverdisk location either!

In summary, here's what I did:
1. Add the following line to kickstart configuration file (hda is location of my cdrom drive where the install CD and thus driver are located):

     driverdisk hda --type=iso9660

2.Create new installation CD with the following changes:
    -ks.cfg and device driver files added to the / of the CD


I can now just pop in the install DVD in and have system install everything by itself with zero interaction!
0
 
m1tk4Commented:
patKC, great job! The only point to mention to your clients (if you are planning to distribute these CD's outside your organization) is that the mediacheck option will now fail (for obvious reasons that the checksums won't match). There could be, however, a way to solve that as well if that's the problem.

Another possible problem spot is specifying your driverdisk as hda - unless you can guarantee that your CD-ROM will always be a master on the primary IDE channel.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.