Link to home
Start Free TrialLog in
Avatar of kurtcostello
kurtcostello

asked on

Installing CentOS 5.3 RocketRaid 2320 array

I am trying to install a copy of CentOS on a 6 disc raid 5 array on a RocketRaid 2320.  I am problems getting the drivers to install.  I am following the instructions located on at http://www.highpoint-tech.com/BIOS_Driver/rr232x/Linux/newformat/Install_RHEL_CentOS_RR232x.pdf.  For some reasme when I try to run the install step 1 script I keep getting Error to extract driver.  Why would this be.
Avatar of arnold
arnold
Flag of United States of America image

Did you create the driver floppy?
I think it should be tar -xzvf filename.tar.gz -C /mnt/floppy.
Avatar of kurtcostello
kurtcostello

ASKER

that is exactly what I did.
What is the error message that you get?
Does it say the archive is corrupt?
Are you booting the system with liveCD or are you using a separate system to create the floppy?
I am just booting off disc CentOS 5.3 install cd.  I created the the floppy on a different linux machine using the following command.

# mkdosfs /dev/fd0
# mkdir -p /mnt/floppy
# mount /dev/fd0 /mnt/floppy
# tar xzvf rr232x-rhel-5u2.tar.gz -C /mnt/floppy
# umount /dev/fd0

Of course first i did a wget to download the file from the hightpoint site.  This are the exact instructions from the site.

This seemed to work fine.  I was when I was installing the driver that I had the problem.  For that I switched to console 2 and did the following commands.

# mkdir /dd
# mount /dev/fd0 /dd
# cp -r /dd /tmp/hptdd
# umount /dd
# sh /tmp/hptdd/rhel-install-step1.sh  

These are the instructions mention in the manual I link to in my original post.
The exact error was Error to extract driver
It should say Driver Installation step 1 completed.  Instead it ways Error to extract driver.
The steps you are following dealing with adding the driver to an existing installed system and not on including the drive in the initial installation of the OS on the drive.
Note that difference that you are using the floppy drive while the install instructions deal with the Hard Drive /dev/sda1.

You need to use the floppy disk to reference the OS installer with where it can find the needed drivers.

When installing a system from scratch, you need to follow the second section (Install OS on RR232x controller) of the document you referenced and not the third (Add drivers to an existing OS to access RR232x resources).
I am getting these instruction ffrom section 2 of the document.  If you you look at section 2 step four it says to do exactly what I did with exception to changing sda to fd0.
Do you use a Regular floppy drive or a USB attached floppy drive?
Look at the contents of the /dd prior to copying.
what are the contents of /tmp/hptdd?

I am using a floppy drive conected internally
the files inside of /dd are

install.sh, modules.cfz, pcitable, rhel-install-step2.sh, installmethod.py, modules.dep, readme.txt, modinfo, modules.pcimap, rhdd, modules.alias, pci.ida, rhel-install-step1.sh

the contects of the /tmp/hptdd are

the exact same as above.
anymore ideas on this?
Could you look at the contents of the files.  I see there are step1 and step2, i.e. when you run the step1 script it does not meet some criteria and does not go to step2.
I do not know what the scripts are supposed to do or why it might fail.
The first step might be trying to see whether the controller is detected prior to installing the drivers. For one reason or another the check fails to detect the existance of the RR232x and the driver installation is not performed.
According to the manual referenced above the step2 script is not supposed to be run until the Linux installation is done.

How do I go about seeing if the controller is detected prior to installing the drivers?   I Know it is seen by the motherboard because I I do a windows install I can install the driver and it sees it during a windows install.
run lspci at the bash prompt.

look at what the step1 script is supposed to do.
when I do the lspci command one of the lines that it displays is:
04:00:0 SCSI storage contoller: Highpoint technologies Inc. RocketRaid 2320 SATA-II COntroller (rev 09)

Therefore I know the install is at least seeing the device.

The contents of the step1 script are

#!/bin/sh

DRIVER=rr232x

echo "Driver Installation"
CWD=`dirname $0`
MACHINE=i686
KERNEL=`uname -r`

machine=`uname -m`
if [ $machine = "x86_64" ];then
        MACHINE=$machine
fi
cd /tmp
if [ -f $CWD/modules.cgz ]; then
  gzip -dc $CWD/modules.cgz | cpio -idum ${KERNEL}/${MACHINE}/${DRIVER}.ko > /de                                          v/null 2>/dev/null
  if [ ! -f ${KERNEL}/${MACHINE}/${DRIVER}.ko ]; then
    echo "Error to extract driver."
    exit 1
  fi
