OMSA says PERC 6/i driver version too old but current megaraid_sas module doesn't compile against kernel 2.6.26
Andreas Ntaflos
daff at pseudoterminal.org
Sat Jun 6 16:14:31 CDT 2009
Hi list,
this is my first post to this list and I am not entirely sure if I
came to the right place regarding the problem I have observed.
We run a couple of PowerEdge 2950s (SAS PERC 6/i Integrated) with a
64bit Debian Lenny and kernel 2.6.26 (2.6.26-2-amd64). We have put
these servers into operation only recently and while I have been
running Debian as a server OS for years now I haven't had any
experience managing PowerEdge servers (running Linux or not)
specifically until then. Naturally I am very thankful and happy that
the guys at sara.nl provide the Debian OMSA packages which make life
much easier.
I upgraded the OMSA packages to 6.0.1 release 8 I believe [1] and
everything went fine as far as I can tell. However, "omreport storage
controller" now tells me that the driver version of the controller is
too old:
[...]
Driver Version : 00.00.03.20-rc1
Minimum Required Driver Version : 00.00.03.21
[...]
After some googling and researching I found out how to install the new
version of the driver module in question -- megaraid_sas
v00.00.03.21-6 [2] -- using DKMS. I also found this thread [3], which
explains how to build the megaraid_sas module without DKMS. Both work
as expected up to the point where the actual compilation process
starts (the complete make.log is attached to this message):
make -C /lib/modules/2.6.26-2-amd64/build
SUBDIRS=/usr/src/megaraid_sas-v00.00.03.21 modules
make[1]: Entering directory `/usr/src/linux-source-2.6.26'
CC [M] /usr/src/megaraid_sas-v00.00.03.21/megaraid_sas.o
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c: In
function ‘megasas_make_sgl32’:
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:489: error: ‘struct
scsi_cmnd’ has no member named ‘request_buffer’
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:489: error: ‘struct
scsi_cmnd’ has no member named ‘request_bufflen’
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:492: error: ‘struct
scsi_cmnd’ has no member named ‘use_sg’
[...]
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c: In
function ‘sysfs_max_sectors_read’:
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:2499: error:
dereferencing pointer to incomplete type
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:2499: warning: type
defaults to ‘int’ in declaration of ‘__mptr’
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:2499: warning:
initialization from incompatible pointer type
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:2499: error:
invalid use of undefined type ‘struct class_device’
[...]
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c: In
function ‘megasas_io_attach’:
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:2581:
error: ‘struct Scsi_Host’ has no member named ‘shost_classdev’
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c: In
function ‘megasas_detach_one’:
/usr/src//megaraid_sas-v00.00.03.21/megaraid_sas.c:3029:
error: ‘struct Scsi_Host’ has no member named ‘shost_classdev’
make[2]: *** [/usr/src/megaraid_sas-v00.00.03.21/megaraid_sas.o] Error
1
make[1]: *** [_module_/usr/src/megaraid_sas-v00.00.03.21] Error 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.26'
make: *** [default] Error 2
The problem seems to be that the kernel's SCSI internals changed some
time back and so the megaraid_sas driver modules doesn't compile
against a recent 2.6.26 kernel anymore.
Basically, from what I found out, calls like scp->request_buffer need
to be changed to scsi_sglist(scp), with scp declared as "struct
scsi_cmnd *scp", and so on. Obviously other changes are necessary as
well, but I am in no way well-enough acquainted with the Linux kernel
internals or APIs to be able to provide a patch.
Now, is this already a known problem or is there some place I can file
a bug report? Does anyone have a solution or at least ideas? Can I
perhaps obtain this driver module from another source? Or do we have
to wait for Debian to include an updated megaraid_sas module in the
Lenny kernel (don't know if that would ever happen)?
Or, another possibility: did I go completely wrong about this whole
procedure and should have done something else entirely?
Is there any other information I can provide?
Any input will be much appreciated!
Thanks in advance!
Andreas
[1]
http://lists.us.dell.com/pipermail/linux-poweredge/2009-June/039374.html
[2]
http://ftp.us.dell.com/SAS-RAID/megaraid_sas-v00.00.03.21-6-R208840.tar.gz
[3]
http://lists.us.dell.com/pipermail/linux-poweredge/2008-April/035871.html
--
Andreas Ntaflos
Vienna, Austria
GPG Fingerprint: 6234 2E8E 5C81 C6CB E5EC 7E65 397C E2A8 090C A9B4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: make.log
Type: text/x-log
Size: 4690 bytes
Desc: not available
Url : http://lists.us.dell.com/pipermail/linux-poweredge/attachments/20090606/0c2530b3/attachment.log
More information about the Linux-PowerEdge
mailing list