imx6ulevk linux内核usb驱动的问题
来源:互联网 发布:跳舞毯电脑软件 编辑:程序博客网 时间:2024/06/14 02:14
在使用usb-skeleton.cusb设备驱动的时候,首先得修改USB_SKEL_VENDOR_ID和
USB_SKEL_PRODUCT_ID这两个值,这两个值分别对应于production ID和vendorID.
因为在usb枚举的过程中会通过这两个值与usb设备驱动进行匹配。
在开发板子的过程中,使用了U盘和鼠标的两个id。插上板子之后,板子原有的usb
驱动程序会被检测到,但是我自己开发的驱动不能被检测到,当我把id换成我的u盾
Id之后,我的驱动程序被检测到,探测程序被调用。所以猜想,usb设备驱动之间存在着竞争关系。Usb核心会优先使用系统自带的驱动与设备匹配,当系统驱动中没有相应的设备驱动的时候,才会调用我们开发的驱动。
经过验证之后。是存在这个竞争关系的。
例如,我们自己的usb驱动程序使用的是u盘的两个id。并且自己的模块能够正常加载。但是在插入u盘的时候,linux主机系统会优先使用系统已经带有的u盘的设备驱动,导致我们的驱动不会被检测,自然不能被加载。
通过修改usb-skeleton.c之后,加入了自己的u盾的两个id,u盾的两个id肯定是没有加载到bsp系统的设备驱动的。编译,从新加载驱动。内核会提示成功。现在把自己的u盾插上之后。usb-core调用了我修改驱动的
探测函数。并且正确加载了我的驱动。在/dev下面出现了在驱动里面定义的那个设备文件,test_usb0.然后用cat test_usb0.。里面打印了自己定义的printk().到此自己的usb驱动探索完成。后续的应用程序的开发可以使用skele0设备文件进行读写。
探测过程:
加载成之后:
到此,usb驱动程序探索完成。由于内核版本高。网上的都是2.6的。自己探索,花了很长时间。有不对的地方还请指教。
- imx6ulevk linux内核usb驱动的问题
- 关于fl2440开发板Linux内核添加USB驱动的问题
- 基于Linux内核的USB鼠标驱动的简单实现
- fl2440添加内核usb驱动时的问题
- fl2440添加内核usb驱动时的问题
- linux-2.6.35内核移植—USB驱动的添加
- USBHID之内核抢占USB驱动问题
- 25.2.1 Linux内核USB驱动框架
- Linux内核移植 part3:usb host驱动
- fl2440 linux内核移植usb驱动
- Linux 安全预警:Linux 内核的 USB 驱动存在大量缺陷
- Linux的USB驱动分析
- 内核添加USB驱动
- linux usb驱动,一个简单的usb驱动,simp_usb
- Linux 平台上的usb驱动开发,主要有内核驱动的开发和基于libusb的无驱设计。
- Linux-2.6.22.6 内核移植--添加USB设备驱动
- S3c6410 linux内核移植(3)--- usb驱动出错解决
- Linux内核usb驱动框架——U盘挂载
- 反射获取对象属性
- WebService学习总结(一)——WebService的相关概念
- JS获取URL参数Param
- 欢迎使用CSDN-markdown编辑器
- Andoid开发之Java基础(一)
- imx6ulevk linux内核usb驱动的问题
- 关于-宏碁4741G换固态硬盘SSD的一些注意事项
- Swift控制语句
- Mysql的利器Mycat
- Ruby元编程-Week-5
- logistic Regression
- 让Nginx支持pathinfo
- os x 终端配色
- cocos2d-x按钮设置