因为为特定内核版本创建内核模块(比如3.0.0-10,10是补丁号)需要相同的版本内核头文件,所以它看起来很直接安装内核头文件并在那里开始开发.
但是修补内核版本的内核头文件不可用.
因为我有一个客户端内核vmlinuz-3.0.0-10在机器上运行并且在下载内核头文件时它说没有找到.
>其他方法是获取该特定内核的源代码,但同样问题是修补内核的相同来源不可用(它不需要获取linux-kernel-3.0.0-10甚至linux-kernel-3.0的源代码.第0和第10个补丁).在某些情况下,可以获得运行内核的源代码,但并非总是可行.
>另一种方法是构建除运行内核之外的内核,并在机器中放置内置内核.但它需要构建该内核的模块,这是一个耗时且耗费空间的过程.
因此,问这个问题的目的是了解内核驱动程序开发人员的偏好.还有其他选择吗?
是否有可能在一个版本中编译内核模块并在另一个版本中运行(虽然它会给出错误,但有没有解决方法?)
解决方法 因此,构建新内核不是一个好选择,因为它需要:>构建内核
>构建模块和固件
>建立标题
将所有上述内容移动到适当的位置(如果您的机器与您要开发模块的机器不同)
因此,如果您有运行系统的内核头文件,那么您不需要为任何内核版本下载源代码,同时使用模块
make -C /lib/modules/kernel-headers-x.y.z/build M=`pwd` modules
你的模块就准备好了.
如果有更好的答案,我会毫不犹豫地接受他们中的任何一个.
总结以上是内存溢出为你收集整理的为不同的Linux版本构建内核模块全部内容,希望文章能够帮你解决为不同的Linux版本构建内核模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)