it-swarm-ja.com

パワードハブを介した単一のUbuntu上の多くのUSB3.0デバイス

複数のUSB3.0対応デバイスをubu​​ntu12.04マシンに接続してみました。しかし、一度に9台以下のデバイスが接続されていることがわかりました。 /var/log/kern.logでカーネルログを監視しようとしましたが、10番目のデバイスを接続すると、次のエラーが発生することがわかりました。

このデバイスは、使用できる十分な空きリソースを見つけることができません。 (コード12)

私のUSBホストコントローラーは次のとおりです。

Intel Corporation8シリーズ/ C220シリーズチップセットファミリUSBxHCI(rev 05)

一部のフォーラムでは、USB 3.0のサポートを無効にすると、デバイスがUSB 2.0モードで動作するようになり、問題が解決するはずだと提案されています。そして、これは真実でした。 BIOSからxHCIサポートを無効にすることでうまくいきました。

これは古いUbuntu12.04セットアップのバグであると思いました(またはusbドライバーがバグである可能性があります)。そのため、システムをUbuntu 16にアップグレードしました。しかし、ここでも同じ問題が存在します。デバイスをUSB3.0で使用したい場合はどうすればよいですか? BIOSからxHCIサポートを無効にするオプションが一部のマザーボードに存在しない場合はどうなりますか?

7

コントローラには、入力と出力を行うために接続されたデバイスに割り当てる内部バッファがあります。これらのバッファは、リソースまたはエンドポイントとも呼ばれます。

より高速なデバイスでは、より多くのデータを含めるために、より多くのバッファーを割り当てる必要があります。この数はデバイスごとに異なる可能性がありますが、最大は32エンドポイントで、デバイスごとに16入力と16出力です。

Intel8シリーズUSB3.0 XHCIホストコントローラーは96エンドポイントしかサポートしておらず、実際の制限に早く達する可能性があるという報告があります。

あなたの投稿の情報から、各USB3ディスクは別名10のエンドポイントを使用していると思います。リソース、おそらく5インと5アウト。したがって、9つのディスクは90のエンドポイントを使用しましたが、10のディスクは96の制限を超える100のエンドポイントを必要とするため、コントローラーはオペレーティングシステムにエラーコードを送信しました。

低速のUSB2への接続を低下させると、コントローラーが各デバイスに割り当てるバッファーがはるかに少なくなるため、より多くのディスクを接続できます。

解決策は、USB2ハブを追加し、そのハブに高い転送速度を必要としないディスクを配置することです。

参考文献 :

4
harrymc

前の答えはほとんど正しいです。 USB3を使用する96エンドポイントの場合、32デバイス未満に制限されるという制限があります。ただし、USB2ハブを使用しても問題は解決しません。USB2モードでUSB3チップを使用しているため、残念ながらエンドポイントの制限は同じままです。

私もこの問題に対処しましたが、実際の問題と解決策を見つけるのに時間がかかりました。長いページなので、そこで読むことができます http://marc.merlins.org/perso/linux/post_2018-12-20_Getting-Around-USB3-xhci-32-Device-Limit-Max-number-of-devices-this-xHCI-Host-supports-is-32。html

基本的に、それはこれらのものに要約されます
1)USB3には96エンドポイント制限があります(これは32デバイスのみに変換されます)
2)ハブが原因でさらにエンドポイントが失われます。USB2ケーブルをUSB3ハブに使用すると、数スロット戻ります。
3)より一般的には、USB3なしで実行できる場合は、USB3を無効にする必要があります(USB3カーネルドライバーを削除するか、可能であれば、BIOSでUSB3を無効にします)。 USB2モードでUSB3チップを使用しても効果がないため、マザーボードがポートをエンドポイント制限のないUSB2コントローラーに再ルーティングするようにUSB3を無効にする必要があります4)USB3を無効にできない場合は、USB2のみのPCIeカードを入手してくださいそしてそれは本当にあなたに120かそこらのデバイスを与えるでしょう。

その他のリソース: https://www.spinics.net/lists/linux-usb/msg175224.html
https://forums.intel.com/s/question/0D50P00004905stSAA/hardware-limitations-on-usb-endpoints-xhci?language=en_US

0
Marc Merlin