我想知道是否有一个gcc宏会告诉我Linux内核版本,所以我可以适当地设置变量类型.如果没有,我将如何定义我自己的宏呢?
我想构建一个与所有内核版本兼容的内核模块.例如,如果我在内核3.2.0-29上构建内核模块并尝试在3.2.0-86上加载它,我会收到以下错误:
modprobe my_driver
致命错误:插入my_driver时出错(/lib/modules/3.2.0-86-generic/kernel/fs/my_drv/my_drv.ko):模块格式无效
[在log messeges中:my_drv:不同意符号module_layout的版本]
如何在3.2.0-29上构建一个适用于所有3.2.0版本的内核模块.