LinuxQuestions.org
LinuxAnswers - the LQ Linux tutorial section.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices

Reply
 
Search this Thread
Old 04-07-2013, 03:47 PM   #1
81bones
Member
 
Registered: Oct 2006
Location: Chicago, IL
Distribution: Mageia
Posts: 46

Rep: Reputation: 15
Angry MPT Fusion drivers and linux kernel 3.x


I am building a new system that will include an LSI 3801E SAS host bus adapter. I've used this adapter in previous linux systems without issue; it uses LSI's MPT Fusion drivers. I'd like to use a flavor of linux with a 3.x kernel and have run into some issues.

I've installed Mageia 2, which uses kernel 3.4 (3.4.34-desktop-1.mga2). The HBA is immediately recognized by the OS:

Code:
user@localhost $ lspci

01:00.0 SCSI storage controller: LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (rev 08)
I am also able to use LSI's tools to query the card:

Code:
user@localhost $ sudo ./sasflash -listall

**********************************************************************
    LSI Corporation SAS FLASH Utility.
    SASFlash Version 1.30.00.00 (2011.08.24)
    Copyright (c) 2006-2011 LSI Corporation. All rights reserved.
**********************************************************************

        Adapter Selected is a LSI SAS 1068E(B3):

 Num   Ctlr      FW Ver     NVDATA   x86-BIOS     EFI-BSD    PCI Addr
----------------------------------------------------------------------

1   1068E(B3)  01.24.01.00  2d.03  06.20.00.00    No Image   00:01:00:00

Finished Processing Commands Successfully.
        Exiting SASFlash.
So far so good. Then I noticed that the module that's been prebuilt into the kernel is still quite old:

Code:
user@localhost $ sudo modinfo mptbase
filename:       /lib/modules/3.4.34-desktop-1.mga2/kernel/drivers/message/fusion/mptbase.ko.xz
version:        3.04.20
license:        GPL
description:    Fusion MPT base driver
author:         LSI Corporation
srcversion:     0C1D7CDF877110B52CC2F52
depends:
intree:         Y
vermagic:       3.4.34-desktop-1.mga2 SMP mod_unload modversions
parm:           mpt_msi_enable_spi: Enable MSI Support for SPI controllers (default=0) (int)
parm:           mpt_msi_enable_fc: Enable MSI Support for FC controllers (default=0) (int)
parm:           mpt_msi_enable_sas: Enable MSI Support for SAS controllers (default=0) (int)
parm:           mpt_channel_mapping: Mapping id's to channels (default=0) (int)
parm:           mpt_debug_level: debug level - refer to mptdebug.h - (default=0)
parm:           mpt_fwfault_debug:Enable detection of Firmware fault and halt Firmware on fault - (default=0) (int)

user@localhost $ sudo modinfo mptsas
filename:       /lib/modules/3.4.34-desktop-1.mga2/kernel/drivers/message/fusion/mptsas.ko.xz
version:        3.04.20
license:        GPL
description:    Fusion MPT SAS Host driver
author:         LSI Corporation
srcversion:     579FEED55823E9ACC712C29
alias:          pci:v00001000d00000059sv*sd*bc*sc*i*
alias:          pci:v00001000d00000062sv*sd*bc*sc*i*
alias:          pci:v00001000d00000058sv*sd*bc*sc*i*
alias:          pci:v00001000d00000056sv*sd*bc*sc*i*
alias:          pci:v00001000d00000054sv*sd*bc*sc*i*
alias:          pci:v00001000d00000050sv*sd*bc*sc*i*
depends:        mptscsih,mptbase,scsi_transport_sas,scsi_mod
intree:         Y
vermagic:       3.4.34-desktop-1.mga2 SMP mod_unload modversions
parm:           mpt_pt_clear: Clear persistency table: enable=1  (default=MPTSCSIH_PT_CLEAR=0) (int)
parm:           max_lun: max lun, default=16895  (int)
parm:           mpt_loadtime_max_sectors: Maximum sector define for Host Bus Adaptor.Range 64 to 8192 default=8192 (int)
The most recent version of mptlinux is 4.28.00.00 (released by LSI on 8/22/2011, available here) so I figured I'd update it. I've done this in the past on kernel 2.6 systems without issue (no problems on a Mandiva 2010.2 system with 2.6.33.7-desktop-2mnb, for example) and I hoped this would be no different.

