阅读:9096回复:2
求助:Linux下USB设备枚举失败,提示"device not accepting address"
我在装有Linux系统的PC机上开发一USB设备的固件升级程序时,发现在较老的Linux版本中接入USB设备时,系统无法枚举该设备,用dmesg查看出错信息如下:
usb 2-1: new full speed USB device using address 5 usb 2-1: device not accepting address 5, error -71 usb 2-1: new full speed USB device using address 6 usb 2-1: device not accepting address 6, error -71 去网上搜索,得到结果是:“主机HUB监视着每个USB口,当有新的USB设备接入时它便会通知主机,然后主机会发送SET_FEATURE请求给HUB,请求重置该端口;在端口重置之后,对USB设备发出命令之前,USB 2.0规范中需要10毫秒重置恢复时间(TRSTRCY);然而Linux的核心在2.6.11版本以前没有执行这个恢复时间,导致USB 2.0设备枚举的失败。” 经过我的试验,在2.6.11内核(含2.6.11)之后的Linux系统中都可以正常枚举该设备,而在2.6.11之前的Linux,枚举时便会失败,验正了上面那段话的正确性;于是我的固件升级程序在2.6.11之前的Linux系统中便没办法用了(连该USB设备都没办法枚举到,自然就无法对它进行读写了),除非将老的版本升级到2.6.11之后版本。问题是我的程序面向的是普通用户,我希望能够在不更新内核、不更换Linux发行版的情况下,在老版本(2.6.11内核之前)中也可以使用我的固件升级程序,各位大虾可有解决的方法???? |
|
沙发#
发布于:2007-07-31 18:11
呃。。。没人回答么!! 我自己顶一下~~~
|
|
板凳#
发布于:2007-08-01 09:33
有没哪位大虾来指定一二,给点建议啊~~~~ newbird我在线等了~~~
|
|