linux usb键盘驱动安装失败,写USB驱动:usb-skeleton.c,插上USB键盘,probe没被调用...

写USB驱动:usb-skeleton.c,插上USB键盘,probe没被调用

发布时间:2011-08-27 17:14:24来源:红联作者:辛昕

我想摸索一下USB驱动怎么写,以后要写特定的设备驱动,暂时先以USB键盘着手研究。

我用系统自带的usb-skeleton.c编译成模块,编译成功,然后加载到开发板上,加载成功。

usb-register的返回值是0.

但是,我插上USB键盘上(后来还试过USB鼠标,U盘)三个东西在系统上好好的都能用。

但是,probe函数却没被调用,我在函数开头,啥都没做,写了句printk,但是,dmesg后我没看到那句话。

我的怀疑是:会不会是系统自带了usb驱动,USB鼠等三个都是标准的设备。

所以,我一插上,就让系统接管了,以至于我自己加载的usb-skeleton.o起不了作用。

网上看到一篇资料,说可以先把这些东西删除了。然则,我lsmod,却发现压根没有这些东西,于是我想可能要自己安装吧。

有篇文章这么说:(这里只摘录了部分)

模块的配置方法

在很多时候,我们的USB设备驱动并不包含在内核中。其实我们只要根据它所需要使用的模块,逐一加载。就可以使它启作用。

首先要确保在内核编译时以模块方式选择了相应支持。这样我们就应该可以在/lib/modules/2.4.XX目录看到相应.o文件。在加载 模块时,我们只需要运行modprobe xxx.o就可以了(modprobe主要加载系统已经通过depmod登记过的模块,insmod一般是针对具体.o文件进行加载)

对应USB设备下面一些模块是关键的。

usbcore.o 要支持usb所需要的最基础模块

usb-uhci.o (已经提过)

usb-ohci.o (已经提过)

可是,我却没有找到系统里有这些东西。

我说的是我开发板上的系统。

root@beagleboard:/myfile/MAN/man-pages-3.32# uname -a

Linux beagleboard 2.6.32 #4 PREEMPT Thu Jan 27 17:08:08 CST 2011 armv7l unknown

我想用虚拟机上UBUNTU里的这几个模块----UBUNTU里有加载这几个模块。

可是无法加载,因为显示invalid module format.

我想,应该是版本对不上号惹的。

UBUNTU的是8.04的UBUNTU,上面的版本号是2.6.24

于是我开始了试图寻找,下载这个2.6.32版本下的这些相关驱动。

但是一直没找着。

敢情是要我再编译一个新系统,再去抽取?

这期间,我翻过了TLDP的HOWTO和一些别的文档,都没找到,甚至关于USB的内容就很少!

另外关于USB这个事,我也百思不得其解,也许我走了这么一大段路,没准还南辕北辙,肯定懂这个做过这个的朋友给点帮助,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值