我是编写内核模块的新手,因此面临很少的非技术问题。
由于为特定内核版本(例如 3.0.0-10,10 是补丁号)创建内核模块需要相同版本的内核头文件,因此看起来直接安装内核头文件并在那里开始开发。
但修补内核版本的内核头不可用。
因为我有一个来宾内核 vmlinuz-3.0.0-10 在机器中运行,并且在下载内核标头时它说找不到。
所以问这个问题的目的是想了解内核驱动开发人员的偏好是什么。还有其他选择吗?
是否可以在一个版本中编译内核模块并在另一个版本中运行(虽然会出现错误,但是有没有解决方法?)
因此,构建新内核并不是一个好的选择,因为它需要:
- 构建内核
- 构建模块和固件
- 构建标题
将上述所有内容移动到适当的位置(如果您的机器与您要开发模块的机器不同)
因此,如果您有用于运行系统的内核头文件,那么您无需下载任何内核版本的源代码,并且在使用模块时
make -C /lib/modules/kernel-headers-x.y.z/build M=`pwd` modules
你的模块就准备好了。
如果有更好的答案,我会毫不犹豫地接受其中任何一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)