LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 980|回复: 2

驱动程序模块出错

[复制链接]
发表于 2003-9-1 15:36:56 | 显示全部楼层 |阅读模式
系统:Redhat 9
内核:2.4.20-8

我写了一个ps/2的鼠标驱动程序,是作为模块插入内核当中的。而内核中原有的ps/2 mouse support已经被我编译出内核。
问题是这个样子的,我在模块的初始化当中,申请了12号IRQ,并且申请了从0x300开始的3个ioports,insmod时显示申请成功,注册miscdevice成功。在/dev中mknod一个c设备mknod ps2mousec c 10 1也没有出错。cat /proc/interrupts显示中断号也申请成功。这个时候我的驱动程序应该和设备文件ps2mouse挂接起来了的,但是为什么lsmod仍然显示我的模块为unused?????
而且在我rmmod时并未打印我在cleanup_module中定义的打印信息。在rmmod后再insmod我的模块,系统出错。我怀疑是我的cleanup没有作用,irq和ioports都没有被释放。按理说cleanup应该不会出错啊,而且就算释放资源出错,也应该给我个打印信息啊!但是现在什么都没有,为什么???
请高手指点一下!!
发表于 2003-9-2 13:08:44 | 显示全部楼层

终于找到组织了:)请教个问题

我正在读Ori Pomerantz的书《Linux Kernel Module Programming Guide》照着编译书中的“Hello World!”遇到问题,问题很初级,但我想很多刚接触这个的都有这问题,请给个解答,万分感谢!

我的 系统:redhat linux 9.0(未编译过内核)

1. 模块编译后,insmod提示内核版本是2.4.20-8,而我的模块是为2.4.20内核编译的。提示如下:

insmod hello.o

hello.o: kernel-module version mismatch
        hello.o was compiled for kernel version 2.4.20
        while this kernel is version 2.4.20-8.
2. 强行安装后,也没打印预期的消息:
Hello, world - this is the kernel speaking。
3. 卸除时也没打印预期的 消息:
Short is the life of a kernel module。

以前的类似问题:我曾经在rh8中从2.4.18内核下升级到2.4.20,错误提示大意是:模块是为内核2.4.18编译的,而内核是2.4.20

我有如下疑问:
1. 我 担心重新编译内核问题还在!!!

2. 编译内核如果不要求版本控制能是不是能解决这个问题?(最好还是要的)

3. 升级内核时,这个问题又怎么解决呢?

希望指点迷津
 楼主| 发表于 2003-9-2 13:50:36 | 显示全部楼层
可以在编译内核是去掉版本控制
坛子上有很多这方面的资料,搜搜看吧
我对这个也不是很清楚,菜鸟一个!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表