In den letzten Tagen haben wir mehrfach versucht einen Linux Kernel 4.x Kernel mit einem Adaptec 8805 / 8405 RAID Controller zu starten. Immer wieder hat sich der Server beim Bootvorgang mit dem Hinweis

kernel: aacraid: Host adapter abort request (0,0,0,0)

Der Server konnte patu nicht mit dem neuen Kernel booten. Wir haben daraufhin versucht die aktuelle Kernel Version von der Adaptec Webseite passend zum Controller im Linux Kernel zu kompilieren.

root@root382:/usr/src/aacraid-1.2.1.50667# dkms build -m aacraid -v 1.2.1.50667

Kernel preparation unnecessary for this kernel. Skipping...
 
 Building module:
 make -C /lib/modules/4.6.0-xen/build SUBDIRS=/var/lib/dkms/aacraid/1.2.1.50667/build clean
 make: Entering directory `/usr/src/linux-4.6.0-xen'
 make: Leaving directory `/usr/src/linux-4.6.0-xen'
 
 { make KERNELRELEASE=4.6.0-xen aacraid_dkms_build DKMS_KERNEL_SOURCE_DIR=/lib/modules/4.6.0-xen/build DKMS_SUBDIRS=/var/lib/dkms/aacraid/1.2.1.50667/build; } >> /var/lib/dkms/aacraid/1.2.1.50667/build/make.log 2>&1
 (bad exit status: 2)
 Error! Bad return status for module build on kernel: 4.6.0-xen (x86_64)
 Consult /var/lib/dkms/aacraid/1.2.1.50667/build/make.log for more information.
 

Das Resultat waren verschiedene Fehlermeldungen. Laut Make Log

root@root382:/usr/src/aacraid-1.2.1.50667# cat /var/lib/dkms/aacraid/1.2.1.50667/build/make.log
DKMS make.log for aacraid-1.2.1.50667 for kernel 4.6.0-xen (x86_64)
Sun May 22 06:46:57 UTC 2016
make -C /lib/modules/4.6.0-xen/build M=/var/lib/dkms/aacraid/1.2.1.50667/build modules
make[1]: Entering directory `/usr/src/linux-4.6.0-xen'
CC [M] /var/lib/dkms/aacraid/1.2.1.50667/build/linit.o
/var/lib/dkms/aacraid/1.2.1.50667/build/linit.c:3366:2: warning: initialization from incompatible pointer type [enabled by default]
/var/lib/dkms/aacraid/1.2.1.50667/build/linit.c:3366:2: warning: (near initialization for 'aac_driver_template.change_queue_depth') [enabled by default]
/var/lib/dkms/aacraid/1.2.1.50667/build/linit.c:3386:5: error: unknown field 'use_blk_tags' specified in initializer
/var/lib/dkms/aacraid/1.2.1.50667/build/linit.c: In function 'aac_probe_one':
/var/lib/dkms/aacraid/1.2.1.50667/build/linit.c:4020:5: error: implicit declaration of function 'scsi_init_shared_tag_map' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[2]: *** [/var/lib/dkms/aacraid/1.2.1.50667/build/linit.o] Error 1
make[1]: *** [_module_/var/lib/dkms/aacraid/1.2.1.50667/build] Error 2
make[1]: Leaving directory `/usr/src/linux-4.6.0-xen'
make: *** [aacraid_dkms_build] Error 2

 

Wir haben daraufhin das Selbe mit einem 3.x Kernel getestet, wo der Treiber einwandfrei funktioniert hat.

root@root382:/usr/src/aacraid-1.2.1.50667# dkms status
aacraid, 1.2.1.40700, 3.2.0-4-amd64, x86_64: built (original_module exists)
aacraid, 1.2.1.41018, 3.2.0-4-amd64, x86_64: built (original_module exists)
aacraid, 1.2.1.50667, 3.2.0-4-amd64, x86_64: installed (original_module exists)

Dieser scheint einwandfrei zu funktionieren. Da es zu diesem Problem keinerlei Informationen im Internet gibt, haben wir nach einigen Stunden Fehleranalyse und testen ein Ticket bei Adaptec zu diesem Fehler eröffnet. Diese teilten uns nach 10 Tagen mit, dass es sich um ein bekanntes Problem handelt und dass ein Update für den 4.x Kernel Support für July / August in Planung ist – „Thank you for your message.  Support for the 4.x kernel and .deb version of the DKMS package are expected in the next maintenance update loosely slated for release late July or August.  Drivers for Ubuntu 15 & 16 with 4x kernel support should be included in the web release then.“

Wir wollen diese Information anderen Systemadministratoren nicht vorenthalten, zudem wir selbst Stunden an dieser Problematik gearbeitet haben.