The driver package uses DKMS to compile and install the modules. This worked beautifully on my kernel 2.6 system. Unfortunately, I can't get them to compile on my new system:

Code:
user@localhost $ sudo rpm -ivh mptlinux-4.28.00.00-1dkms.noarch.rpm
Preparing...                ########################################### [100%]
   1:mptlinux               ########################################### [100%]

Creating symlink /var/lib/dkms/mptlinux/4.28.00.00/source ->
                 /usr/src/mptlinux-4.28.00.00

DKMS: add Completed.

Preparing kernel 3.4.34-desktop-1.mga2 for module build:
(This is not compiling a kernel, just preparing kernel symbols)
Storing current .config to be restored when complete
Running Generic preparation routine
make mrproper....
using /proc/config.gz
make oldconfig....
make prepare....

Building module:
cleaning build area....
make KERNELRELEASE=3.4.34-desktop-1.mga2 -C /lib/modules/3.4.34-desktop-1.mga2/build SUBDIRS=/var/lib/dkms/mptlinux/4.28.00.00/build modules....(bad exit status: 2)

Error! Bad return status for module build on kernel: 3.4.34-desktop-1.mga2 (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/mptlinux/4.28.00.00/build/ for more information.

Error! Could not locate mptbase.ko.xz for module mptlinux in the DKMS tree.
You must run a dkms build for kernel 3.4.34-desktop-1.mga2 (x86_64) first.
I'm assuming this is due to incompatibility with newer kernels, but I have no idea...and I'm hoping there's a solution. Has anyone encountered this and/or know of a solution? I'd really like to update this driver as I've experienced problems with the older version in the past. So far all I've been able to find on the internet are complaints that LSI hasn't committed a newer version of the drivers to the linux kernel in quite some time, but nothing about getting the latest drivers to compile under the latest kernels. I've included the output from the make.log file below in case it helps. Please help!!

Code:
DKMS make.log for mptlinux-4.28.00.00 for kernel 3.4.34-desktop-1.mga2 (x86_64)
Sun Apr  7 15:35:05 CDT 2013
make: Entering directory `/usr/src/linux-3.4.34-desktop-1.mga2'
  CC [M]  /var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.o
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c: In function ‘mpt_remove_dead_ioc_func’:
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c:362:2: error: implicit declaration of function ‘pci_remove_bus_device’ [-Werror=implicit-function-declaration]
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c: In function ‘mpt_do_ioc_recovery’:
/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.c:2648:3: error: implicit declaration of function ‘init_MUTEX’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[1]: *** [/var/lib/dkms/mptlinux/4.28.00.00/build/mptbase.o] Error 1
make: *** [_module_/var/lib/dkms/mptlinux/4.28.00.00/build] Error 2
make: Leaving directory `/usr/src/linux-3.4.34-desktop-1.mga2'
 
Old 04-07-2013, 07:26 PM   #2
Emerson
Senior Member
 
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~
Posts: 3,177

Rep: Reputation: Disabled
Why not use the driver included in Linux kernel?
 
Old 04-07-2013, 09:17 PM   #3
81bones
Member
 
Registered: Oct 2006
Location: Chicago, IL
Distribution: Mageia
Posts: 46

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by Emerson View Post
Why not use the driver included in Linux kernel?
Because I know that the version 3.x driver is buggy. In a previous system I had that used it, disks in the JBOD that was attached via the LSI adapter would randomly time out and become inaccessible. After updating to the most recent version of the driver (at that time 4.26.00) the problem went away. The 3.x versions of the driver have known bugs in them that have been mostly shaken out in the 4.x versions. A lot of the googling I did before posting my question turned up lots of bug reports and discussion threads concerning issues related to the 3.x drivers; nearly all the discussions devolved into quickly written patches to solve problems and complaints about why the version included in the kernel is so old. Interestingly enough, the 3.x version currently included in the kernel isn't even the most recent 3.x version (on LSI's website they currently offer a 3.28.00 version). Updating to the most recent version to ensure stability, compatibility, and functionality with as many devices as possible only seems prudent.

