为不同的Linux版本构建内核模块

为不同的Linux版本构建内核模块,第1张

概述我是编写内核模块的新手,因此面临很少的非技术问题. 因为为特定内核版本创建内核模块(比如3.0.0-10,10是补丁号)需要相同的版本内核头文件,所以它看起来很直接安装内核头文件并在那里开始开发.  但是修补内核版本的内核头文件不可用. 因为我有一个客户端内核vmlinuz-3.0.0-10在机器上运行并且在下载内核头文件时它说没有找到. >其他方法是获取该特定内核的源代码,但同样问题是修补内核的 我是编写内核模块的新手,因此面临很少的非技术问题.

因为为特定内核版本创建内核模块(比如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版本构建内核模块所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1030793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存