![](/img/trans.png)
[英]How to compile a linux kernel module for different linux kernel
[英]Compile Kernel Module for different Kernel
我正在使用嵌入式linux系统,该系统也没有内核源或标头。 我也不能简单地使用另一个内核。
但是我得到了另一个内核版本的内核源代码,并且可以为该内核编译该模块。 但是我无法在目标系统上加载该模块,因为dmesg在说“版本魔术”
所以,我能以某种方式使模块引用另一个内核吗? 在哪里读取有关内核版本的信息?
我的目标系统的内核版本为“ 3.18.11-tegra”,内核源代码为3.18.19 ..
当然,只有在两个内核版本均未更改该模块的情况下,您的计划才能成功(通常是这种情况)。 那么您可以在3.18.19内核源代码的顶级Makefile
中植入SUBLEVEL = 11
。
前段时间在不同的系统上做了同样的事情,您将需要使用其配置下载并编译3.18.11内核。 转到https://www.kernel.org/pub/linux/kernel/并下载3.18.11将内核解压缩到/usr/src/linux-3.18.11,将其cd压缩到其中,然后复制当前配置
make mrproper zcat /proc/config.gz >.config make oldconfig make
编译内核后,需要在/ usr / src下创建2个符号链接
ln -s linux-3.18.11 linux-3.18.11-tegra ln -s linux-3.18.11 linux
现在,您应该可以使用以下命令编译模块了:
make -C /lib/modules/$(uname -r)/build M=$(pwd) module
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.