【问题标题】:Android: Insmod disagrees about version of symbol module_layoutAndroid:Insmod 不同意符号 module_layout 的版本
【发布时间】:2021-07-26 12:22:58
【问题描述】:

我正在尝试在我的小米红米 Note 9S 上使用 NFS,它使用了一个名为 Resurrection Remix OS 的自定义 ROM。我正在用新编译的内核替换旧内核,内置 NFS。

我使用的是here找到的内核源,这是小米手机的官方内核。我找不到自定义 ROM 的确切内核源代码,但无论如何手机都能启动。

起初,我只为 NFS 编译了模块,但是在 sunrpc.ko 上使用 insmod 需要 __audit_inode_child,因此需要带有 CONFIG_AUDIT_SYSCALL=y 的新内核。我还决定内置所有 NFS 模块。

我对我的.config 进行了更改,并编译了整个内核 (除了设备树:CONFIG_BUILD_ARM64_DT_OVERLAY=n 因为编译错误)。

使用来自arch/arm64/boot/Image 的新内核,我从我的设备中解压boot.img 并换出内核并启动,/proc/filesystems 中列出了 NFS 支持。

但是,现在/vendor/lib/modules 中的所有模块都不起作用。这是意料之中的,它们不是针对这个新内核的源代码构建的。

尝试通过使用insmod 插入新编译的模块来解决此问题,例如disagrees about version of symbol module_layout

这怎么可能?这些模块与正在运行的内核一起编译(相同的源代码)

【问题讨论】:

  • 您确定它实际上尝试的是 new 模块而不是旧模块吗?

标签: android linux-kernel kernel linux-device-driver embedded-linux


【解决方案1】:

创建启动映像时一定出了问题,很可能是复制了错误的内核(我下载并编译了多个内核源)。

我用新编译的内核映像重新打包了 boot.img,不需要加载模块,/vendor/lib/modules 中的每个模块都在启动时加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多