Adding a Promise TX2 Pro RAID 1 Setup to Red Hat Linux

This article describes how to add a Promise TX2 Pro RAID controller to an existing small server, compile and configure the RAID drivers, and then add the new RAID array as a LVM volume group to allow for future expansion.

There is a major shortcoming in Promise's support for Linux. Although they claim support for Red Hat 7.3 and 8.0, for example, they only support the kernel versions that are initially installed from CD-ROM. However, prudent system administrators will update their kernels, either via up2date, Red Hat Network, or by building a new kernel from downloaded generic kernel source. Once this has been done, the Promise binary-only modules will not install, since they were compiled against a specific kernel version.

I have challenged Promise tech support on this; their reply was:

"We support the stock kernal [sic] for linux redhat 7.2, 7.3 and 8.0
If you have issues with this please contact our support "

My response is that no-one actually uses the stock kernel - it has to beupgraded to apply bug-fixes and security patches. And yes, I have issues with this, I did contact their support, and my advice now is: Do not buy a Promise RAID controller - instead, spend your money with a supplier who actually supports Linux, an operating system which - according to Oracle CEO Larry Ellison - will overtake Windows in the datacenter.

The steps described here were tested on Red Hat 9. However, since the article was originally written, I have done a major swap-around of hardware, and have installed the Promise TX2 controller in our main file/print server, which runs Red Hat 7.3, and confirmed that it works there, too. The kernel revision numbers are different, obviously, but otherwise, the steps are the same. I've also had confirmation that it works on Red Hat 7.3 from Christian Scheele (see Credits). In fact, the technique should work under any version of Red Hat and even similar distributions, with some minor adjustments.

This technique makes use of a Promise driver which is distributed partially as a binary object file and partially as source code. It is installed by compiling the source and linking the binaries together on the target system, so that one is no longer tied to a specific kernel version supported by the binary-only driver. However, if this technique fails, there is always the ataraid.o and pdcraid.o drivers which are now standard in the kernel - I only had limited success with these, however; if I powered down one of the hot-swap drives in my system, it would lock up. This does not happen with the FastTrak driver, however, which is why I have persevered with it.

Here are the steps involved

0. Make sure you have the Red Hat kernel sources installed under /usr/src/linux-2.4. If you haven't, then install the kernel-source-2.4.20-8 RPM from the Red Hat CD's, with the command

rpm -ivh kernel-source-*.rpm

If necessary, update the kernel-source to be the same version as your running kernel, via Red Hat Network, or with the up2date command:

up2date kernel-source

Configure the kernel in the following way:
cd /usr/src
ln -s linux-2.4.20-8 linuxCreate the standard /usr/src/linux symlink
cd linux
vi MakefileAnd delete the "custom" on the end of EXTRAVERSION
make mrproperCleans up and creates various symlinks, etc.
cp configs/kernel-2.4.20-i686.config .configOr use one of the other config files as appropriate
make oldconfigAnswers all the questions in the config file
make depCreates the dependencies for the Makefile

That's as far as you need to go - you don't have to actually build a kernel and install it, which is a relief. However, the make oldconfig and make dep steps seem to be necessary

1. Download the Promise FastTrak driver. The file you are looking for was called 5_ftsrc-b25.tar at the time of writing. You can find it by going to http://www.promise.com/ and clicking on "Support -> Download" at top center of the page, then selecting "FastTrack100 TX2 Pro", "All" and "Other" in the list boxes at the bottom of the page, followed by "GO". In the resulting page, the entry "Partial Linux Source Code" is the one you are after.

The link http://www.promise.com/support/file/driver/5_ftsrc-b25.tgz might get you there quicker, but by the time you read this, there might be a later version or the file might have been moved. (Update: There's a later version on their site called 4_fasttrak_partial_source_1.03.0.2.zip - the direct link is http://www.promise.com/support/file/driver/4_fasttrak_partial_source_1.03.0.2.zip).

2. Untar the source and binaries to a new directory under /usr/src:

su -
Password:
cd /usr/src
tar xvf /path/to/5_ftsrc-b25.tar

3. Build the driver module:

cd ftsrc
make

4. Install the driver module into the correct directory:

cp FastTrak.o /lib/modules/`uname -r`/kernel/drivers/scsi

and update the module dependencies database with the command

depmod -a

A "depmod: *** Unresolved symbols in /lib/modules/2.x.y-zz.a/kernel/drivers/scsi/FastTrak.o" message at this point appears to be spurious and you can proceed.

5. Test that the module loads correctly:

modprobe scsi_mod
modprobe FastTrak

Any error messages should be investigated and resolved before proceeding.

6. Add the required module to /etc/modules.conf and create an initial RAM disk:

echo "alias scsi_hostadapter FastTrak" >> /etc/modules.conf

mkinitrd -v /boot/initrd-2.4.20-8raid.img 2.4.20-8

If you are using LVM (Logical Volume Management), you should include --preload lvm-mod in the above line.

7. Edit /boot/grub/grub.conf. Duplicate the existing entry which looks something like this:

title Red Hat Linux (2.4.20-8)
       root (hd0,0)
       kernel /vmlinuz-2.4.20-8 ro root=/dev/Volume00/LogVol00 hdd=ide-scsi
       initrd /initrd-2.4.20-8.img

Hint: in vi, put the cursor on the "title" line and type '4yy', then move the cursor down to the last line and type 'p'

Now, edit the duplicated section so that it looks like this:

title Red Hat Linux (2.4.20-8) with RAID
       root (hd0,0)
       kernel /vmlinuz-2.4.20-8 ro root=/dev/Volume00/LogVol00 hdd=ide-scsi ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0 ide6=0 ide7=0 ide8=0 ide9=0
       initrd /initrd-2.4.20-8raid.img

8. Reboot and select the "with RAID" kernel. The RAID array should now be available as /dev/sda.

Credits

Thanks to Christian Scheele, who confirmed that this technique works with Red Hat 7.3, and contributed some refinements to some of the steps, particularly step6, creation of the initial RAM disk. Christian has created RPM and SRPM packages of kernel 2.4.21 with FastTrak support for Red Hat 7.3; they can be downloaded from http://rpm.newmedia-net.de/.
Page last updated: 11/Nov/2004 Back to Home Copyright © 1987-2010 Les Bell and Associates Pty Ltd. All rights reserved. webmaster@lesbell.com.au

...........................