繁体   English   中英

为不同的内核编译内核模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM