Chinaunix首页 | 论坛 | 博客
  • 博客访问: 521338
  • 博文数量: 87
  • 博客积分: 1549
  • 博客等级: 上尉
  • 技术积分: 969
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 16:56
文章分类
文章存档

2013年(10)

2012年(28)

2011年(49)

分类: LINUX

2011-04-08 13:25:06

加载时出现: # insmod bus_basic.ko bus_basic: Unknown symbol bus_create_file bus_basic: Unknown symbol bus_unregister bus_basic: Unknown symbol bus_register insmod: cannot insert 'bus_basic.ko': Unknown symbol in module (-1): No such fil e or directory 但是查看kallsyms里面有这些函数 # grep 'bus_create_file' kallsyms c017adf0 T bus_create_file c02f6a10 r __ksymtab_bus_create_file c02fc848 r __kstrtab_bus_create_file # grep 'bus_register' kallsyms c017b6c8 T bus_register c02f6a40 r __ksymtab_bus_register c02fc898 r __kstrtab_bus_register # grep 'bus_unregister' kallsyms c017b810 T bus_unregister c02f6a38 r __ksymtab_bus_unregister c02fc888 r __kstrtab_bus_unregister说明所用内核符号存在于“ELF段”中后来重新启动系统,重新加载,由于是第一次,会多出现一句“Dual BSD/GPl”tains kernel ,注意不是“Dual BSD/GPL”之前有一个LED驱动程序没有加MODULE_LICENSE出现类似的情况,但还是可以正常运行,所以没有在意。我把那个改过来后,发现问题解决了总结:如果一个模块没有显式地标记为内核可识别的许可证,则会被认为是专有的,也就会出现“tains”但是没有搞清为什么那模块就不能正常运行了,难道要指定许可证才能搞用相关函数???
阅读(8985) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~