USB (Universal Serial Bus) サブシステム

AIX® 用の USB デバイス・ドライバー・プロトコル・スタックは、相互に通信する複数のドライバーで構成されています。

以下の図は、階層化された方法で相互に通信するいくつかのドライバーを示しています。
図1: USB (Universal Serial Bus) サブシステム
イメージのトップ・ラインには USB インターフェース API が表示され、ボトム・ラインにはホスト・コントローラー・インターフェースが表示されます。
最上層は、大容量ストレージ、ヒューマン・インターフェース・デバイス、オーディオ、ハブ、およびその他のクラスを含むさまざまな USB クラスをサポートするいくつかのクライアント・ドライバーで構成されます。 クライアント・ドライバーは、クラス・レベルの機能をオペレーティング・システムから隠し、対応するクラス・レベルのデバイスにアクセスする際に、アプリケーションに対して統一されたファイル指向インターフェースを提供します。 中間層は、ホスト・コントローラー実装の詳細を非表示にする USB バス・ドライバーと、システムに存在するバス・レベルのハードウェアの複雑さで構成されます。 これは、デバイスがどの USB バス上にあるかに関係なく、対応するクラス・レベルのデバイスにアクセスする際に、各最上位クライアント・ドライバーに対して統一されたインターフェースを提供します。 下位層は、ホスト・コントローラー・ハードウェアと USB システム・ドライバー (USBD) の間のソフトウェア・インターフェースを提供する複数のホスト・コントローラー・ドライバーで構成されます。 各ホスト・コントローラー・ドライバーの詳細は、ホスト・コントローラー・インターフェース定義によって異なります。 USB サブシステム内のこれらの 3 つのレイヤー・ドライバーは連携して、さまざまな USB デバイスの接続をサポートします。 フラッシュ・ドライブ、テープ、CD-ROM、キーボード、マウス、スピーカー、およびその他のデバイスなどの USB デバイスがサポートされます。

ロケーション・コードは、[USB ホスト・コントローラー番号]: [ポート番号] の形式です。

USB 3.0 コントローラーの場合、8 個の論理ポートはカード上の 4 個の物理 USB ポートに対応しています。 ポートには、デバイスがポート USB 2.0 またはポート USB 3.0のどちらに接続されているかに基づいて、論理的に番号が付けられます。 ポートに接続されているすべてのデバイスが USB 2.0 デバイスである場合、 lsdev コマンドは、論理ポート番号として 1、2、3、または 4 を表示します。 ポートに接続されているデバイスが USB 3.0 デバイスである場合、ポートには論理的に 5、6、7、または 8 の番号が付けられます。

次の表は、さまざまな物理ポートにおける USB 2.0 および USB 3.0 デバイスの両方の論理ポート値を示しています。
物理ポート 論理ポート (USB 2.0 デバイスの場合) 論理ポート (USB 3.0 デバイスの場合)
T1 (上) 0.4 0.8
T2 0.2 0.6
T3 0.1 0.5
T4 0.3 0.7

# lsdev -C | grep usbms
usbms0     Available   0.7         USB Mass Storage

上記のように、USB 3.0 デバイス (usbms0) が論理ポート番号 0.7を示している場合、そのデバイスは usbhc0 コントローラーのポート T4 に物理的に接続されています。