当前位置:  技术问答>linux和unix

insmod 失败,问题很奇怪,方法用尽,求助

    来源: 互联网  发布时间:2016-08-22

    本文导语:  弄nand驱动,编进内核没有问题,但是不方便调试,编成模块后insmod失败,提示:Unknown symbol in module 问题是模块中调用了一个函数:AU1XXX_NAND_WRITE();这个函数是在另一个文件中编译进内核的,主要就是这个导致错误...

弄nand驱动,编进内核没有问题,但是不方便调试,编成模块后insmod失败,提示:Unknown symbol in module
问题是模块中调用了一个函数:AU1XXX_NAND_WRITE();这个函数是在另一个文件中编译进内核的,主要就是这个导致错误。
排除以下情况:
    (1):MODULE_LICENSE("GPL"); 已加
    (2):依赖模块已先行加载
    (3):/proc/kallsyms里面有所需要的函数
    (4):头文件,路径等都没问题
请问各位这个到底是哪里出问题了呢?谢谢解答!

|
本帖最后由 wenxy1 于 2010-04-26 15:22:58 编辑
1. AU1XXX_NAND_WRITE()是否编译进内核,查看System.map文件是否存在此函数,或者直拉用二进制文件编辑工具查找此函数名。或者编译时,在此函数内直接打aaaaaaaaaa等,人为制造语法错误,就能确定是否编译了此文件。

2. EXPORT_SYMBOL(AU1XXX_NAND_WRITE); 记得导出此函数。
EXPORT_SYMBOL()  include/linux/module.h

This is the classic method of exporting a symbol: dynamically loaded modules will be able to use the symbol as normal.
EXPORT_SYMBOL_GPL() include/linux/module.h

Similar to EXPORT_SYMBOL() except that the symbols exported by EXPORT_SYMBOL_GPL() can only be seen by modules with a MODULE_LICENSE() that specifies a GPL compatible license. It implies that the function is considered an internal implementation issue, and not really an interface. 
参考:http://www.kernel.org/doc/htmldocs/kernel-hacking.html#sym-exportsymbols

|
AU1XXX_NAND_WRITE()所在的文件是不是未参加编译,再核准下?

|
dmesg 命令, 先看看到底是什么错误。 贴出来。

|
编译的时候不报错
=================
这个问题确实很 bt, 你随便调用一个错误的函数, 编译的时候也不会报错的。

|
编成模块后insmod失败,提示:Unknown symbol in module

出现 这种问题的一般原因是:
1、你这个函数是在其他模块定义的,但是没有用  EXPORT_SYMBOL()导出该函数
2、你这个函数就是在本模块定义的,但没实现该函数

一般 只要排查这两个原因基本就OK了!

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 升级linux到2.6.11后insmod模块都出现insmod invalid format??
  • insmod加载模块问题
  • 请高手帮忙解释一下,insmod ./$module.ko || exit 1中的“||”是什么意思啊,多谢!
  • 运行insmod ip_tables后,reboot后又无效了?
  • 驱动编译insmod问题,100分相送,在线等待,有效马上结贴
  • insmod加载模块问题.
  • 如何在程序中执行 insmod mydriver.ko命令?
  • Linux串口驱动insmod后无效
  • insmod是否每次开机都要运行
  • insmod 加载驱动模块后,重启后驱动为什么没有了
  • insmod 加载sis650_dvr.o-4-02
  • insmod或modprobe具体怎么用啊
  • RH9.0 insmod命令在默认的shell中找不到?
  • 在开发板上insmod模块led.o出错。
  • insmod模块无显示,但rmmod模块有显示
  • insmod: unsolved sysbol srand类似的错误!
  • insmod bridge.ko出错
  • [急] insmod时,报错unresolved symbol!!
  • insmod scull.ko出错 Unknown symbol in module
  • insmod 安装内核模块的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3