USBデバイスのリセットとは何ですか?


20

私はこのまったく新しいソフトウェアRAID-1を2つのWD Elements外付けUSBドライブで構築しましたが、Linuxが次のメッセージをかなり繰り返していることがわかります。

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

それで、それは何と言っていますか?これは正常ですか?これは私が修正しようとするべき問題ですか?

更新
実際、これらのメッセージは、私が思っていたドライブ向けではありません。USBハブ経由でこのコンピューターに接続されている他のUSBドライブもたくさんあります。とにかく、私の質問は、基本的にこのメッセージは平易な英語で何を意味するのですか?


3
USBドライブからRAIDを作成することは、良い考えのようには聞こえません。RAIDはすべてのドライブを確実に保持することであり、USBはすべてデバイスのホットプラグおよびホットプラグです。RAID-1を使用しているため、それほど悪くはありませんが、あまり良い考えではありません。
mvp

1
RAID構成でUSBデバイスを使用しても問題はありません。エンタープライズサーバーではなく、ホームコンピューターであると考えると、これは完全に適切なアイデアです。USBスループットの制限について議論することもできますが、個人的にはそれは問題ではありません。このレイドは、バックアップソリューションに対する他の何よりも怠zyなアプローチです。
ILIV

1
ドライブがノートブックのUSBポートに接続されていることを示しました。あなたが望むものを言ってください、しかし、これは単に外に出るのを待っている時限爆弾です。また、デバイスがUSB3の場合、カーネルはxhci_hcdを使用する必要があります。ehci_hcdを使用している場合、デバイスはUSB2の速度で実行されています。
mvp

1
なぜ「時限爆弾」なのですか?
ILIV

2
次回は、時限爆弾と呼ぶ本当の理由を考えてみてください。記録のために、私は猫や他のペットを持っていません、私はケーブルを引っ張ったことがありません、このノートブックは今数年間文房具のままでした、USBポートが燃え尽きる可能性は持つ可能性とほぼ等しい直接接続が切断されると、「他の何か」がおかしくなり、最も徹底的に構成およびインストールされたエンタープライズサーバーでも発生する可能性があります。だから、そんなに妄想的にならないでください。これはRAID-1です。2台のディスクを同時に使用することはほとんどありません。これは固い解決策です。限目。
ILIV

回答:


22

私が試してみましょう。

文字通り、メッセージはLinux USBスタックが特定のデバイス(デバイス#19と#20、それらが何であれ)に "USB_RESET"を発行したことを示しています。エラーは10〜30秒に1回発生するようです。USBリセットは接続されたデバイスを強制的に「デフォルト状態」にするため、リセット後、ログには新しい列挙メッセージが表示されます。ログの詳細度が非常に低くなっているようです。

操作の途中でUSBデバイスをリセットするのは、かなり抜本的な状況です。コントローラは、「トランザクションエラー」が発生した場合、この「ポート」リセットに頼ります。リンクがUSBトランザクションのすべての必要なフェーズを完了しない場合、またはCRCエラーがある場合、トランザクションエラーが発生します。通常のUSBでは、EHCIコントローラーは失敗したトランザクションを自動的に再試行し(通常最大3回)、XACT_ERROR割り込みを設定します。統計的には、エラー理論により、リンクが3回連続して適切に応答しない場合、特定のUSBセグメントに何らかの問題があり、ほとんどが電気的な問題です。そのため、トランザクションエラーは致命的と見なされ、ソフトウェアはリンクの回復を試みます。tree-fourがリンクの回復に失敗すると、ホストはこのポートをデッドと見なし、終了します。

しかし、Linuxでは、誰かが3回の理論的な試行では不十分であると判断し、Linuxソフトウェアはさらに32回(32回)試行し、合計96回(!!!)試行します。ハードウェアリンクが電気的にわずかなものである場合、96回の試行が99.99%の時間で成功する可能性があります。Linuxソフトウェアの達人は、これが疑わしいデバイス/ケーブルの操作性の改善に役立つと主張しています。本質的に、この手法は、この特定のUSB接続に関する深刻な問題を隠しますが、長期的にはユーザーを助けません。

問題は、ドライブへの限界電圧(VBUS)供給、VBUSグリッチ、または信号線の信号劣化にある可能性があります。まず、非常に短い高品質の認定ケーブルを試し、エラーの統計が変化するかどうかを確認します。


超まとめ、ありがとう!いくつかの追加ソースはクールです。
クリスチャンベンケ

1
それがehci_hcdモジュールによって行われる再試行の数を増やすことが可能かどうか知っていますか?またはohci_hcd、特定のデバイスに強制することは可能ですか(例:/dev/sdaによって処理されehci_hcd、「問題のある」/dev/sdbはによって処理されますohci_hcd)?
dma_k

5

このエラーについては、記事Linux:ehci_hcdを使用した高速USBデバイスのリセットエラーと解決策で説明されています 。

このエラーは、USB 2.0がシステムで機能しないか、USB 1.1の速度でのみ機能する可能性があることを示しています。この問題を修正するには:

  1. ハードウェアの交換:ほとんどの場合、マザーボードを交換する必要があります。
  2. ehci_hcdドライバーを削除する
  3. ehci_hcdドライブのUSB 2.0インターフェイスを無効にして、USB 1.1として使用します。要するに、ehci_hcdを無効にします。

マザーボードを交換したくない場合、ehci_hcdドライバーを削除するには、ファイル/etc/modprobe.d/blacklist.conf を編集して次の行を追加します。

blacklist ehci_hcd

最後に、mkinitrdスクリプトを使用して、ehci_hcdなしでinitrdルートファイルシステムとして機能できるディレクトリ構造を構築します。

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

テストとして再起動します。

同様の手順を含む記事は次のとおりです。 「カーネル:usb 1-2.2:ehci_hcdおよびアドレス6を使用して高速USBデバイスをリセットする」エラーが/ var / log / messagesファイルに書き込まれるのはなぜですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.