内核模块 版本控制

内核模块的版本控制,主要用来解决内核模块和内核之间的接口一致性问题。默认不开启。
根据函数参数、返回值类型等生成CRC校验码。校验码保存在 Module.symvers 中,及内核文件 vmlinux 的 modver 段中。当内核和模块双方的校验码相等,则为相同接口。

内核启动版本控制功能:CONFIG_MODVERSIONS

   menuconfig ->
        [*] enable loadable module support ->
            [*] module versioning support

模块适配

内核和依赖内核的模块都要重新编译才能对应得上。模块导出的符号也会生成校验码,同样保存在对应目录的 Module.symvers 中。二进制文件中会新增 modver 段,保存校验码。

Linux内核模块编译、加载、运行机制分析、版本控制、许可声明、内核污染、模块传参、模块签名机制、out-of-tree动态模块编译及Makefile模板编写,尽在《Linux内核编程》,详情点击:王利涛老师个人淘宝店:Linux内核编程