else
  echo "No driver archive found."
  exit 1
fi

modprobe sd_mod
insmod ${KERNEL}/${MACHINE}/${DRIVER}.ko

echo "Driver installation step 1 completed."
You should have had the "Driver Installation" displayed.
Presumably the modules.cfz should actually be modules.cgz which is tested in the second if statement.

The other problem is $CWD is set and used as a reference point in the second test.
The issue is likely that $CWD in your case is /.  When the test for modules.cgz is run the module file does not exist in /modules.cgz.
To correct the issue, make sure you "cd to /tmp/hptdd" prior to running the driver install script, "sh /tmp/hptdd/rhel-install-step1.sh"

See if this change resolves the issue which I believe it should.

Good Luck
Still having issues.  First when I listed the names of the files that one test I mad3e a typo.  the file is calles modules.cgz not modules.cfz.

Also, when I cd to /tmp/hptdd and then I run the script I get "No driver archive found."

One thing that I did notice though is that one of the checks in the script check for x86_64 to see if it is a 64bit install.  I am actually using a 32bit install.  Could this be the reason why,  The problem is when I look on highpoints site I don't see a designation between a 64bit driver and a 32bit.
Ok, so I tested that theory by downloading a 64 bit version of CentOS but I get the same result.
That check is just to see whether besides the $machine variable which gets set to the type of system, deals with setting the $MACHINE variable when the OS is 64bit.

In your test, $machine will be likely i386, i686, etc. and $MACHINE will be left unset.
This check will not terminate the script.

After the CWD=`dirname $0`, please add echo "$CWD" prior to running the step1 script to see what CWD gets set to.

