Linux内核:为内核构建树外模块,但在apt-cache搜索中没有linux-headers

时间:2018-11-17 02:29:32

标签: linux linux-kernel

我正在从事Linux内核开发,并试图制作自己的模块以进行测试。但是,对于最新的内核源代码,linux头文件不存在。它仅在4.9.0-7中存在。

我用Google搜索并找到了一种方法,在该方法中我们针对想要的内核源代码树(例如4.18)make使用模块  make -C /home/prasad/linux-4.18/ M=$(PWD) 确实会为我的模块生成.ko。但是,当我加载内核并insmod时,它显示为

insmod: ERROR: could not insert module test.ko: Unknown symbol in module

那么我该如何从我的主机生成一个可插入4.18内核的.ko文件呢?

PS:我的疑问不是duplicate,因为我无法在自己的vm中“安装” 4.18内核,我试图避免这样做。我的问题是针对生成可插入的.ko模块,而不是在4.18中找到将其插入的其他方法。

1 个答案:

答案 0 :(得分:0)

您不能在4.9内核中使用为4.18构建的模块。

如果通过apt / yum / etc无法获得要构建的内核版本的标头,则需要从https://www.kernel.org/

手动下载源代码。

在模块的makefile中,将指定已下载并提取的内核源代码的路径。

这应该允许您为所需的内核版本构建模块。