pee*_*ush 8 module linux-device-driver linux-kernel
我是编写内核模块的新手,因此面临很少的非技术问题.
因为为特定内核版本创建内核模块(比如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
Run Code Online (Sandbox Code Playgroud)
你的模块就准备好了.
如果有更好的答案,我会毫不犹豫地接受他们中的任何一个.
归档时间: |
|
查看次数: |
16164 次 |
最近记录: |