[SOLVED] LSI 3008 HBA Treiber von Hersteller laden

HBO

Active Member
Dec 15, 2014
274
15
38
Germany
Guten Morgen,

ich habe hier diverse LSI 3008 HBA im Einsatz. Im Proxmox Kernel enthalten ist die Treiber Version 15.100, der Hersteller Treiber hat aber bereits die Version 22.00.02. Den Treiber zu kompelieren ist leider nicht möglich, hier gibt es diverse Fehlermeldungen.
Allerdings sind Debian 8 und Ubuntu Pakete enthalten, der Treiber wird in folgende Verzeichnisse geworfen.
Für Debian 8 64bit:
/lib/modules/3.16.0-4-amd64/weak-updates/mpt3sas/mpt3sas.ko
Für Ubuntu 14.04 64bit:
/lib/modules/3.13.0-24-generic/weak-updates/mpt3sas/mpt3sas.ko
Für Ubuntu 16.04 64bit gibt es verschiedene Kernel Versionen:
Code:
-r--r--r-- root/root    564456 2017-07-14 02:19 ./lib/modules/4.4.0-28-generic/weak-updates/mpt3sas/mpt3sas.ko
-r--r--r-- root/root    566368 2017-07-14 02:19 ./lib/modules/4.4.0-24-generic/weak-updates/mpt3sas/mpt3sas.ko
-r--r--r-- root/root    564456 2017-07-14 02:19 ./lib/modules/4.4.0-31-generic/weak-updates/mpt3sas/mpt3sas.ko
-r--r--r-- root/root    566368 2017-07-14 02:19 ./lib/modules/4.4.0-21-generic/weak-updates/mpt3sas/mpt3sas.ko
-r--r--r-- root/root    566368 2017-07-14 02:19 ./lib/modules/4.4.0-22-generic/weak-updates/mpt3sas/mpt3sas.ko
Ist es möglich einen der Treiber unter Proxmox zu nutzen?
 
Was geht mit dem im Kernel enthaltenen Treiber nicht?

Und woran scheitert das bauen des 22.00.02 denn genau?
 
Ich möchte einfach mal schauen ob es hier Performance Verbesserungen geben könnte, ein so hoher Versionsunterschied kommt ja meist nicht von ungefähr. In dem Treiber Paket sind auch die Sourcen enthalten mit entsprechenden Scripten (die man zumindest gemäß Anleitung nutzen solle. Das kommt dabei raus:

Code:
 ./compile.sh
rm: cannot remove 'tags': No such file or directory
make: Entering directory '/usr/src/linux-headers-4.13.13-5-pve'
  AR      /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/built-in.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_config.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_warpdrive.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.o
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.c: In function ‘_base_display_event_data’:
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.c:1108:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (event_data->DiscoveryStatus)
   ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.c:1111:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
    printk("\n");
    ^~~~~~
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.o
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.c: In function ‘_scsih_add_device’:
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.c:10507:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (le16_to_cpu(enclosure_pg0.Flags) &
   ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.c:10510:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
    sas_device->chassis_slot =
    ^~~~~~~~~~
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_ctl.o
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c: In function ‘_transport_smp_handler’:
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2291:13: error: ‘struct request’ has no member named ‘sense’
   memcpy(req->sense, mpi_reply, sizeof(*mpi_reply));
             ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2292:6: error: ‘struct request’ has no member named ‘sense_len’
   req->sense_len = sizeof(*mpi_reply);
      ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2294:6: error: ‘struct request’ has no member named ‘resid_len’
   req->resid_len = 0;
      ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2295:6: error: ‘struct request’ has no member named ‘resid_len’
   rsp->resid_len -=
      ^~
scripts/Makefile.build:308: recipe for target '/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.o' failed
make[1]: *** [/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:1550: recipe for target '_module_/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas' failed
make: *** [_module_/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas] Error 2
make: Leaving directory '/usr/src/linux-headers-4.13.13-5-pve'
 
Ich möchte einfach mal schauen ob es hier Performance Verbesserungen geben könnte, ein so hoher Versionsunterschied kommt ja meist nicht von ungefähr. In dem Treiber Paket sind auch die Sourcen enthalten mit entsprechenden Scripten (die man zumindest gemäß Anleitung nutzen solle. Das kommt dabei raus:

Code:
 ./compile.sh
rm: cannot remove 'tags': No such file or directory
make: Entering directory '/usr/src/linux-headers-4.13.13-5-pve'
  AR      /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/built-in.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_config.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_warpdrive.o
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.o
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.c: In function ‘_base_display_event_data’:
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.c:1108:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (event_data->DiscoveryStatus)
   ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_base.c:1111:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
    printk("\n");
    ^~~~~~
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.o
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.c: In function ‘_scsih_add_device’:
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.c:10507:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (le16_to_cpu(enclosure_pg0.Flags) &
   ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_scsih.c:10510:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
    sas_device->chassis_slot =
    ^~~~~~~~~~
  CC [M]  /root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_ctl.o
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c: In function ‘_transport_smp_handler’:
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2291:13: error: ‘struct request’ has no member named ‘sense’
   memcpy(req->sense, mpi_reply, sizeof(*mpi_reply));
             ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2292:6: error: ‘struct request’ has no member named ‘sense_len’
   req->sense_len = sizeof(*mpi_reply);
      ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2294:6: error: ‘struct request’ has no member named ‘resid_len’
   req->resid_len = 0;
      ^~
/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.c:2295:6: error: ‘struct request’ has no member named ‘resid_len’
   rsp->resid_len -=
      ^~
scripts/Makefile.build:308: recipe for target '/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.o' failed
make[1]: *** [/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas/mpt3sas_transport.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:1550: recipe for target '_module_/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas' failed
make: *** [_module_/root/Linux_Driver_RHEL5-6_SLES10-11_P15/mpt3sas_rhel5_rel/mpt3sas] Error 2
make: Leaving directory '/usr/src/linux-headers-4.13.13-5-pve'

the error message indicates that your "newer" driver is not compatible with kernels >= 4.11 . this is unfortunately often the case with out-of-tree driver versions which only get synced with mainline Linux from time to time. the in-tree drivers always receive tree wide changes like renaming of structs immediately.

https://git.kernel.org/pub/scm/linu.../?id=82ed4db499b8598f16f8871261bff088d6b0597f
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!