linux驱动加载时错误“Unknown symbol in module”的分析与处理
2013-03-31 11:18
429 查看
这是linux kernel 2.6.26 之后版本的bug (详细描述, 请看http://bugzilla.kernel.org/show_bug.cgi?id=12446)
并且这个bug不会被fix
解决办法是把mod_a的Module.symvers放到mod_b的当前路径,从而编译mod_b,符号信息会自动连接进去.
或者在mod_b的makefile中使用KBUILD_EXTRA_SYMBOLS指定mod_a的Module.symvers, 如:
KBUILD_EXTRA_SYMBOLS=/mod_a/Module.symvers
编译mod_b时,搜索Module.symvers的路径是:
1, kernel source path, e.g. /usr/src/kernels/linux-2.6.28.10
2, makefile中M=所指定的路径, 它等效于变量KBUILD_EXTMOD的值
3, 变量KBUILD_EXTRA_SYMBOLS的值
并且这个bug不会被fix
解决办法是把mod_a的Module.symvers放到mod_b的当前路径,从而编译mod_b,符号信息会自动连接进去.
或者在mod_b的makefile中使用KBUILD_EXTRA_SYMBOLS指定mod_a的Module.symvers, 如:
KBUILD_EXTRA_SYMBOLS=/mod_a/Module.symvers
编译mod_b时,搜索Module.symvers的路径是:
1, kernel source path, e.g. /usr/src/kernels/linux-2.6.28.10
2, makefile中M=所指定的路径, 它等效于变量KBUILD_EXTMOD的值
3, 变量KBUILD_EXTRA_SYMBOLS的值
相关文章推荐
- arm上加载insmod驱动时出现Unknown symbol in module
- 加载中断模块错误提示:Unknown symbol in module
- 往开发板写led驱动时出现错误:insmod: can't insert 's3c_led.ko': unknown symbol in module or invalid parameter
- kvm 模块加载时报错:insmod: error inserting 'kvm.ko': -1 Unknown symbol in module
- linux-3.1.4下的驱动模块 "Unknown symbol in module" 问题(by liukun321咕唧咕唧)
- Linux加载驱动"invalid module format"错误的一种可能解决办法
- linux-3.1.4下的驱动模块 "Unknown symbol in module" 问题(by liukun321咕唧咕唧)
- linux驱动模块加载出错insmod: error inserting './usb_driver.ko': -1 Unknown symbol in module
- 【Linux操作系统分析】设备驱动处理流程
- linux 驱动开发 Invalid module format 错误解决方法
- Linux 2.6.x 内核模块加载错误 “Invalid module format” 解决办法
- linux驱动的入口函数module_init的加载和释放
- linux里的nvme驱动代码分析(加载初始化)
- 【Linux操作系统分析】设备驱动处理流程
- 【Linux操作系统分析】设备驱动处理流程
- insmod: Unknown symbol in module or no symbol version for
- Linux 2.6.x 内核模块加载错误 “Invalid module format” 解决办法
- linux驱动的入口函数module_init的加载和释放
- 处理Linux下subversion尝试连接自建的VisualSVN server报“Key usage violation in certificate has been detected”错误的问题
- linux加载ko时出现Unknown symbol 错误(调用了EXPORT_SYMBOL出来的函数)