linux驱动的模块依赖问题
来源:互联网 发布:淘宝服装免费代理 编辑:程序博客网 时间:2024/06/06 13:13
本帖最后由 Dolphin 于 2012-1-30 11:18 编辑
内核模块如果引用到Linux内核中的符号,这个则不属于模块间的依赖,因为内核导出的符号本身就是供内核模块所使用。本帖要讨论的是在两个独立编译的模块A和B之间,B如果要引用A导出的符号,在Makefile中该如何把这一信息加入的问题。
绝大多数情形下,内核配置时能会启用CONFIG_MODVERSIONS,这意味着无论是内核还是内核模块,在导出符号时都会为该符号生成CRC校验码,这个校验码保存在Module.symvers文件中。
最常见的是,模块会引用到内核导出的符号,此时模块的Makefile没有什么特殊的地方。现在假设A导出一个符号A_sym,那么A_sym的CRC校验码会存在于A模块所在目录的Module.symvers文件中,如果B模块引用到A模块的A_sym符号,那么是需要在它的'__versions' section中生成A_sym符号的校验码的,这个校验码直接取自于A模块的Module.symvers文件。如果B模块在编译时从它的Makefile中无法获得这一信息,首先编译阶段就会产生一个WARNING,其次加载阶段也会因为符号没有CRC校验码而导致加载失败。
此时我们需要在B模块的Makefile文件中加上下面一行,以告诉模块的编译工具链到何处查找A_sym符号的CRC校验码:
KBUILD_EXTMOD := A模块所在的目录
如此,modpost工具除了到内核所在目录下查找外,还会到KBUILD_EXTMOD指定的目录下查找Module.symvers,以确定本模块所有未定义符号的CRC值。
内核模块如果引用到Linux内核中的符号,这个则不属于模块间的依赖,因为内核导出的符号本身就是供内核模块所使用。本帖要讨论的是在两个独立编译的模块A和B之间,B如果要引用A导出的符号,在Makefile中该如何把这一信息加入的问题。
绝大多数情形下,内核配置时能会启用CONFIG_MODVERSIONS,这意味着无论是内核还是内核模块,在导出符号时都会为该符号生成CRC校验码,这个校验码保存在Module.symvers文件中。
最常见的是,模块会引用到内核导出的符号,此时模块的Makefile没有什么特殊的地方。现在假设A导出一个符号A_sym,那么A_sym的CRC校验码会存在于A模块所在目录的Module.symvers文件中,如果B模块引用到A模块的A_sym符号,那么是需要在它的'__versions' section中生成A_sym符号的校验码的,这个校验码直接取自于A模块的Module.symvers文件。如果B模块在编译时从它的Makefile中无法获得这一信息,首先编译阶段就会产生一个WARNING,其次加载阶段也会因为符号没有CRC校验码而导致加载失败。
此时我们需要在B模块的Makefile文件中加上下面一行,以告诉模块的编译工具链到何处查找A_sym符号的CRC校验码:
KBUILD_EXTMOD := A模块所在的目录
如此,modpost工具除了到内核所在目录下查找外,还会到KBUILD_EXTMOD指定的目录下查找Module.symvers,以确定本模块所有未定义符号的CRC值。
- linux驱动的模块依赖问题
- linux驱动的模块依赖问题
- linux设备驱动模块引用和依赖
- 内核符号和驱动模块的依赖
- Linux 驱动模块插入问题
- linux下华为HSPA模块MU609的驱动问题
- linux下华为HSPA模块MU609的驱动问题
- 3.2Linux的模块驱动
- Linux驱动模块卸载后不能再加载、驱动不能卸载的问题
- Linux 依赖关系的问题
- linux的驱动问题
- Linux设备驱动--Linux驱动模块交叉编译的注意事项
- [linux]linux驱动模块
- 加载驱动模块遇到的问题
- Linux内核模块和驱动的编写
- ubuntu linux 驱动模块的使用
- 关于linux模块驱动简单的Makefile
- linux 驱动开发-模块的构建
- 根据上排给出十个数,在其下排填出对应的十个数 ,要求下排每个数都是先前上排那十个数在下排出现的次数。
- 关于Ext.BLANK_IMAGE_URL
- Java Servlet实现同一账号后登陆挤掉前一个登陆(类似QQ)
- SpringIOC源码序列图
- 使用Msmtp mutt shell发邮件
- linux驱动的模块依赖问题
- C++ Boost 笔记
- fcitx 输入法管理器
- Java-变量作用域
- mysqladmin不能修改普通用户密码
- 市民质疑608路709路难等 调查:司机流失道路拥堵
- 【获取内置命令ID】:VBA编程人员常用的工具。可以查询Excel内部命令的ID号
- hdu 3336 Count the string
- ContentProvider