jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:2041回复:14

驱动动态加载的问题

楼主#
更多 发布于:2004-06-25 11:42
我编了一个多文件驱动程序,然后写了一个Makefile,并且make cs.o(目标文件)已经通过!

但我在目标版上加载的时候:insmod cs.o
出现以下错误:
Using cs.o
insmod: unresolved symbol claim_fiq
insmod: unresolved symbol disable_fiq
insmod: unresolved symbol release_fiq
insmod: unresolved symbol set_fiq_regs
insmod: unresolved symbol enable_fiq
insmod: unresolved symbol set_fiq_handler

这些函数(claim_fiq,disable_fiq等)都是系统内部函数,并且在asm/fiq.h中说明。我在源程序中已经
#include <asm/fiq.h>,按道理它应该能识别这些函数啊(因为编译已经通过)!

出现这些错误事什么原因哪?
luohongkun
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2004-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-02 09:30
请问这些问题你解决了么?我也遇到用样的问题,拜托大家互相帮助啊/
chopin_1998
驱动牛犊
驱动牛犊
  • 注册日期2004-04-01
  • 最后登录2005-03-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-08 11:23
我编了一个多文件驱动程序,然后写了一个Makefile,并且make cs.o(目标文件)已经通过!

但我在目标版上加载的时候:insmod cs.o
出现以下错误:
Using cs.o
insmod: unresolved symbol claim_fiq
insmod: unresolved symbol disable_fiq
insmod: unresolved symbol release_fiq
insmod: unresolved symbol set_fiq_regs
insmod: unresolved symbol enable_fiq
insmod: unresolved symbol set_fiq_handler

这些函数(claim_fiq,disable_fiq等)都是系统内部函数,并且在asm/fiq.h中说明。我在源程序中已经
#include <asm/fiq.h>,按道理它应该能识别这些函数啊(因为编译已经通过)!

出现这些错误事什么原因哪?
 


猜测:看看这些函数,是否声明为不导出?
Linux Power!
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-10 22:15
编译通过并不表示系统提供这些函数
-c只是生成中间代码,没有找到的函数会等到insmod的时候,再行确定。
你看看你的内核导出的符号表里面有没有
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-10 22:17
你可以在内核的文件里面,自己把这些函数用export_symbol导出去。然后重新编译内核
lsshao
驱动牛犊
驱动牛犊
  • 注册日期2004-02-03
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-11 09:17
很有可能是代码移植!!!
本人遇到过类似的问题
――有可能是内核版本问题,新的函数就版本当然不认识了
1)最好不用这些函数,就可以了!!!
2)如果实在要用,就要找老版本相应的东东替代!!
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
6楼#
发布于:2004-07-11 09:27
搞linux我就是烦这些,现在能用的函数,不知什么时候就不能用了! :(
highwaylost
驱动小牛
驱动小牛
  • 注册日期2003-12-31
  • 最后登录2005-09-26
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-12 10:52
现想它烦都不行了,搞不成linux了
“恨怨悲苦憎怒噌 仁爱慈孝耻义廉 是故恨人所以得仁 无爱者必不怨 不慈者必无悲 孝而有苦 憎后耻来 义自怒生 廉人心噌 夹天地七大苦 破人情七大碍--”
jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-16 18:50
还是没解决
继续求助
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-18 10:17
你到/proc/kallsyms看看有没有这几个导出的符号
kallsyms在有的系统中也许是ksyms。
jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-19 15:41
我用ksyms -a看了一下,里面没有这些函数,但内核有这些函数原型
,我想可能没有编译到内核里吧,但不知道怎么把他们编译到内核里。
chenyf1210
驱动牛犊
驱动牛犊
  • 注册日期2004-05-27
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分415分
  • 威望98点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-28 14:47
试试将编译驱动时所用的系统内核放到目标机上去,或将目标上的内核拿到台式机上,在该内核下编译driver。
jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-09-02 14:51
应该是没有把那些函数编译进内核
只是不知怎么把它们编进去。困惑ing
dqwjack
驱动牛犊
驱动牛犊
  • 注册日期2004-03-09
  • 最后登录2018-09-03
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2004-09-03 18:09
我也遇到同样的问题,不知怎么解决,哎
dqwjack
jackadandy
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分5分
  • 威望30点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-09-04 15:37
问题已经解决了
把包含这些函数的文件编译进内核就可以了
要修改同目录下的makefile中的export-objs到obj
游客

返回顶部