USB设备枚举失败:“设备描述符读取/ 64,错误-32”

时间:2014-03-12 02:20:29

标签: linux linux-kernel usb embedded-linux microcontroller

我正在使用ST微控制器开发ttyACM设备,并且使用相同的代码,我的主机有时可以成功枚举它(下面),但有时它只是转储下面的消息。错误-32是什么意思?

[未能注册]

usb 1-2.1: new full speed USB device number 62 using ehci_hcd
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: new full speed USB device number 63 using ehci_hcd
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: device descriptor read/64, error -32
usb 1-2.1: new full speed USB device number 64 using ehci_hcd
usb 1-2.1: device not accepting address 64, error -32
usb 1-2.1: new full speed USB device number 65 using ehci_hcd
usb 1-2.1: device not accepting address 65, error -32
hub 1-2:1.0: unable to enumerate USB device on port 1

[成功结果]

usb 1-3.1: new full speed USB device number 45 using ehci_hcd
usb 1-3.1: New USB device found, idVendor=0483, idProduct=5740
usb 1-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3.1: Product: ChibiOS/RT Virtual COM Port
usb 1-3.1: Manufacturer: HelloWord
usb 1-3.1: SerialNumber: 262
usb 1-3.1: configuration #1 chosen from 1 choice
cdc_acm 1-3.1:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 1-3.1:1.0: ttyACM0: USB ACM device

非常感谢。

3 个答案:

答案 0 :(得分:5)

AFAIK状态-32表示"断管" (EPIPE)。这意味着usb通信(协议)存在问题。例如,usb-device没有正确回答usb请求,并发送一些主机不期望的数据或发送的数据不足。可能还有其他原因。

第一条消息告诉"获取设备描述符"和"设置地址"来自主机的请求。这些是主机在枚举过程开始时发送的基本请求。如果usb-device无法成功处理这些请求,您就无法继续前进。

答案 1 :(得分:1)

此错误可能是由于片上USB设备以错误的频率计时。检查时钟树配置。频率应为48MHz。如果稍微偏离,枚举有时可能会成功,有时会失败。如果它关闭,枚举将始终失败。可能存在各种错误,包括您列出的错误。

答案 2 :(得分:0)

我已经在一台笔记本电脑上安装了XCP-NG服务器,并且由于以下错误我的系统也没有启动:USB 3-1设备描述符读取/ 64,错误32

我尝试了很多事情。甚至断开USB端口。

直到我想起我已经删除了Xen的默认SR存储库。所以我去检查了/ etc / fstab文件

[root@xcpserver2 ~]# cat /etc/fstab
LABEL=root-jvgtod    /         ext3     defaults,noatime   1  1
LABEL=swap-jvgtod          swap      swap   defaults   0  0
LABEL=logs-jvgtod    /var/log         ext3     defaults,noatime   0  2
/opt/xensource/packages/iso/XenCenter.iso   /var/xen/xc-install   iso9660   loop,ro   0  0

默认的SR信息库试图获取最后一行的内容。我试图发表评论,它奏效了!! :)我得出的结论是,/ etc / fstab文件存在问题时,也会显示此错误。希望对您有所帮助!

所以,我的/ etc / fstab文件现在看起来像这样,它解决了这个问题:

[root@xcpserver2 ~]# cat /etc/fstab
LABEL=root-jvgtod    /         ext3     defaults,noatime   1  1
LABEL=swap-jvgtod          swap      swap   defaults   0  0
LABEL=logs-jvgtod    /var/log         ext3     defaults,noatime   0  2
#/opt/xensource/packages/iso/XenCenter.iso   /var/xen/xc-install   iso9660   loop,ro   0  0