【问题标题】:Loading a android kernel module with vermagic mismatch加载带有 vermagic 不匹配的 android 内核模块
【发布时间】:2013-02-21 19:29:00
【问题描述】:

对于手机来说,很少有模块是专有的,并且没有在 GPL 下获得许可,而且内核源代码也没有提供它们的源代码。所以我的问题是当我添加自定义内核名称或添加上游补丁时,内核的版本魔法发生了变化,它与专有模块的版本不匹配,并且这些模块的版本魔法不匹配,它们不匹配加载。

那么除了手动保留内核的vermagic和模块的vermagic之外,还有什么解决方法吗?该模块当然与内核兼容,因为它意味着它,只是这种vermagic不匹配导致问题

此外,没有办法为 Android 内核强制加载模块。你们中的任何人都有解决方案吗?

【问题讨论】:

  • 假设您正在构建一个自定义模块 (.ko) 并将其推送到 /lib/modules,您会看到哪些内核错误?
  • 我没有构建自定义模块。可能你没看懂我的问题

标签: android linux linux-kernel


【解决方案1】:

您应该避免将模块加载到具有不同版本魔法字符串的内核中。

模块可能具有与其他内核资源/模块的内部内核接口,这些接口可能会因不同的内核版本而中断。这真的会破坏你的系统/内核。

如果您想冒险,请使用尽可能接近您的模块版本的内核版本并加载您的模块:

modprobe -f module-name

-f 将绕过 vermagic 检查。

【讨论】:

    【解决方案2】:

    您可以在模块信息部分更改 vermagic 变量。您需要一个十六进制编辑器或this software,并且新版本字符串小于或等于最旧版本。

    【讨论】:

      猜你喜欢
      • 2012-08-20
      • 2012-03-14
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 2015-07-20
      • 2018-03-09
      相关资源
      最近更新 更多