【发布时间】:2017-01-11 19:23:54
【问题描述】:
我是编写内核模块的新手,所以很少遇到非技术问题。
因为为特定内核版本(比如 3.0.0-10,10 是补丁号)创建内核模块需要相同版本的内核头文件,所以看起来直接安装内核头文件并在那里开始开发。 但是补丁内核版本的内核头文件不可用。 因为我有一个来宾内核 vmlinuz-3.0.0-10 在机器上运行并且在下载内核头文件时它说找不到。
其他方法是获取特定内核的源代码,但同样的问题是修补内核的相同源代码不可用(没有必要获取 linux-kernel-3.0.0-10 甚至 linux 的源代码-kernel-3.0.0 和第 10 个补丁)。在某些情况下可以获得运行内核的源代码,但并非总是如此。
另一种是构建运行内核以外的内核,并将构建的内核放置在机器中。但这需要构建内核的模块,这是一个耗时耗空间的过程。
所以问这个的目的是想知道内核驱动开发者的偏好是什么。还有其他选择吗?
是否可以在一个版本中编译内核模块并在另一个版本中运行(虽然它会给出错误,但是有什么解决方法吗?)
【问题讨论】:
标签: module linux-kernel linux-device-driver