我正在从事linux内核开发,并试图制作自己的模块用于测试目的。但是,对于最新的内核源代码,linux-headers并不存在。它只存在于4.9.0-7。
我在谷歌上找到了一种方法,我们可以根据我们想要的内核源代码树对模块进行make (例如:4.18)为我的模块生成.ko的make -C /home/prasad/linux-4.18/ M=$(PWD)。然而,当我加载我的内核并insmod它时,它会说
insmod: ERROR: could not insert module test.ko: Unknown symbol in module
那么,如何从我的主机生成可以插入到4.18内核的.ko文件呢?
PS:我的疑问不是duplicate,因为我不能在我的vm中“安装”4.18内核,我正在努力避免这样做。我的问题更具体的是生成一个可插入的.ko模块,并且在4.18中找不到任何其他方法来插入它。
发布于 2018-11-20 07:40:11
你不能在4.9内核中使用为4.18构建的模块。
如果您为其构建的内核版本的头文件无法通过apt/yum/etc获得,则需要手动从以下位置下载源代码:https://www.kernel.org/
在模块的makefile中,您将指定下载并解压缩的内核源代码的路径。
这应该允许您为所需的内核版本构建模块。
https://stackoverflow.com/questions/53347655
复制相似问题