LSI/MegaRAID driver problem

Issues related to hardware problems
Post Reply
javanree
Posts: 6
Joined: 2007/04/15 15:28:02
Location: Netherlands
Contact:

LSI/MegaRAID driver problem

Post by javanree » 2007/04/15 15:36:21

I still have an older Dell PowerEdge 2400 machine with the infamous Dell PERC/2 RAID controller which uses the old megaraid driver. I know about http://lists.centos.org/pipermail/centos/2005-August/010021.html and http://www.tuxyturvy.com/blog/index.php?/archives/4-Installing-RHEL4-on-Systems-with-Legacy-Megaraid-Drivers.html which explain the procedure to get things to work under CentOS4, which always worked fine for me.

However it seems that with the 2.6.18 kernel the SCSI system is vastly changed...
Upon following the outlined procedure I first hit a minor issue... the config.h file as declared in scsi.h of the megaraid driver is deprecated, to be replaced with autoconf.h

After that building still fails , with the following errors:

[root@development megaraid]# make -C /lib/modules/2.6.18-8.el5/build/ SUBDIRS=/usr/src/megaraid modules
make: Entering directory `/usr/src/kernels/2.6.18-8.1.1.el5-i686'
CC [M] /usr/src/megaraid/megaraid.o
In file included from /usr/src/megaraid/megaraid.c:48:
/usr/src/megaraid/scsi.h:29:31: error: scsi/scsi_request.h: No such file or directory
In file included from /usr/src/megaraid/megaraid.c:48:
/usr/src/megaraid/scsi.h:79: warning: ‘struct scsi_request’ declared inside parameter list
/usr/src/megaraid/scsi.h:79: warning: its scope is only this definition or declaration, which is probably not what you want
/usr/src/megaraid/scsi.h: In function ‘print_req_sense’:
/usr/src/megaraid/scsi.h:81: error: implicit declaration of function ‘scsi_print_req_sense’
/usr/src/megaraid/scsi.h:81: warning: ‘return’ with a value, in function returning void
/usr/src/megaraid/scsi.h: In function ‘print_msg’:
/usr/src/megaraid/scsi.h:97: error: implicit declaration of function ‘scsi_print_msg’
/usr/src/megaraid/megaraid.c: At top level:
/usr/src/megaraid/megaraid.c:61: error: expected ‘)’ before string constant
/usr/src/megaraid/megaraid.c:65: error: expected ‘)’ before string constant
/usr/src/megaraid/megaraid.c:70: error: expected ‘)’ before string constant
/usr/src/megaraid/megaraid.c: In function ‘mega_build_cmd’:
/usr/src/megaraid/megaraid.c:521: error: ‘Scsi_Cmnd’ has no member named ‘buffer’
/usr/src/megaraid/megaraid.c: In function ‘issue_scb’:
/usr/src/megaraid/megaraid.c:1152: warning: passing argument 2 of ‘writel’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c: In function ‘issue_scb_block’:
/usr/src/megaraid/megaraid.c:1215: warning: passing argument 2 of ‘writel’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c:1228: warning: passing argument 2 of ‘writel’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c:1230: warning: passing argument 1 of ‘readl’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c: In function ‘megaraid_isr_memmapped’:
/usr/src/megaraid/megaraid.c:1360: warning: passing argument 1 of ‘readl’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c:1367: warning: passing argument 2 of ‘writel’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c:1386: warning: passing argument 2 of ‘writel’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c:1390: warning: passing argument 1 of ‘readl’ makes pointer from integer without a cast
/usr/src/megaraid/megaraid.c: In function ‘megadev_ioctl’:
/usr/src/megaraid/megaraid.c:3646: warning: ignoring return value of ‘copy_to_user’, declared with attribute warn_unused_result
/usr/src/megaraid/megaraid.c: In function ‘mega_internal_command’:
/usr/src/megaraid/megaraid.c:4483: error: ‘Scsi_Cmnd’ has no member named ‘buffer’
/usr/src/megaraid/megaraid.c:4501: error: ‘Scsi_Cmnd’ has no member named ‘state’
/usr/src/megaraid/megaraid.c:4520: error: ‘Scsi_Cmnd’ has no member named ‘state’
/usr/src/megaraid/megaraid.c:4520: error: ‘Scsi_Cmnd’ has no member named ‘state’
/usr/src/megaraid/megaraid.c: In function ‘mega_internal_done’:
/usr/src/megaraid/megaraid.c:4554: error: ‘Scsi_Cmnd’ has no member named ‘state’
make[1]: *** [/usr/src/megaraid/megaraid.o] Error 1
make: *** [_module_/usr/src/megaraid] Error 2
make: Leaving directory `/usr/src/kernels/2.6.18-8.1.1.el5-i686'
[root@development megaraid]#

It appears scsi_request.h was dropped around 2.6.17 , however removing it won't work (although it's supposed to be a subset of scsi_cmnd.h which is already included)

Has anybody gotten this driver (or any other driver that provides FULL functionality for the PERC/2 RAID controller) to work yet?
Thanks in advance,
Jan-Albert van Ree

tabowling
Posts: 2
Joined: 2006/03/27 19:16:28

LSI/MegaRAID driver problem

Post by tabowling » 2007/04/16 15:49:12

Refer to this post. It might help. The Centos 5 Beta had the old drivers precompiled. I had to turn of I2O on the card's bios and it worked great.
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=7492

kino
Posts: 5
Joined: 2007/04/16 21:05:55

Re: LSI/MegaRAID driver problem

Post by kino » 2007/04/17 01:03:00

I have a Dell PowerServer 1300/500 with the Dell PERC/2 RAID controller and changing the PERC bios from i2o to Mass storage worked for me as well...

ToddAndMargo
Posts: 400
Joined: 2007/02/20 04:27:08
Location: Milky Way/Sol/Earth/USA/Nevada GMT-8

Re: LSI/MegaRAID driver problem

Post by ToddAndMargo » 2007/04/24 05:10:16

I have an LSI SATA-150-4. After fully wiping and reformatting my drive and
installing Cent OS 5.0, I found that 5.0 was 3 times slower on file i/o than
4.4 (on the exact same hardware). And, my controller has always been
configured for "Mas Storage". :'(

Any way to run the 4.4 SCSI driver under 5.0?

-T

Post Reply