QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1374|回复: 16

请教高手:有没有实现驱动的另类方法?--请帮忙看看吧。。。

[复制链接]
发表于 2004-9-15 12:11:33 | 显示全部楼层 |阅读模式
我有一个PDA的LINUX平台,可是系统是别人做的,我想加入USB打印机的驱动模块,可是却出了问题:
insmod 不成功:提示:Using /lib/modules/2.4.24/printer.o
insmod: QM_MODULES: Function not implemented
我重新编译BUSYBOX,打开#define BB_FEATURE_OLD_MODULE_INTERFACE
可却提示:# ./insmod -f printer
Using /lib/modules/2.4.24/printer.o
insmod: Warning: kernel-module version mismatch
/lib/modules/2.4.24/printer.o was compiled for kernel version 2.4.21
while this kernel is version 2.4.24
insmod: get_kernel_syms: printer: Function not implemented
看上去应该是该内核没有打开对模块的支持,我没有SOURCECODE,
不能改变,所以请教高手:

有没有不通过模块加入驱动而实现驱动打印的方法???
我的系统是能够在/proc/bus/usb/devices中显示出该设备的,
可我就是看着干瞪眼,急呀!!!
哪位好心人帮帮忙呀。。。谢谢了先
发表于 2004-9-15 12:55:58 | 显示全部楼层
需要将kernel-source装上
回复

使用道具 举报

 楼主| 发表于 2004-9-15 13:01:04 | 显示全部楼层
bwb兄,可以具体些吗,谢谢了了
回复

使用道具 举报

 楼主| 发表于 2004-9-15 13:05:57 | 显示全部楼层
关键是我没有SOURCE,因为PDA上有些硬件是特定的,而我没有SOURCECODE,所以要重新编译内核是做不到的。。。。
回复

使用道具 举报

发表于 2004-9-15 13:09:03 | 显示全部楼层
PDA就说不清楚了,没有干过。
试试找一下有没有打印机的驱动装装试试,好象本坛就有,装上装不上不好说,有些驱动还是需要向内核中插入的。
回复

使用道具 举报

 楼主| 发表于 2004-9-15 13:16:45 | 显示全部楼层
我要的不是打印机驱动,我上面的printer.o 就是linux/drivers/usb/printer.c编译成驱动模块的,我只想用他向打印机发送指令就行了,可是现在的问题是我insmod不成功,如上所述。所以想可能是kernel编译时未支持modules的加入,但我又不能重新编译KERNEL,所以请教。。。
有没有办法让我的printer.o MODULE 工作起来?。。。。
回复

使用道具 举报

发表于 2004-9-15 13:19:19 | 显示全部楼层
到现在没有想出办法~~~
回复

使用道具 举报

发表于 2004-9-15 22:49:18 | 显示全部楼层
insmod: Warning: kernel-module version mismatch
/lib/modules/2.4.24/printer.o was compiled for kernel version 2.4.21
while this kernel is version 2.4.24

内核中打开了modules-vision的支持,所以2。4。21的module没法用在2。4。24的内核上(pda的内核版本是2。4。24吧 ),找个2。4。24的module试一下
回复

使用道具 举报

 楼主| 发表于 2004-9-16 12:06:38 | 显示全部楼层
是打开modules-vision的支持了吗,谢谢,我试一下下。。。
回复

使用道具 举报

 楼主| 发表于 2004-9-16 14:11:37 | 显示全部楼层
我用2.2.24的kernel编译模块printer.o试了,还是不行。只是少了版本不匹配的提示。
估计还是有可能是kernel modules 未支持,因为信息本来是这样的:
# insmod printer.o
Using printer.o
insmod: QM_MODULES: Function not implemented
只是因为看到网上一些介绍怕是BUSYBOX对modules的前后支持方式不同,
改用
// Support insmod/lsmod/rmmod for post 2.1 kernels
//#define BB_FEATURE_NEW_MODULE_INTERFACE
//
// Support insmod/lsmod/rmmod for pre 2.1 kernels
#define BB_FEATURE_OLD_MODULE_INTERFACE
才会出现版本不同的提示,其实这样应该没有必要,因为他是2.1前的kernel
才需要这样的(我刚刚才发现[for pre 2.1 kernels])的。。。
会不会是这个让linky_fan老兄的判断有误呢?
LINKY_FAN老兄,到底怎样可以断定kernel中打开了对module的支持呢?
老兄们,哪位知道呀。。。。谢谢各位啦。。
回复

使用道具 举报

发表于 2004-9-16 14:27:19 | 显示全部楼层
2.4.24

不是2.2.24
回复

使用道具 举报

 楼主| 发表于 2004-9-16 15:01:46 | 显示全部楼层
WW。。。不好意思,是我写错了,我把2.4.24写成了2.2.24,
其实我测试的就是2.4.24,但就是不成功。
使用我编译的OLD_MODULE_INTERFACE的busybox提示如下:
# ./insmod ./printer.o
Using ./printer.o
insmod: get_kernel_syms: printer: Function not implemented
使用系统自带busybox提示如下:
# insmod printer.o
Using printer.o
insmod: QM_MODULES: Function not implemented
关键是现在我不能肯定kernel是否支持modules?...
了解的太少了,帮我解解困惑吧。。。。
回复

使用道具 举报

发表于 2004-9-16 19:17:46 | 显示全部楼层
有重新编内核的可能吗?
回复

使用道具 举报

发表于 2004-9-17 09:42:24 | 显示全部楼层
没有kernel-source编不成内核的,想想别的办法吧,但愿你的modules support是开着的。
回复

使用道具 举报

 楼主| 发表于 2004-9-17 11:02:30 | 显示全部楼层
我已经打算放弃了。。。。
各位仁兄熟悉USB开发的仁兄帮我讲讲吧,
我的PDA上有USB modem的驱动ttyACMx,
我有个想法,通过设备文件ttyACMx来操作打印机等其他设备,有没有可能呢,
或是有什么方式通过USB控制器HUB驱动来从底层操作所有USB设备呢,
我就是搞不太清楚 。。。哪位我讲讲这些东东吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-20 19:25 , Processed in 0.065811 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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