Solaris のシステム管理 (デバイスとファイルシステム)

USB デバイスの概要

Universal Serial Bus (USB) は PC 業界で開発された、周辺デバイス (キーボード、マウス、プリンタなど) をシステムに接続するための低コストのソリューションです。

USB コネクタは 1 方向 1 種類のケーブルだけに適合するように設計されています。USB が設計された主な目的は、デバイスごとに異なる何種類ものコネクタを減らすことです。USB の設計により、システムの背面パネルの混雑を軽減できます。

デバイスは、外部 USB ハブ上の USB ポートか、コンピュータ本体に設置されたルートハブ上の USB ポートのいずれかに接続されます。ハブには複数のポートがあるため、1 つのハブからデバイスツリーの複数の枝が伸びることがあります。

詳細は、usba(7D) のマニュアルページまたは次の Web サイトを参照してください。

http://www.usb.org/home

よく使用される USB 関連の略語

次の表に、Oracle Solaris OS で使用される USB の略語を示します。USB の構成要素と略語についての詳細は、次の Web サイトを参照してください。

http://www.usb.org/home

略語 

定義 

参照先 

UGEN 

USB 汎用ドライバ 

ugen(7D)

USB 

Universal Serial Bus 

usb(7D)

USBA 

USB アーキテクチャー (Solaris) 

usba(7D)

USBAI 

USBA クライアントドライバインタフェース (Solaris) 

なし 

HCD 

USB ホストコントロールドライバ 

なし 

EHCI 

拡張ホストコントローラインタフェース 

ehci(7D)

OHCI 

オープンホストコントローラインタフェース 

ohci(7D)

UHCI 

ユニバーサルホストコントローラインタフェース 

uhci(7D)

USB バスの説明

USB 仕様は、ライセンス料を払わずに入手できます。USB 仕様は、バスとコネクタの電気的および機械的なインタフェースを定義します。

USB が採用するトポロジでは、ハブが USB デバイスに接続点を提供します。ホストコントローラには、システム内のすべての USB ポートの起点となるルートハブが含まれます。ハブの詳細は、「USB ホストコントローラとハブ」を参照してください。

図 7–1 USB 物理デバイスの階層

この図は、合成デバイス (ハブとプリンタ) と複合デバイス (キーボードとマウス) を含む、有効な USB ポートが 3 つ搭載されたシステムを示しています。

図 7–1 は、有効な USB ポートが 3 つ搭載されたシステムを示しています。1 番目の USB ポートは USB メモリースティックに接続されています。2 番目の USB ポートは外部ハブに接続されており、このハブには CD-RW デバイスと、キーボードとマウスの複合デバイスが接続されています。このキーボードは「複合デバイス」であるため USB コントローラが組み込まれており、このコントローラによって、キーボードとキーボードに接続されたマウスの両方が制御されます。キーボードとマウスは、同じ USB コントローラによって制御されるため、同一の USB バスアドレスを共有します。

図 7–1 は、ハブとプリンタの「合成デバイス」の例も示しています。このハブは外部ハブで、プリンタと同じケースに入っています。プリンタはこのハブに固定接続されます。このハブとプリンタは、それぞれ異なる USB バスアドレスを持ちます。

次の表に、図 7–1 に示したデバイスの一部について、デバイスツリーパス名を一覧表示します。

メモリースティック

/pci@1f,4000/usb@5/storage@1

キーボード

/pci@1f,4000/usb@5/hub@2/device@1/keyboard@0

マウス

/pci@1f,4000/usb@5/hub@2/device@1/mouse@1

CD-RW デバイス

/pci@1f,4000/usb@5/hub@2/storage@3

プリンタ

/pci@1f,4000/usb@5/hub@3/printer@1

USB デバイスとドライバ

属性とサービスが似ている USB デバイスは、いくつかのデバイスクラスに分類されます。各デバイスクラスには対応するドライバが 1 つずつ存在しています。クラス内のデバイスは、同じ組み合わせのデバイスドライバによって管理されます。ただし、USB 仕様では、特定のクラスに属さないベンダー固有のデバイスも許可しています。

Human Interface Device (HID) クラスには、ユーザーが制御する次のようなデバイスが含まれます。

Communication Device クラスには、次のデバイスが含まれます。

その他にも、次のようなデバイスクラスがあります。

各 USB デバイスはデバイスのクラスを表す記述子を持っています。デバイスクラスは、そのメンバーが構成とデータ転送についてどのように動作するかを指定します。クラス情報の詳細は、次の Web サイトを参照してください。

http://www.usb.org/home

Solaris リリースでサポートされる USB デバイスの詳細は、usb(7D) のマニュアルページを参照してください。

USB ドライバの機能拡張

次の USB ドライバ拡張が含まれています。

EHCI ドライバ、OHCI ドライバ、および UHCI ドライバ

EHCI ドライバには、次の特徴があります。

prtconf コマンドの出力を使用して、システムが USB 1.1 デバイスまたは USB 2.0 デバイスをサポートしているかどうかを確認します。次に例を示します。


# prtconf  -D | egrep "ehci|ohci|uhci"

prtconf の出力で EHCI コントローラが確認される場合、システムは USB 2.0 デバイスをサポートしています。

prtconf の出力で OHCI または UHCI コントローラが確認される場合、システムは USB 1.1 デバイスをサポートしています。

Solaris USB アーキテクチャー (USBA)

USB デバイスは、2 つのレベルのデバイスツリーノードとして表現できます。デバイスノードは、USB デバイス全体を表します。1 つまたは複数の子インタフェースノードはデバイス上にある個々のUSB インタフェースを表します。

ドライバのバインドは互換性のある名前属性の使用によって実現されます。詳細については、『IEEE 1275 USB binding (英語版)』の 3.2.2.1 項と『Writing Device Drivers 』を参照してください。ドライバは、デバイス全体にバインドしてすべてのインタフェースを制御することも、1 つのインタフェースだけにバインドすることも可能です。デバイス全体にバインドするドライバがベンダーにもクラスにも存在しない場合、汎用 USB マルチインタフェースドライバがデバイスレベルのノードにバインドされます。IEEE 1275 バインド仕様の 3.2.2.1 項で定義されているように、このドライバは互換名プロパティーを使用して、各インタフェースに対してドライバのバインドを試みます。

Solaris USB アーキテクチャー (USBA) は、USB 1.1 および USB 2.0 の仕様に準拠しており、Solaris デバイスドライバインタフェース (DDI) の一部です。USBA モデルは Sun Common SCSI Architecture (SCSA) に似ています。次の図が示すように、USBA は、汎用 USB トランスポート層という概念をクライアントドライバに提供する薄い層で、汎用 USB の主要な機能を実装するサービスをクライアントドライバに提供します。

図 7–2 Solaris USB アーキテクチャー (USBA)

この図は、クライアントドライバ、USBA フレームワーク、ホストコントローラドライバ、およびデバイスバス間の関係を示しています。