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

Linux USB设备枚举失败:";设备描述符读取/64,错误-32“;,linux,linux-kernel,usb,embedded-linux,microcontroller,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:

我正在用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
非常感谢。

AFAIK状态-32表示“断管”(EPIPE)。这意味着usb通信(协议)存在问题。例如,usb设备无法正确响应usb请求,并且发送了一些主机不需要的数据或发送的数据不足。可能还有其他原因


第一条消息告诉我们,来自主机的“获取设备描述符”和“设置地址”请求存在问题。这些是主机在枚举过程开始时发送的基本请求。如果usb设备无法成功地为这些请求提供服务,则无法进一步操作。

此错误可能是由于以错误的频率为片上usb设备计时造成的。检查时钟树配置。频率应为48MHz。如果稍有偏差,则可能枚举有时成功,有时失败。如果它的方式,枚举将始终失败。可能会出现各种错误,包括您列出的错误。

我已在一台笔记本电脑中安装了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
[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文件现在看起来是这样的,它解决了这个问题: