USB の管理

第 1 章 USB デバイス (概要)

この章では、Solaris 環境で USB デバイスを管理する方法の概要を説明します。

この章で説明する内容は、次のとおりです。

Solaris 環境でのデバイス管理に関する全般的な情報は、『Solaris のシステム管理 (第 1 巻)』の「デバイスの管理 (概要)」を参照してください。

USB デバイスの概要

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

USB コネクタは 1 方向 1 種類のケーブルだけに適合するように設計されています。デバイスはハブデバイスに接続できます。ハブデバイスは、他のハブデバイスを含めて複数のデバイスを接続します。USB が設計された主な目的は、デバイスごとに異なる何種類ものコネクタを減らして、システムの背面パネルをより整理された状態にすることです。他にも、USB デバイスを使用すると次のような利点があります。

Sun は USB デバイスを次のようにサポートしています。

次の表に、Solaris 環境でサポートされる USB デバイスを示します。

USB デバイス 

USB デバイスがサポートされるシステム 

キーボードとマウス 

ohci(7D) コントローラに基づいた Sun の USB がサポートされている SPARC システム

uhci(7D) コントローラに基づいた USB バスを持つ IA システム

オンボードの USB コントローラだけがサポートされる。プラグイン式のホストコントローラ PCI カードはサポートされない。 

大容量ストレージ 

SPARC と IA 

プリンタ 

SPARC と IA 

ハブ 

SPARC と IA 

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

次の表に、Solaris 環境で使用される USB の略語について説明します。USB の構成要素と略語についての詳細は、http://www.usb.org を参照してください。

略語 

定義 

USB 

Universal Serial Bus 

USBA 

Universal Serial Bus Architecture (Solaris) 

USBAI 

USBA Client Driver Interface (Solaris) 

HCD 

USB host controller driver 

USB バスの説明

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

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

Graphic

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

上記の例では、1 つのシステムに 3 つの有効な USB ポートが 3 つあります。1 番目の USB ポートは Zip ドライブに接続されています。この Zip ドライブにはハブが組み込まれていないため、他のデバイスは接続できません。2 番目の USB ポートはハブに接続されており、このハブには Jaz ドライブと、キーボードとマウスの合成デバイス が接続されています。2 番目のハブのポートの 1 つには、組み込みハブを 1 つ持つキーボードが接続されており、そのハブにマウスが接続されています。

次の表に、上記の例に示したデバイスの一部について、デバイスツリーパス名を示します。

Zip ドライブ 

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

キーボード 

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

マウス 

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

Jaz ドライブ 

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

プリンタ 

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

USB デバイスとドライバ

USB デバイスは複数のデバイスクラスに分類されます。各デバイスクラスには対応するドライバがあります。1 つのクラス内のデバイスは、同じデバイスドライバで管理されます。ただし USB 仕様では、特定のクラスに属さない、ベンダー固有のデバイスも許可しています。類似した属性とサービスを持つデバイスはグループ化されます。

HID (Human Interface Device) クラスには、ユーザーが制御するデバイス (キーボード、マウス、ジョイスティックなど) が含まれます。Communication Device クラスには、電話に接続するデバイス (モデムや ISDN インタフェースなど) が含まれます。その他にも、Audio Device、Monitor Device、Printer Device、Storage Device などのデバイスクラスがあります。各 USB デバイスはデバイスのクラスを表す記述子を持っています。デバイスクラスは、そのメンバーが構成とデータ転送についてどのように動作するかを指定します。クラス情報についての詳細は、http://www.usb.org サイトを参照してください。

Solaris USB Architecture (USBA)

USB デバイスは、2 つのレベルのデバイスツリーノードとして表現されます。1 つのデバイスノードは USB デバイス全体を表し、1 つまたは複数の子インタフェースノードはデバイス上にある個々の USB インタフェースを表します。特殊なケースとして、デバイスノードとインタフェースノードが 1 つのノードに結合される場合もあります。

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

図 1–1 に、ハブとプリンタの複合デバイスの例を示します。ハブとプリンタは両方とも同じプラスチック製のケースに入っていますが、異なる USB バスアドレスを持ちます。また、図 1–1 に、合成デバイスの例を示します。キーボードとコントローラは同じプラスチック製のケースに入っていますが、同じ USB バスアドレスを持ちます。この例では、1 本のケーブルが USB マウスをキーボードとコントローラの合成デバイス に接続しています。

Solaris USB Architecture (USBA) は、USB 1.0 および 1.1 の仕様に加え、Solaris ドライバ条件に準拠しています。USBA モデルは Sun Common SCSI Architecture (SCSA) に似ています。USBA とは、汎用 USB トランスポート層という概念をクライアントドライバに提供する薄い層のことです。

SCSA と USBA の違いは、SCSA がバスを検査するときに .conf ファイルを使用するのに対して、USB ハブドライバは自己検査ネクサスドライバであることです。

Solaris 環境における USB について

次の節では、Solaris 環境における USB について知っておく必要のある情報を説明します。

USB キーボードとマウス

Solaris 環境では複数の USB キーボードとマウスをサポートしていないため、USB キーボードとマウスは常に 1 つだけシステムに接続するようにしてください。詳細は、次の説明を参照してください。

