返回信息流编译了一个驱动模块
insmod的时候提示
--------------------------------------------------------------------------------------------
[root@localhost adp94xx-1.0.8-12.src]# insmod adp94xx.ko
insmod: error inserting 'adp94xx.ko': -1 Unknown symbol in module
--------------------------------------------------------------------------------------------
查看/var/log/messages
有如下描述:
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_remove_host
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_partsize
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_device_set_state
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_add_device
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_host_put
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_scan_host
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_add_host
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_adjust_queue_depth
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_unblock_requests
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_remove_device
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_block_requests
Oct 28 23:33:08 localhost kernel: adp94xx: Unknown symbol scsi_host_alloc
-----------------------------------------------------------------------------------------------------
why?
请指教
PS:
kernel 2.6.16
挂在成功过一次,在/proc/modules文件中有记录
rmmod 后再insmod就没成功过
总是提示“格式非法”或者“未定义的符号 ”
驱动程序在编译的时候也有一些警告,但是编译可以通过,可声称.ko文件
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #1993同步于 2008/10/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
insmod挂载驱动模块的问题
mac1314
2008/10/29镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
这是因为你调用的这些函数都没有使用下面这个宏,编译的时候只是在头文件中找到了声明,但是在运行的时候就无法在kernel空间中找到函数体。而这样声明过的函数会生成一个列表,在模块加载的时候就能找到函数体
EXPORT_SYMBOL(at91_set_gpio_value);
EXPORT_SYMBOL的可能被排除
初步断定是调用其他的驱动模块的问题,可能是没有编译内核make menuconfig的问题,
还在找那些函数所在的文件,再查看一下Kconfig,但愿能搞定......
嗯,那就是那些函数根本没有被编译到内核里,我还纳闷呢,你怎么会引用这么多没有被export的函数,修改也会很麻烦
【 在 mac1314 (NewBer) 的大作中提到: 】
: EXPORT_SYMBOL的可能被排除
: 初步断定是调用其他的驱动模块的问题,可能是没有编译内核make menuconfig的问题,
: 还在找那些函数所在的文件,再查看一下Kconfig,但愿能搞定......
: ...................
3Q, 楼上诸位,问题解决了
依赖确实是依赖
不过,比较弱,昨天晚上之前弄过menuconfig中的SCSI 驱动选项,但是编译之后没有 make install ,
所以导致挂载的时候,无法从当前的运行内核中找到那几个模块,找了半天的,最后发现可能是这个原因
试了一把make install
insmod /rmmod
都可以了......
比较弱......