It just seems very odd (and frankly, stupid) that the version included in the kernel is so far behind the most recent version (3.04.20 vs. 4.28.00). LSI provides packages and the source code for the drivers on their site, but they only offer precompiled binaries for RHEL and SLES. And as I noted above, I am able to get the drivers to compile and load successfully via DKMS on a 2.6.x kernel. I'm assuming the reason I can't get them to compile now is because I'm using a 3.4.x kernel, but I'm only guessing. I'd be happy if I could at least verify that this is indeed the reason it won't compile, and it would be even better if someone is able to determine exactly why it isn't compiling from the make.log file. Ideally, of course, this would all lead to a solution that would get it to compile.
 
Old 04-08-2013, 04:50 PM   #4
Emerson
Senior Member
 
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~
Posts: 3,177

Rep: Reputation: Disabled
Looking at kernel (3.8.2) source ... the code in kernel is provided by LSI, 2012.
 
Old 04-09-2013, 06:44 PM   #5
81bones
Member
 
Registered: Oct 2006
Location: Chicago, IL
Distribution: Mageia
Posts: 46

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by Emerson View Post
Looking at kernel (3.8.2) source ... the code in kernel is provided by LSI, 2012.
Interesting. Are you able to tell which version of the drivers are included in that kernel? Is it a 3.x or a 4.x version of the drivers?

Also, not to press the issue, but do you think my suspicions regarding the compilation issue are correct? Does the make.log file lead you to believe that the reason it won't compile is because I'm using a 3.x kernel?
 
Old 04-09-2013, 07:51 PM   #6
Emerson
Senior Member
 
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~
Posts: 3,177

Rep: Reputation: Disabled
Well, after decades of using Linux I can tell following. Hardware manufacturers provide their drivers source until it is incorporated into the kernel (if they are willing to provide open source drivers that is). Latest LSI has in their website is from 2011. To me it tells their code was approved by Linux kernel maintainers and they stopped offering a separate driver package. No wonder the old code won't build with 3.x, because there is no need, the new code is already in kernel source tree.
Disclaimer: The above is strictly from generic experience, I haven't looked at the code.
Hint: You can download the latest kernel source from kernel.org and try it out, regardless what distro you are using.
 
1 members found this post helpful.
Old 06-06-2013, 11:44 AM   #7
donpdonp
LQ Newbie
 
Registered: Jun 2013
Posts: 2

Rep: Reputation: Disabled
The mptdriver in the kernel source tree is still the 3.x version.

As of 2013-May-20, drivers/message/fusion/mptbase.h shows:
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.20"