USB ホストコントローラとルートハブ

USB ハブは次のことを行います。

USB ホストコントローラにはルートハブという組み込みハブがあります。背面パネルに見えるポートはルートハブのポートです。USB ホストコントローラは次のことを行います。

USB ハブデバイス

USB ストレージデバイス

Solaris 8 10/00 リリースから、USB の Zip、Jaz、Clik!、SmartMedia、CompactFlash、および ORB などのリムーバブル大容量ストレージデバイスがサポートされるようになりました。Solaris 環境でサポートされるデバイスの完全なリストについては、scsa2usb(7D) のマニュアルページを参照してください。

これらのデバイスは、ボリューム管理を使用してもしなくても管理することができます。ボリューム管理を実行している状態でのデバイス管理についての情報は、 vold(1M) のマニュアルページを参照してください。

SPARC のみ: USB 電源管理

システムが電源管理を有効にしている場合、USB のフレームワークはすべてのデバイスの電源管理を最大限に試みます。USB デバイスの電源管理により、ハブドライバはデバイスが接続されているポートの中断も行います。リモートウェイクアップ (呼び起こし) をサポートするかしないかは、デバイスによって異なります。デバイスがリモートウェイクアップをサポートしている場合は、イベントの発生時 (たとえばマウスが移動したときなど) に、接続されているハブを呼び起こします。アプリケーションが入出力を送信した場合も、ホストシステムはデバイスを呼び起こすことができます。

リモートウェイクアップ機能がサポートされている場合、すべての HID (キーボードやマウスなど)、ハブ、およびストレージデバイスは、デフォルトで電源管理されます。USB プリンタが電源管理されるのは、2 つの印刷ジョブ間だけです。

電源消費を削減するために電源管理を行う場合、まず、USB 末端デバイスの電源が切断され、しばらくしてから親ハブの電源が切断されます。また、ポートに接続されているすべてのデバイスの電源が切断されると、しばらくしてからハブの電源が切断されます。最も効率的に電源管理をするためには、あまり多くのハブを多段接続しないでください。

USB デバイスのホットプラグ

USB デバイスは、プラグインするとすぐにシステムのデバイス階層に表示されます (prtconf(1M) コマンドで確認できます)。また、デバイスが使用中でない限り、USB デバイスを取り外すとシステムのデバイス階層から消えます。

使用中の USB デバイスを取り外した場合、ホットプラグの動作は若干異なります。使用中の USB デバイスを取り外した場合、デバイスノードは残り、このデバイスを制御しているドライバはデバイス上のすべての動作を停止します。それ以降、このデバイスに発行される新しい入出力動作はエラーで戻されます。

このような場合、システムは元のデバイスを接続するようにプロンプトを表示します。使用中の USB デバイスを誤って取り外してしまった場合は、次のようにして回復します。

  1. 元のデバイスを同じポートに接続します。

  2. そのデバイスを使用しているアプリケーションを停止します。

  3. デバイスを取り外します。

元のデバイスが再びプラグインされるまで、USB ポートは使用できません。デバイスが使用できない場合は、USB ポートは次にリブートするまで使用できません。


注 –

動作中の、つまり開いているデバイスを削除すると、データの整合性が損なわれる可能性があります。デバイスを取り外す前には、必ずデバイスを閉じるようにしてください。ただし、コンソールキーボードとマウスは例外で、動作中でも移動することができます。


USB ケーブル

市販されている USB ケーブル延長機器は絶対に使用しないでください。デバイスを接続するときは、必ずハブと充分な長さのあるケーブルを使用してください。USB デバイスを接続するときは、必ずフルレイト (12M ビット/秒) の 20/28 AWG ケーブルを使用してください。

SPARC: USB プリンタのサポート

Solaris 8 10/00 リリースから、Solaris の印刷マネージャを使用して USB ポート付きの SPARC システムに接続されている USB プリンタを設定できます。Solaris 8 4/01 リリースから、IA システムにも USB プリンタを設定できるようになりました。

USB プリンタ用の新しい論理デバイス名は次のとおりです。


/dev/printers/N 

このため、USB プリンタをプリンタサーバーに追加するときは、「新しいローカルプリンタを設定」画面の「プリンタポート」で、上記デバイスの 1 つを USB プリンタ用に選択します。Solaris 印刷マネージャを使用してプリンタを設定する方法についての詳細は、『Solaris のシステム管理 (第 2 巻)』を参照してください。

新しい Solaris USB プリンタドライバは USB プリンタクラス準拠のプリンタをすべてサポートします。推奨される PostScriptTM プリンタについては、usbprn(7D) のマニュアルページを参照してください。

usbprn ドライバは、GhostScript など Sun 社製以外の PostScript 変換パッケージを使用する PostScript 以外のプリンタにも準拠しています。変換パッケージは Solaris 8 Software Companion CD から入手できます。Solaris 8 Software Companion CD の入手方法については、http://www.sun.com/software/solaris/binaries/package.html を参照してください。

USB プリンタのホットプラグに関する情報と注意事項については、usbprn(7D) のマニュアルページの「NOTES」と「DIAGNOSTICS」の節を参照してください。