LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   MPT Fusion drivers and linux kernel 3.x (https://www.linuxquestions.org/questions/linux-hardware-18/mpt-fusion-drivers-and-linux-kernel-3-x-4175457271/)

81bones 04-07-2013 03:47 PM

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'


Emerson 04-07-2013 07:26 PM

Why not use the driver included in Linux kernel?

81bones 04-07-2013 09:17 PM

Quote:

Originally Posted by Emerson (Post 4927178)
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.

Emerson 04-08-2013 04:50 PM

Looking at kernel (3.8.2) source ... the code in kernel is provided by LSI, 2012.

81bones 04-09-2013 06:44 PM

Quote:

Originally Posted by Emerson (Post 4927835)
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?

Emerson 04-09-2013 07:51 PM

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.

donpdonp 06-06-2013 11:44 AM

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

81bones 08-03-2013 01:43 PM

Quote:

Originally Posted by donpdonp (Post 4966696)
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?

81bones 01-16-2014 08:27 PM

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!

Gorod 09-25-2014 04:43 AM

Hi, i need help.
I try to install fusion driver to centos 6.5 (kernel 3.4 for xen). I use patch. Now, what i need to do to make rpm-file (or load modules).

81bones 09-26-2014 06:19 PM

Quote:

Originally Posted by Gorod (Post 5244018)
Hi, i need help.
I try to install fusion driver to centos 6.5 (kernel 3.4 for xen). I use patch. Now, what i need to do to make rpm-file (or load modules).

Hi Gorod,

Unfortunately, as you can see in all the comments above, I was never able to get the latest version of the fusion drivers to work/compile properly with a 3.x kernel. The 3.x kernels generally do come with the version 3.04 of the fusion drivers built in; unfortunately I haven't been able to get the 4.x version of the drivers to work. I will say that I've encountered much fewer problems with the 3.x drivers in the 3.x kernel, so perhaps the all-around better stability of the 3.x kernel means there's not much advantage to trying to get the 4.x drivers to work. Otherwise, sorry dude, hopefully someone else can throw up some ideas to get them to compile.


All times are GMT -5. The time now is 03:07 AM.