The 4.28 drivers are at least as old as Aug 2011 (http://www.lsi.com/products/storagec...SISAS1064.aspx) but they're ahead of whats in the kernel tree.

There were 3 issues with the driver.

pci_remove_bus_device - this method has been renamed.
https://lkml.org/lkml/2012/2/25/82

__devexit_p references - apparently these can simply be removed
http://communities.vmware.com/thread/432897

lock_kernel/unlock_kernel - this is critical to get right and I dont know if the patch is correct but it looks correct and it does compile .
http://stackoverflow.com/questions/5...-device-driver

This patch was written for a friend who wants to use this controller (I dont have the hardware), so no warranty, use at own risk, and post here if it compiles/works for you.

https://gist.github.com/donpdonp/5722900

$ patch < gist.patch
patching file mptbase.c
patching file mptctl.c
patching file mptfc.c
patching file mptsas.c
patching file mptspi.c
 
1 members found this post helpful.
Old 08-03-2013, 01:43 PM   #8
81bones
Member
 
Registered: Oct 2006
Location: Chicago, IL
Distribution: Mageia
Posts: 46

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by donpdonp View Post
This patch was written for a friend who wants to use this controller (I dont have the hardware), so no warranty, use at own risk, and post here if it compiles/works for you.
The code appears to have compiled correctly:

Code:
user@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $ patch < mptlinux.patch 
patching file mptbase.c
patching file mptctl.c
patching file mptfc.c
patching file mptsas.c
patching file mptspi.c
user@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $ ./compile 
make: Entering directory `/usr/src/linux-3.4.52-desktop-1.mga2'
  CC [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.o
  CC [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.o
  CC [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.o
  CC [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptsas.o
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of ‘__check_old_set_param’ from incompatible pointer type [enabled by default]
include/linux/moduleparam.h:199:1: note: expected ‘int (*)(const char *, struct kernel_param *)’ but argument is of type ‘int (*)(const char *, const struct kernel_param *)’
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:783:2: warning: initialization from incompatible pointer type [enabled by default]
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:783:2: warning: (near initialization for ‘mptspi_driver_template.queuecommand’) [enabled by default]
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptsas.c:2571:2: warning: initialization from incompatible pointer type [enabled by default]
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptsas.c:2571:2: warning: (near initialization for ‘mptsas_driver_template.queuecommand’) [enabled by default]
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:127:2: warning: initialization from incompatible pointer type [enabled by default]
/home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:127:2: warning: (near initialization for ‘mptfc_driver_template.queuecommand’) [enabled by default]
  CC [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptctl.o
  CC [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptlan.o
  Building modules, stage 2.
  MODPOST 7 modules
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.mod.o
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptctl.mod.o
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.mod.o
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptlan.mod.o
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptsas.mod.o
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptscsih.mod.o
  CC      /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.mod.o
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.ko
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptctl.ko
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.ko
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptlan.ko
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptscsih.ko
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptsas.ko
  LD [M]  /home/user/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.ko
make: Leaving directory `/usr/src/linux-3.4.52-desktop-1.mga2'
user@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $ ls
built-in.o       Module.symvers  mptctl.mod.c  mptlan.h*       mptsas.mod.o    mptspi.mod.c
clean*           mptbase.c*      mptctl.mod.o  mptlan.ko       mptsas.o        mptspi.mod.o
compile*         mptbase.h*      mptctl.o      mptlan.mod.c    mptscsih.c*     mptspi.o
csmi/            mptbase.ko      mptdebug.h*   mptlan.mod.o    mptscsih.h*     output.log
Kconfig*         mptbase.mod.c   mptfc.c*      mptlan.o        mptscsih.ko     pound*
linux_compat.h*  mptbase.mod.o   mptfc.ko      mptlinux.patch  mptscsih.mod.c  rejected_ioctls/
load*            mptbase.o       mptfc.mod.c   mptsas.c*       mptscsih.mod.o  scripts/
lsi/             mptctl.c*       mptfc.mod.o   mptsas.h*       mptscsih.o      uload*
Makefile*        mptctl.h*       mptfc.o       mptsas.ko       mptspi.c*       update*
modules.order    mptctl.ko       mptlan.c*     mptsas.mod.c    mptspi.ko
user@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $
Hooray! I now have a (potentially very stupid) question -- how do I go about installing the newly compiled module to see if it works? I was using DKMS before because it takes care of everything for you (compiling, installing, linking, loading, etc). In particular, how can I load the new module(s) and, if they work, make them the default modules so they load at boot each time? And if they don't work, how can I revert back to the older version? The source directory contains a bash script called "load" which looks like it might perform a one-time load of the modules (it basically appears to run modprobe and insmod on several different files) but I'm guessing this won't make the new modules run at boot. There's also an "update" bash script that looks like it removes the old modules outright and copies the new ones into /lib/modules/`uname -r`/kernel/drivers/message/fusion...doesn't look like there's any turning back at that point. Thoughts?
 
Old 01-16-2014, 08:27 PM   #9
81bones
Member
 
Registered: Oct 2006
Location: Chicago, IL
Distribution: Mageia
Posts: 46

Original Poster
Rep: Reputation: 15
I wanted to provide an update. I recently updated from Mageia 2 to Mageia 3, and I am now using kernel 3.10.24. Unfortunately, the drivers don't compile anymore, even with the patch. My output from compiling is below:
Code:
jimbob@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $ patch < mptlinux.patch
patching file mptbase.c
patching file mptctl.c
patching file mptfc.c
patching file mptsas.c
patching file mptspi.c

jimbob@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $ ./compile
make: Entering directory `/usr/src/linux-3.10.24-desktop-2.mga3'
  LD      /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/built-in.o
  CC [M]  /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.o
  CC [M]  /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptscsih.o
  CC [M]  /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.o
  CC [M]  /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.o
In file included from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptscsih.c:68:0:
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:466:2: error: unknown type name âread_proc_tâ
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:467:2: error: unknown type name âwrite_proc_tâ
In file included from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:71:0:
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:466:2: error: unknown type name âread_proc_tâ
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:467:2: error: unknown type name âwrite_proc_tâ
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:780:2: error: unknown field âproc_infoâ specified in initializer
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:780:2: warning: initialization from incompatible pointer type [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:780:2: warning: (near initialization for âmptspi_driver_template.proc_dirâ) [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:783:2: warning: initialization from incompatible pointer type [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.c:783:2: warning: (near initialization for âmptspi_driver_template.queuecommandâ) [enabled by default]
In file included from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:69:0:
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:466:2: error: unknown type name âread_proc_tâ
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:467:2: error: unknown type name âwrite_proc_tâ
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:124:2: error: unknown field âproc_infoâ specified in initializer
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:124:2: warning: initialization from incompatible pointer type [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:124:2: warning: (near initialization for âmptfc_driver_template.proc_dirâ) [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:127:2: warning: initialization from incompatible pointer type [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.c:127:2: warning: (near initialization for âmptfc_driver_template.queuecommandâ) [enabled by default]
make[1]: *** [/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptscsih.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptspi.o] Error 1
In file included from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:68:0:
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:466:2: error: unknown type name âread_proc_tâ
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.h:467:2: error: unknown type name âwrite_proc_tâ
make[1]: *** [/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptfc.o] Error 1
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of â__check_old_set_paramâ from incompatible pointer type [enabled by default]
In file included from include/linux/module.h:17:0,
                 from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:50:
include/linux/moduleparam.h:197:1: note: expected âint (*)(const char *, struct kernel_param *)â but argument is of type âint (*)(const char *, const struct kernel_param *)â
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of â__check_old_set_paramâ from incompatible pointer type [enabled by default]
In file included from include/linux/module.h:17:0,
                 from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:50:
include/linux/moduleparam.h:197:1: note: expected âint (*)(const char *, struct kernel_param *)â but argument is of type âint (*)(const char *, const struct kernel_param *)â
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of â__check_old_set_paramâ from incompatible pointer type [enabled by default]
In file included from include/linux/module.h:17:0,
                 from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:50:
include/linux/moduleparam.h:197:1: note: expected âint (*)(const char *, struct kernel_param *)â but argument is of type âint (*)(const char *, const struct kernel_param *)â
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:116:1: warning: passing argument 1 of â__check_old_set_paramâ from incompatible pointer type [enabled by default]
In file included from include/linux/module.h:17:0,
                 from /home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:50:
include/linux/moduleparam.h:197:1: note: expected âint (*)(const char *, struct kernel_param *)â but argument is of type âint (*)(const char *, const struct kernel_param *)â
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c: In function âmpt_attachâ:
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2123:3: error: implicit declaration of function âcreate_proc_entryâ [-Werror=implicit-function-declaration]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2123:7: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2125:7: error: dereferencing pointer to incomplete type
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2126:7: error: dereferencing pointer to incomplete type
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2128:7: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2130:7: error: dereferencing pointer to incomplete type
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:2131:7: error: dereferencing pointer to incomplete type
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c: In function âprocmpt_createâ:
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:6873:6: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:6875:6: error: dereferencing pointer to incomplete type
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:6877:6: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.c:6879:6: error: dereferencing pointer to incomplete type
cc1: some warnings being treated as errors
make[1]: *** [/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion/mptbase.o] Error 1
make: *** [_module_/home/jimbob/Downloads/lsi-sas/LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion] Error 2
make: Leaving directory `/usr/src/linux-3.10.24-desktop-2.mga3'
jimbob@localhost LinuxMPT_SAS_RHEL5-6_SLES10-11_PH21-4.28.00.00-1/message/fusion $
The version of the drivers included in the kernel is still old and in fact has not changed since at least kernel 3.4. I would appreciate any help in getting the drivers to compile again. Thanks!
 
  


Reply

Tags
drivers, fusion, hba, sas


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Throughput problem with MPT Fusion SAS herr_tichy Linux - Server 1 11-14-2010 04:26 PM
Random boot kernel panic with MPT Fusion SCSI Artanicus Linux - Hardware 2 08-02-2010 02:03 PM
Slackware 13.0 Fusion MPT Kernel Panic ColdSQL Slackware 7 05-18-2010 05:16 PM
What's the difference between MPT fusion and original driver? PhillipHuang Linux - Software 0 12-11-2007 03:37 AM


All times are GMT -5. The time now is 02:04 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration