【发布时间】:2023-03-14 19:52:01
【问题描述】:
我对内核编程有点陌生,但几天来我一直在为这个问题苦苦挣扎。我有一台带有 linux 内核 '5.10.0-kali7-amd64' 的机器,我用它来为 Ubutnu 16.04.4 '4.4.0-119-generic' 开发一个 linux 内核模块,但我想不通这样我就可以在我的机器上为该版本编译它并让它在 4.4.0 内核机器上实际工作。
我得到的最接近的是:
- 我从https://launchpad.net/ubuntu/xenial/+package/linux-headers-4.4.0-119下载了源码 并使用 dpkg 安装
- 然后我从https://www.ubuntuupdates.org/package/core/xenial/main/updates/linux-image-4.4.0-119-generic 下载并安装了 4.4.0-119-generic
- 两者都安装没有问题。
- 我在我的 Makefile 中使用
make -C /lib/modules/4.4.0-119-generic/build M=$(PWD) modules编译了我的模块,它也可以工作并编译我的 hello world 模块。
但是,当上传到 4.4.0 机器时,insmod 错误地说 insmod: ERROR: could not insert module rootkitMy.ko: Invalid module format。 dmesg 说:module: rootkit: Unknown rela relocation: 4 然后我在 4.4.0 机器上编译了我的源代码,并创建了一个具有完全相同 modinfo 的模块,但那个模块确实有效。
以下是两者的 modinfo:
filename: /rootkit.ko
version: 0.01
description: Rootkit hook
author: Bl4ckC4t
license: GPL
srcversion: 46604268C8D1B7FA5115CB4
depends:
vermagic: 4.4.0-119-generic SMP mod_unload modversions retpoline
filename: /rootkitMy.ko
version: 0.01
description: Rootkit hook
author: Bl4ckC4t
license: GPL
srcversion: 46604268C8D1B7FA5115CB4
depends:
vermagic: 4.4.0-119-generic SMP mod_unload modversions retpoline
rootkitMy.ko 在 5.10 机器上编译并且在 rootkit.ko 在 4.4.0 机器上编译并且在注入 insmod 时确实可以正常工作我可以做些什么来编译一个工作模块我的 5.10 机器?
【问题讨论】:
-
请将完整的错误信息复制并粘贴到问题中。
-
是的,抱歉我添加了它
-
请添加到与
insmod故障相关的dmesg的问题帖子输出中。 -
哦,我什至不知道会在 dmesg 中留下输出。我会添加它
标签: linux module linux-kernel cross-compiling