質問: 18hubの数がわかります。これらの各ハブは、アクティブな7ポートハブでもあります。これらの第2層hubのすべてのポートにusbスティックが接続されています。合計で126本のusbスティックがコンピューターに接続されています。すべてのusbディスクデバイスを検索するスクリプトがあります(/ dev/disk/by-path /のリストを使用)。次に、各usbディスクデバイスが最初にパーティション化され、cpを使用して書き込まれ、syslinuxを使用して起動可能になります。これは並行して行われません!問題:使用しているusbディスクデバイスは105台しかありませんls -la /dev/disk/by-path | grep usb | grep -v part | wc -l 3列(1列は2層目の1ハブに対応)のスティックのledも消灯しています。これらのスティックをすべて機能させるにはどうすればよいですか? (またはおそらくそれ以上?)
回答: ここで説明されているように、標準です: https://en.wikipedia.org/wiki/usb_device#system_design 1つのホストコントローラーに127台を超えるデバイス(ハブを含む)を接続することはできません。現在:ホストコントローラー+3ハブ(第1層)+ 18ハブ(第2層)=ディスクデバイスとして表示されない22台のデバイス。127からこれらの22個のusbデバイスを引いたもの=カーネルがディスクとして管理できる105個のデバイス。addrアドレスフィールドが7ビット長であるため、127デバイスはusbプロトコルの厳しい制限です(ここを参照: http://www.beyondlogic.org/usbnutshell/usb3.shtml#usbprotocols )。したがって、ソフトウェアではそれを増やす方法はありません。たぶん、ホストコントローラーインターフェイス以上のものを試してみるか、ハブの数を減らすことでトポロジを変更することができます(したがって、システムから認識されるディスクの数を増やすことができます)。