LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Enterprise (http://www.linuxquestions.org/questions/linux-enterprise-47/)
-   -   installig driver for RAID controller (http://www.linuxquestions.org/questions/linux-enterprise-47/installig-driver-for-raid-controller-641218/)

PrimeMogul 05-10-2008 12:01 AM

installig driver for RAID controller
 
I have an older RAID card running RAID 1 on two HD with a hot spare. The vender said they had no driver for a more recent RedHat, so could not upgrade our kernel from 2.6.9-22.ELsmp. We bought a new controller: 3wares' 9550SX. This is not supported by our present Kernel (but is by more recent ones). The plan was to connect the hot spare to the new controller, configure it as a single drive, dd from the old mirror to this single, then put all the drives on the new and rebuildthe mirror. BUT how to get the old kernel to recognze the new controller?

We downloaded the source version of the 9550SX driver from 3ware, compiled it as suggested by article 15095 in www.3ware.com/kb and since "insmod 3w-9xxx.ko" runs without error, was told by the 3ware tech this means we were successful. But the last two steps in that article is

mkinitrd -v -f --with=3w-9xxx --with=scsi_mod ==with=sd_mod \
/boot/initrd-2.6.9-22.ELsmp.img 2.6.9-22.ELsmp
reboot

(I am using my kernel name rather than the one in the article). But curently our directories /boot and /initrd are empty and there is no *.img file that I can find. The 3ware tech said he did not beleive /boot was empty. Is it emty becaue of LinuxSE?

So just how do we include the new driver in the kernel? I really have no clue about hardware. Any clues what I should do?

rayfordj 05-10-2008 05:42 PM

the mkinitrd command overwrites your current initrd in /boot.

in your example: /boot/initrd-2.6.9-22.ELsmp.img

to see if the driver is included you can "explode" the initrd and look in its module directory

Code:

mkdir -p /tmp/initrd-tmp
cd /tmp/initrd-tmp
zcat /boot/initrd-2.6.9-22.ELsmp.img | cpio -ivd
find . -type f -name 3w-9xxx.ko -print

or instead of 'find', 'ls /tmp/initrd-tmp/lib/' and look for the module.

if it is there then it is in the initial-ramdisk.

Hope this helps.

PrimeMogul 05-10-2008 08:26 PM

Quote:

Originally Posted by rayfordj (Post 3149460)
the mkinitrd command overwrites your current initrd in /boot.

Thank-you for the reply, but the problem is that /boot/ is empty. There is nothing to overwrite. Running your code snippet gives:

zcat: /boot/initrd-2.6.9-22.ELsmp.img.gz: No such file or directory

Again

Code:

# find / -name *.img -print
/usr/share/octave/2.1.57/imagelib/default.img
# find / -name *.img.gz -print
ls -al /boot
total 16
drwxr-xr-x  2 root root 4096 Jun 30  2006 .
drwxr-xr-x  23 root root 4096 May  9 14:10 ..

So I ask again.

Quote:

Originally Posted by PrimeMogul (Post 3148861)
But curently our directories /boot and /initrd are empty and there is no *.img file that I can find. ... Is it empty becaue of LinuxSE? So just how do we include the new driver in the kernel?


rayfordj 05-11-2008 04:09 PM

/initrd is empty. it is (or was) used to perform pivot_root from the ramdisk to harddisk.

/boot should not be and a properly labeled filesystem SELinux would not cause an problems with the mkinitrd command.

a default install of RHEL will place /boot on its own partition (especially with RHEL4 and RHEL5 since they use LVM for everythng else). if you look at your /etc/fstab does it have a mount entry for /boot and if you check 'mount' does it show /boot mounted?

PrimeMogul 05-12-2008 11:42 AM

I discovered /boot was empty as it is not mounted by default.
Thanks--seemed to work as you said. Thanks for helping a newbie.


All times are GMT -5. The time now is 11:51 AM.