DO NOT TRY THIS YOU HAVE BEEN WARNED!!!
In trying to test a set of SAS cables recently I had to build the lsi mpt fusion driver in Centos 5.9. I really don’t recommend you do this on a production machine or a machine you care much about. I was seeing errors while trying to uses disks in a JBOD disk array. This worked for me in CentOS 5.9. The documentation that lsi gives for doing this in the readme with the drivers is for old kernels. My instructions work for a 2.6 kernel.
kernel-devel usual gcc glib and make packages I might be missing some packages here but again I expect you to know how to setup the kernel source so that this works. If the commands start failing most likely you missed a package.
Preparing kernel source
Download the lsi mpt linux driver bundle. It should contain a directory with the kernel source.
Now cd into the directory for your current kernel uname -r
Something like 2.6.18-348.1.1.el5-x86_64
Backup the current driver source.
tar -cvf fusion_orig.tar fusion
rm -rf fusion
pwd to get the current working directory
change into the directory where you uncompressed the lsi driver.
find . -print |cpio -pdvm directory from pwd above
find . -print |cpio -pdvm /usr/src/kernels/2.6.18-348.1.1.el5-x86_64/drivers/message/fusion
Your source should be setup now.
In the kernel source directory /usr/src/kernels/2.6.18-348.1.1.el5-x86_64
cp *.ko /lib/modules/`uname-r`/drivers/message/fusion
Finally reboot the machine. After reboot run modprobe -l |grep mpt to get the path to the mpt driver. Then run modinfo /lib/modules/2.6.18-348.1.1.el5/kernel/drivers/message/fusion/mptbase.ko (change this to output from modprobe). This should show the version of the driver you downloaded.