我想为centos 7内核构建我的内核模块。但我对一些功能原型有问题。它在kernel-3.10.0-327.36.3.el7和kernel-3.10.0-514.el7.中是不同的我知道如何使用Linux Kernel Version Macro Definition。但是我需要检查内核补丁版本和linux目录名。
有人知道预处理器宏来检查内核的补丁版本吗?
发布于 2017-05-29 11:43:15
我刚找到一些信息。我们可以在内核头中使用Makefile中的一些预定义变量。例如,在centos 7中,我们有内核-3.10.0-514.16.1.el7。文件/usr/src/kernels/3.10.0-514.16.1.el7.x86_64/Makefile:中有变量
VERSION = 3
PATCHLEVEL = 10
SUBLEVEL = 0
EXTRAVERSION = -514.16.1.el7.x86_64
NAME = Unicycling Gorilla
RHEL_MAJOR = 7
RHEL_MINOR = 3
RHEL_RELEASE = 514.16.1
...在内核模块的Makefile中,我们可以使用-DPATCH_VERSION=${RHEL_RELEASE} gcc参数(或centos 7中的示例)将其放入源代码中。但是需要检查发行版,因为debian中没有RHEL_RELEASE变量。
我觉得还有更好的办法。
https://stackoverflow.com/questions/44133917
复制相似问题