Installing drivers for a Highpoint RocketRaid card in Fedora.

Installing a Highpoint RocketRaid 1820A and Fedora Core 3 kernel 681 on i386 Single Processor System.

I have successfully built drivers for the Highpoint RocketRaid 1820A for Fedora Core 3 on i386 Single Processor System.  However, while finding doumentation online was the key to building the driver, I thought I'd share the process with you in as much detail as I can in hopes that this will be useful to other people.

If you would like my copy of the driver, just email me!

If you want to follow these directions, first install the card on your system and configure your disk array on bootup.  Boot into linux and (as root):

Step 1:  DOWNLOAD THE KERNEL SOURCE FOR YOUR KERNEL VERSION.
a.  Download kernel source RPM from http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/SRPMS/.  For the latest kernel that I have, the source file was kernel-2.6.9-1.681_FC3.src.rpm.

b.  Install your new kernel:
# rpm -i kernel-2.6.9-1.681_FC3.src.rpm -vv

c.  Prepare the kernel source code with Red Hat modifications
# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target=i686 kernel-2.6.spec

d. cd to kernel tree located in /usr/src/redhat/BUILD/.  Verify you are in there by looking at your directory and noting a configs directory. In resulting tree, the configurations for the specific kernels shipped in Fedora Core 3 are in the /configs/ directory. For example, the i686 SMP configuration file is named /configs/kernel-<version>-i686.config. The multi-processor machine source has SMP appended to the filename. Issue the following command to place the desired configuration file in the proper place for building:
# cp <desired-file> ./.config

e. Now build the source objects.  Yes, this is necessary...
# make oldconfig
# make

Congratulations!  You are one step closer to hard drive Nirvana!

Step 2: DOWNLOAD AND BUILD THE HIGHPOINT DRIVER
a. Download the openbuild driver from http://www.highpoint-tech.com.  The appropriate driver I downloaded: rr182x-openbuild-v1.11.tgz.  While you are there, download the HighPoint Raid Management Software.  Expand the files with
# tar -zxvf rr182x-openbuild-v1.11.tgz

b. You now need to build the driver against the source directory you just worked on.  Issue the command from within the directory of your driver source.  On Fedora Core 3, this is:
# make KERNELDIR=/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
 
Step 3:  INSTALL AND TEST YOUR DRIVER
a.  Not quite done!  In order to install it, you need to upgrade your module-init-tools (you can get them from http://www.kernel.org/pub/linux/kernel/people/rusty/modules/). Download the module-init-tools-3.0.tar.gz.  NOTE: 3.1 module-init-tools will not work. Follow the included instructions after exploding the archive using the command:
# tar -zxvf module-init-tools-3.0.tar.gz

b. Now that you've installed the module-init-tools, you need to update your local databases:
# depmod

b. This driver relies on other modules that you have to make certain are loaded first.  So (this is from the README from the highpoint source) first load module "scsi_mod" and "sd_mod" if they are not built into kernel:
 # modprobe sd_mod

c. Load your new driver. For kernel 2.6 (Fedora core 2 and 3), the driver module is "hptmv.ko".
# insmod ./hptmv.ko

d.  If you haven't, download the HighPoint Raid Management software. Run server, run client, log in and test!  If your system plays nicely, you should see your happy new card and drivers.
   
Step 4:  LOADING AND MOUNTING YOUR RAID DISKS
a. Your system is likely different then mine, but I have simply one large array on the card, and linux is NOT installed on my raid array at boot.  Please modify your instructions accordingly, and look elsewhere if you want to install linux on your raid array.  These install instructions will not help you. 

With that in mind, you need to first partition the disk.  I chose 1 partition.  With only one mounted array, you can simply partition it with:
# fdisk /dev/sda

b. Now you can format your partition(s).  They will be mounted (if your drive was sda) as sda1 for the first, sda2 for the second.  You can choose any format you like, I chose the new journaling linux format.
# mkfs -t ext3 /dev/sda1

c. Finally, you need to mount the disk on your system.  There are two steps, the first is creating a mountpoint, which is just a folder that will map to the drive.  It can be most anywhere, the most common places are either at the root level of your system such as /raid or as in the /mnt directory such as /mnt/raid.  The folder name doesn't matter, as long as it doesn't conflict with other resources already installed on your system.  The second task is telling your linux box to mount the new disk at that point.
# mkdir /mnt/raid
# mount -t ext3 /dev/sda1 /mnt/raid

Step 5: CONFIGURING TO LOAD DRIVERS AND MOUNT UPON BOOT
Now go ahead and try to access the new disk at that directory!  You should have no problems.  You are also almost done.  The problem is that your mounting of the disk, as well as the installation of the drivers themselves was only temporary.  The only thing that will remain is the directory you created as a mountpoint.  If you want them to load at the same mountpoint on boot, continue with the following directions.

a.  Configure system to load and mount the new drive.  You need to first copy the driver to a common place where it will look at boot. Make certain you adjust the path for your kernel build version.  cd to your compiled driver directory and do that:
# cp hptmv.ko /lib/modules/2.6.9-1.681_FC3/kernel/drivers/scsi

b.  Now you need to instruct the system to load the driver on boot.  Edit /etc/rc.sysinit and install the following lines of code right after the SCSI module loads.  I will display a few lines from rc.sysinit as well as my code, with the additions in bold.
# SCSI
for module in `/sbin/modprobe -c | awk '/^alias[[:space:]]+scsi_hostadapter[[:space:]]/ { print $3 }'` $scsi; do
        load_module $module
done
load_module floppy

# Add in Highpoint Raid Card
/sbin/insmod /lib/modules/2.6.9-1.681_FC3/kernel/drivers/scsi/hptmv.ko

c. Save your changes and reboot.  You can cross your fingers, sacrifice a chicken, or anything that will bring you luck, but you shouldn't need it!  You are done!

I hope this was helpful!  If so, drop me a note of thanks.  If there are errors here, point them out to me and I will adjust the instructions.


Comments

Popular Posts