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