An alternative is copy out the /tmp/hptdd/* file into the /tmp location.

Something else does not make sense, did you receive the, "Driver installation" in all prior cases?
This notice should come up any time the script is executed.  The only time it will not is when the script file is blank.
ok I added echo "$CWD" to the script.  When I run it from root by typing sh /tmp/htpdd/rhel-install-step1.sh I get the following out put

Driver Instalation
/tmp/htpdd/
Error to extract driver

When I copy everything to /tmp and then run it by typing sh /tmp/rhel-install-step1.sh I get the following

 Driver Instalation
/tmp
Error to extract driver

And yes everytime I run this script I get Driver instalation at the beginning.
Ok add to the line prior to gzip,
mkdir -p ${KERNEL}/${MACHINE}

The above will create the directory structure to where the driver is extracted.  
See if it gets you further along.
Ok so i edited the script so it looks like the following:

#!/bin/sh

DRIVER=rr232x

echo "Driver Installation"
CWD=`dirname $0`
MACHINE=i686
KERNEL=`uname -r`

machine=`uname -m`
if [ $machine = "x86_64" ];then
        MACHINE=$machine
fi
cd /tmp
if [ -f $CWD/modules.cgz ]; then
  mkdir -p ${KERNEL}/${MACHINE}
  gzip -dc $CWD/modules.cgz | cpio -idum ${KERNEL}/${MACHINE}/${DRIVER}.ko > /de                                          v/null 2>/dev/null
  if [ ! -f ${KERNEL}/${MACHINE}/${DRIVER}.ko ]; then
    echo "Error to extract driver."
    exit 1
  fi
else
  echo "No driver archive found."
  exit 1
fi

modprobe sd_mod
insmod ${KERNEL}/${MACHINE}/${DRIVER}.ko

echo "Driver installation step 1 completed."

Even after doing that I still get the Error to extract driver error
I did notice though that if created the directories.
The option is to run the commands in sequence to see what the issue is.
See whether you get an error dealing with a corrupt modules.cgz which will come from the gzip command or whether the error comes from CPIO dealing with a corrupt data stream.

Instead of running the script.

run the following sequence or alternatively, comment out the >/dev/null on the gzip line by adding a # in front of the >

KERNEL=`uname -r`
MACHINE=i686
 
 
gzip -dc /tmp/htpdd/modules.cgz | cpio -idum /tmp/${KERNEL}/${MACHINE}/rr232x.ko
#comment if the above does not generate any errors and the file rr232x.ko exists.
#run the following step from the script:
modprobe sd_mod
insmod /tmp/${KERNEL}/${MACHINE}/rr232x.ko
#see whether this resolves the issue.

Open in new window

I ram all these commands sequentially and did not get any errors, In fact the only command that returned any output at all was gzip -dc /tmp/htpdd/modules.cgz | cpio -idum /tmp/${KERNEL}/${MACHINE}/rr232x.ko which returned "2568 blocks"

After this I went back to the GUI to try the rest of the installation and noticed that it is still not seeing the drive on the drive array.
Do you use the advanced partitioning options which is what the document you provided has along side the need to hit the change drive option for grub.

During the boot proces, you entered the configuration of the RR232x controller and grouped the drives in the ARRAY into a RAID 5 volume.

When you Follow the instructions in the document following the installation/loading of the RR232x driver, ALT+F6 Section 2 of the document. Step 4 of the installation subitem 4, 5 until you hit the beginning of Step 4.a which deals with copying the drivers you loaded with insmod and now need to copy the driver into the system's image?
I can't get to the advanced partitioning option yet because no drive is seen.  The box where it ways select the drives to use for this instalation is empty.  If I select advanced storage config it only gives me an option to connect to an ISCSI drive.  

Yes I did create a raid fid config in the contoller bios ustility.

I am not sure what you are saying in this last paragraph.  
Ok I think I may have figured out why I was having issues.  Apparently HighPoint does not have a driver for CentOS 5.3 yet.  I seems I will need to compile my own driver from the open source driver on their download page.  Do you by any chance know of the easiest way to do that?
I am trying to see whether you go through the custom disk layout or you are opting to let the OS installer determine the partitions.

Lets try this:
After you run through the commands included in the script (post ID 24863405).
run:
lsmod | grep sd_mod

I am trying to see whether that module gets loaded (following the insmod directive)
Run df -k
do you have anything mounted on /mnt?

Ok I think I may have figured out why I was having issues.  Apparently HighPoint does not have a driver for CentOS 5.3 yet.  I seems I will need to compile my own driver from the open source driver on their download page.  Do you by any chance know of the easiest way to do that?
An option is to download the source of the driver. and then use the liveCD environment to compile it.
Unfortunately, I am not sure whether the option to compile a driver within the install console is an option.
i.e. you get the source of the driver/module and then during the install go through the ALT+F2 into the console and use a USB to get the source and compile it there etc.
If you would post a link to the Manufacturer's source distribution, I can take a look and see what options there are.
The alternative is to install using the supported Centos 5.2 and then go through the yum update process to get the system to 5.3 without the hastle of trying to resolve the install part, but you may run into the issue that the update to 5.3 will mess things up.
The download for the Open Source Driver is located at http://www.highpoint-tech.com/BIOS_Driver/rr232x/Linux/newformat/rr232x-linux-src-v1.9-090407-1135.tar.gz.  

As far as creating the driver I was thinking of installing CentOS 5.3 on the a HDD driectly connected to the MB and then creating the driver from there.  That way it uses the same kernel.
That is another option which will have the storage array as a secondary or are you thinking of building the module/driver and then using it to reinstall the OS on the Array a new?
The driver/module is an add on rather than built into the kernel.
The above is without having the chance to look at the driver/module.
In a hasty response mixed up to many things.

The compilation of the driver/module is fairly straight forward.

I have the module built on kernel 2.6.18-92.1.22.el5. 5.2.

See if you have a Centos 5.3 liveCD from which you can boot to see whether the module can be compiled without going through the lengthy install process.
Then copy the rr232x.ko file onto a USB and repeat the process you had to modprobe, and insmod to load it.

Ok I just decided to install in on a local disc.  I am now trying to get the driver made but am still having issues.  I am on kernel 2.6.18-128.el5.  According to the readme file for the opensource driver all I need to do is
cd rr232x-linux-src-v1.9/product/rr232x/linux/
then
run the make command

When I do that I get

"grep: /lib/modules/2.6.18-128.el5/build/include/linux/version.h: No such file or                                       directory
expr: syntax error
../../../inc/linux/Makefile.def:85: *** Only kernel 2.4/2.6 is supported but you                                       use 2..  Stop.
"

What am I missing here?
make sure you have the kernel-devel package installed.
see if you have kernel-devel
rpm -qa | grep kernel-devel
kernel-devel-2.6.18-128.el5 and kernel-headers-2.6.18-128.el5 should be in the list.

If you are missing both or either, remove the one you have from the command below prior to running:
yum kernel-devel kernel-headers
I just installed did yum install of kernel-devel

Now when I do a rpm -qa | grep kernel

I get the following results.

"kernel-headers-2.6.18-128.2.1.el5
kernel-devel-2.6.18-128.2.1.el5
kernel-2.6.18-128.el5"

However, when i try to make command I still get

[root@localhost linux]# make
grep: /lib/modules/2.6.18-128.el5/build/include/linux/version.h: No such file or directory
expr: syntax error
../../../inc/linux/Makefile.def:85: *** Only kernel 2.4/2.6 is supported but you use 2..  Stop.
run more /lib/modules/2.6.18-128.el5/build/include/linux/version.h
grep mean search for something and your command is incomplete
you have what to search for but not where.
grep pattern location/files

run the following:
grep LINUX_VERSION_CODE /lib/modules/2.6.18-128.el5/build/include/linux/version.h
and post the output. I am looking for the number at the end of the line.
using the number at the end of the returned line from the grep
echo "number/256%265"|bc
The result should be 6.
If it is not 6, what is it?
If it is 7.
A way to fix it is to edit the  Makdfile.def on line 83 adding
ifneq ($(KERNEL_VER), 2.7) above the similar line with 2.6
and adding an
endif after the last endif line 88.
I must be missing something here because /lib/modules/2.6.18-128.el5/build/include/linux/version.h does not exist.  That path only goes to the directory 2.6.18-128.el5.  there is something called build inside but it does not seem to be a directory.  If I do a ls -lh command in that directory I get the following:

[root@localhost /]# cd /lib/modules/2.6.18-128.el5/
[root@localhost 2.6.18-128.el5]# ls -lh
total 1.3M
lrwxrwxrwx  1 root root   46 Jul 16 09:10 build -> ../../../usr/src/kernels/2.6.18-128.el5-x86_64
drwxr-xr-x  2 root root 4.0K Jan 21 11:05 extra
drwxr-xr-x 10 root root 4.0K Jul 16 09:10 kernel
-rw-r--r--  1 root root 259K Jul 16 09:10 modules.alias
-rw-r--r--  1 root root   69 Jul 16 09:10 modules.ccwmap
-rw-r--r--  1 root root 199K Jul 16 09:10 modules.dep
-rw-r--r--  1 root root  147 Jul 16 09:10 modules.ieee1394map
-rw-r--r--  1 root root  375 Jul 16 09:10 modules.inputmap
-rw-r--r--  1 root root 2.3K Jul 16 09:10 modules.isapnpmap
-rw-r--r--  1 root root   74 Jul 16 09:10 modules.ofmap
-rw-r--r--  1 root root 196K Jul 16 09:10 modules.pcimap
-rw-r--r--  1 root root 4.0K Jul 16 09:10 modules.seriomap
-rw-r--r--  1 root root 122K Jul 16 09:10 modules.symbols
-rw-r--r--  1 root root 342K Jul 16 09:10 modules.usbmap
lrwxrwxrwx  1 root root    5 Jul 16 09:10 source -> build
drwxr-xr-x  2 root root 4.0K Jan 21 11:05 updates
drwxr-xr-x  2 root root 4.0K Jan 21 11:05 weak-updates

I did a locate command on version.h and got

[root@localhost 2.6.18-128.el5]# locate version.h
/usr/include/gnu/libc-version.h
/usr/include/linux/version.h
/usr/include/linux/dvb/version.h
/usr/share/doc/ImageMagick-6.2.8/www/subversion.html
/usr/share/doc/ImageMagick-6.2.8/www/api/version.html
/var/www/manual/mod/mod_version.html



/usr/src is where the installed kernel files reside.
/usr/include/linux/version.h is what it is looking for.

The file is looking for the linux kernel version.

ls -l /usr/src/kernels/
What do you have?
post the results of uname -rim

I see the problem.
Your current kernel is 2.6.18-128.el5, but your header and devel versions are for a newer kernel 2.6.18-128.2.1.el5.

It looks as though you installed the source and header of the newer kernel without adding the newer kernel to your system.
The option you have is to run
yum upgrade kernel
Then see if you system can boot to the new kernel.
Alternatively, you can use yum to install the older source and headers:

yum install kernel-devel-2.6.18-128.el5

The above should be fine.  Note that you would likely have to build the module into the kernel everytime you upgrade the kernel.

yum update

Do not delete the older kernel unless you can successfully boot into the new one.  The old one will be your failsafe in the event the newer kernel has a problem with booting your system.
I often leave a prior version just in case something goes wrong down the line.
Ok, I am almost there.  I created the driver and can install it on the existing OS.  Now I need to figure out how to install it on a fresh.  

Will it be an issue that the driver was created with kernel 2.6.18-128.2.1.el5 when the kernel on the install cd is kernel 2.6.18-128.el5

How do I install it?
ASKER CERTIFIED SOLUTION
Avatar of arnold
arnold
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial