Promise SX 4000 IDE RAID 5 Controller + Linux



LAST UPDATE: 15. May 2005



This site is for all the owners of a Promise Sx4000 IDE Raid Controller who want to use this good piece of hardware with Linux

Since the drivers at promise.com are a little outdated, Stefan Zegers, Technical Support Engineer working at Promise Netherlands
was so kind to send me the linux drivers as partial source-code (linked against a precompiled library), so I was able to compile them for the latest kernel at this time (2.4.21).
I asked Mr. Zegers if it's ok to give the driver away to folks who'd like to have it and he said "Yes, it is freeware :-)"
... so here it is ...

DOWNLOADS:


!!! UPDATE !!!


Kernel 2.6 drivers:

Kernel 2.6 partial source drivers + utils
I have not tested those drivers myself, so I can't give any guarantee that they will work seamlessly on your system !!


DANGEROUS / Latest Promise SX4000 Source drivers (28.Oct.2003) / DANGEROUS !!!(see below)


Promise Sx4000 Source drivers for Linux (16 Jun 2003)
Promise Sx 4000 Bios Version 1.02.0.5*NEW* !!
Promise Sx 4000 Bios Version 1.01.0.15
Promise TX 4000 Source drivers for Linux (11 Sep 2003)
Ready compiled module for Linux 2.4.20 (Vanilla)(Sources dated 16.June 2003)
Ready compiled module for Linux 2.4.21 (Vanilla)(Sources dated 16.June 2003)
SX 4000 drivers for SuSE 8.2 (Beta)


IMPORTANT NOTE:


The latest SX4000 driver sources (28.Oct.2003) somehow screwd up my file system on the raid array. So be careful.
*NEW* I had some trouble with Bios Version 1.01.0.15, sometimes during Controller initialization (Controller Firmware), it didn't recognize some of my drives so I upgraded the Controller-Bios to version 1.02.0.5 and problems are gone, well, at least until now :-).


Here are some examples for those who don't know how to (2)initialize the modules or to (1)compile the drivers:



Step 1:) unpacking the sources and compiling the drivers:

user@host#> tar xvfz promisesx4000.tar.gz


You'll get that output:

./partial/
./partial/up/
./partial/boot/
./partial/ata.h
./partial/fasttrak.c
./partial/fasttrak.h
./partial/ftlog.c
./partial/global.h
./partial/linuxdef.h
./partial/pti_stdev.h
./partial/pti_st.h
./partial/wrapper.c
./partial/multi/
./partial/wrapper.h
./partial/cam_con.h
./partial/cam_def.h
./partial/cam_export.h
./partial/cam.h
./partial/cam_macr.h
./partial/cam_patch.h
./partial/cam_var.h
./partial/ftlib.o
./partial/Makefile
./partial/engine/
./partial/engine/pbmtypes.h
./partial/engine/debug.h
./partial/engine/export.h
./partial/engine/constant.h
./partial/engine/buf.h
./partial/engine/global.h
./partial/engine/code.h
./partial/engine/buf_ioct.h
./partial/engine/struct.h
./partial/.Makefile.swp

user@host#> cd partial
user@host#> make



after that, if everything went right you'll see this:

gcc -D__KERNEL__ -D__LINUX__ -D_SUPPORTENCLOSURE_ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -mcpu=i386 -DCPU=386 -DMODULE -D_PBM_ -c wrapper.c
gcc -D__KERNEL__ -D__LINUX__ -D_SUPPORTENCLOSURE_ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -mcpu=i386 -DCPU=386 -DMODULE -D_PBM_ -c fasttrak.c
gcc -D__KERNEL__ -D__LINUX__ -D_SUPPORTENCLOSURE_ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -mcpu=i386 -DCPU=386 -DMODULE -D_PBM_ -c ftlog.c
ld -r -o FastTrak.o wrapper.o fasttrak.o ftlog.o ftlib.o


FastTrak.o is the module we need

now copy the module to your preferred directory (e.g. /lib/modules/2.4.xx/kernel/drivers/scsi) and intialize it by typing:

user@host#> insmod $PATH_TO_MODULE/FastTrak.o


and finally you should see something like this:


Promise FastTrak SX4000 Linux Driver Version 1.01.0.12 (27.NOV.2002)
FastTrak: Installed FastTrak SX4000 Local DIMM - 128MB
scsi0 : FastTrak SX4000
Vendor: Promise Model: 3 Disk RAID5 Rev: 1.10
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

That's it, have fun with your SX4000 :-)


Step 2:) unpacking the binary modules, installing and initializing the drivers:

user@host#> tar xvfz sx4000-2.4.20.tar.gz


You'll get that output:

promise/
promise/README
promise/FastTrak.o


now copy the module to your preferred directory (e.g. /lib/modules/2.4.xx/kernel/drivers/scsi) and intialize it by typing:

user@host#> insmod $PATH_TO_MODULE/FastTrak.o


and finally you should see something like this (the output as in Step 1):


Promise FastTrak SX4000 Linux Driver Version 1.01.0.12 (27.NOV.2002)
FastTrak: Installed FastTrak SX4000 Local DIMM - 128MB
scsi0 : FastTrak SX4000
Vendor: Promise Model: 3 Disk RAID5 Rev: 1.10
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

Troubleshooting


If initialization doesn't work the way it should:

- be sure to use the correct Bios with your SX4000 controller
- don't forget to enable SCSI Support in your Kernel

Contact


a) There's a discussion group at Yahoo

Group name: sx4000linux
Group home page: http://groups.yahoo.com/group/sx4000linux
Group email: sx4000linux@yahoogroups.com

b) Mail the feedback /comments/ request to linuxcomments@promise.com

last change: 15. May 2005
© 2003 Frank Schuessler
C_login

free hit counter