insmod加载模块错误分析

来源:互联网 发布:维纶触摸屏编程手册 编辑:程序博客网 时间:2024/05/20 19:15

1.no symbol version for module_layout   原因:  Makefile 中include 指向 Module.symvers 版本不符

解决方法:找到与内核版本相同源文件夹,其下须包含Module.symvers文件

2.insmod: error inserting '*.ko': -1 Unknown symbol in module    dmesg打印消息Unknown symbol  (err 0)   原因: 模块中存在未知符号

解决方法:首先确定源码中包含MODULE_LISENCE("GPL")声明,这样才能引用的库文件中函数或变量符号,因为库文件中函数一般采用EXPORT_SYMBOL_GPL()导出符号.再次测试.若仍不行就确认加载的模块是否依赖其它系统模块,然后通过lsmod命令查看所依赖的系统模块是否已加载.这时可将编译好的模块copy至/lib/modules/内核版本号/目录下(随便怎么放都行),运行sudo depmod 命令,depmod会查找分析/lib/modules/内核版本号/目录下所有的模块后更新依赖文件/lib/modules/内核版本号/modules.dep.然后modprobe 模块(注意不要加后缀.ko)再次测试.

0 0
原创粉丝点击