为不同的内核

时间:2016-05-19 16:00:51

标签: linux module kernel

我正在使用嵌入式Linux系统,我也没有内核源代码或头文件。此外,我不能简单地使用另一个内核。

但是我得到了另一个内核版本的内核源代码,并且可以为该内核编译该模块。但是我无法在我的目标系统上加载该模块,因为dmesg说的是版本魔术'

那么,我可以以某种方式使模块引用另一个内核吗?读取内核版本的信息在哪里?

我的目标系统有内核版本' 3.18.11-tegra',内核源代码是3.18.19 ..

2 个答案:

答案 0 :(得分:0)

当然,只有当该模块与两个内核版本一起运行时,您的计划才能成功,而这通常就是这种情况;那么你可以将SUBLEVEL = 11植入3.18.19内核源代码的顶级Makefile

答案 1 :(得分:0)

不久前在不同的系统上做了同样的事情 您需要使用他们的配置下载并编译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