我在使用 Linux 源代码驱动程序时遇到了问题由 Microsemi 为其 Adaptec RAID 8805 RAID 控制器提供。
自从从 Linux 内核升级v4.4.0-112
到v4.4.0-116
Ubuntu 16.04.3 LTS 后,我无法获取提供的aacraid
内核模块加载,这使得操作系统无法使用附加的卷。
查看内核日志,我看到以下错误消息,例如:
aacraid: version magic '4.4.0-116-generic SMP mod_unload modversions ' should be '4.4.0-116-generic SMP mod_unload modversions retpoline '
我猜这与最近‘retpoline’ 补丁到 Linux 内核来解决 Spectre 漏洞。
到目前为止,我发现解决此问题的唯一方法是回滚到内核版本v4.4.0-112
或手动强制版本魔法值在源代码中通过 MODULE_INFO 在模块中。
还应该注意 Microsemi 还提供了Ubuntu 16.04 的预编译二进制文件v4.4.0-62
但截至驱动程序,这仅标记为与 Ubuntu 16.04.2/内核兼容v1.2.15502
。
我想知道是否有人知道解决这个问题的更好的方法?
答案1
我已经联系过Microsemi 支持,生产 Adaptec RAID 控制器。
我获悉他们已经意识到了这个问题并且他们的工程团队正在研究如何解决这个问题。
同时,他们建议使用预编译的Ubuntu 二进制文件(它是为与linux-image-4.4.0-21-generic
内核映像一起工作而构建的)或者坚持使用linux-image-4.4.0-112-generic
DKMS 驱动程序(如果像我的情况一样,您需要更新的内核版本)。
我已获得一个事件 ID:180226-000003
如果您也遇到此问题并想要联系 Mirosemi 支持,我建议您引用该 ID。