web-dev-qa-db-ja.com

USBデバイスの列挙が失敗します:「デバイス記述子の読み取り/ 64、エラー-32」

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

どうもありがとう。

8
Shan

AFAIKステータス-32は、「壊れたパイプ」(EPIPE)を意味します。これは、USB通信(プロトコル)に問題があることを意味します。たとえば、usb-deviceはusb-requestに対して正しく応答せず、ホストが予期しないデータを送信したり、十分なデータを送信しなかったりします。他の理由もあるかもしれません。

最初のメッセージは、ホストからの「デバイス記述子の取得」および「アドレスの設定」要求に問題があることを示しています。これらは、列挙プロセスの最初にホストから送信される基本的なリクエストです。これらのリクエストをusb-deviceで正常に処理できない場合は、先に進むことはできません。

6
user2699113

このエラーは、オンチップUSBデバイスを間違った周波数でクロックすることによって発生する可能性があります。クロックツリーの構成を確認してください。周波数は48MHzである必要があります。少しずれていると、列挙が成功することもあれば失敗することもあります。それがかなり離れている場合、列挙は常に失敗します。あなたがリストしたものを含む様々なエラーが発生する可能性があります。

1
Roger Dahl

1台のラップトップにXCP-NGサーバーをインストールしましたが、次のエラーのためにシステムも起動しませんでした:USB3-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
0