2016-01-22 110 views
0

我遇到了RH7内核的问题。我们运行的是基于RH6/Centos6的系统 - 我们通常编译一次内核模块(Centos6.6),我们可以将内核模块安装在同一系列的另一个Centos内核上(比如Centos6.4)。不同内核补丁之间的Linux内核模块

使用Centos7(3.10内核)我无法使用3.10.0-329(Centos7.2)内核构建内核模块,并在内核版本3.10.0-227(Centos7.1)上安装 - insmod返回无效格式。

任何人遇到类似的问题 - 是否有任何解决方法。 感谢

- 吉米

+0

为一个内核构建的模块不适用于另一个内核是正常的,请参阅[这个问题](http://stackoverflow.com/questions/10861872/building-kernel-modules-for-linux-differnet-version)。 'insmod'对加载不合适的模块有一定的保护作用,并且通常黑客检查并不是一个好主意。您必须为您想要使用它的每个内核构建模块。如果您可以提供模块的源代码,那么您可以使用'dkms'来自动构建并在目标计算机上为每个需要的内核安装它们。 – Tsyvarev

+0

感谢您的评论。问题是我无法分配模块的所有来源。我正在考虑dkms选项。但编译我的模块部分和编译部分驱动程序将包括模块的其余部分。甚至不确定这是否可能。 –

+0

可能需要一个* binary blob * - 作为模块一部分的现成目标文件。查看[内核文档](https://www.kernel.org/doc/Documentation/kbuild/modules.txt)了解如何构建使用二进制blob的模块。 – Tsyvarev

回答

0

也许,你想有一个二进制BLOB - 现成的对象文件,该文件是模块的一部分。了解如何构建使用二进制blob的模块,请查看kernel documentation。 - Tsyvarev