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

第7章 USB デバイスの使用 (概要)

この章では、Solaris 環境における USB (Universal Serial Bus) デバイスの概要を説明します。

この章の内容は次のとおりです。

Solaris 環境における USB デバイスの使用手順については、第8章「USB デバイスの使用 (手順)」を参照してください。

動的再構成およびホットプラグについての一般的な情報については、第6章「デバイスの動的構成 (手順)」を参照してください。

USB プリンタを構成する方法については、『Solaris のシステム管理 (上級編)』「印刷の新機能」を参照してください。

USB デバイスの新機能

ここでは、この Solaris リリースで拡張された USB デバイスの機能について説明します。

USB 二重フレームワーク

Solaris 9 12/03 リリースで導入された USBA フレームワークは、USB 1.1 デバイス用に開発されたものです。USBA 1.0 と呼ばれる新しいフレームワークは、USB 2.0 デバイスの高度な要件を満たすために開発されました。このフレームワークでは、USB 1.1 デバイスも使用できます。この Solaris リリースは、「二重フレームワーク」という機能で、両方のフレームワークに対応しています。 二重フレームワークは、従来のフレームワークから新しいフレームワークに簡単に移行するための機能です。従来の USBA フレームワークは、システムの USB 1.1 ポートに接続されたデバイスに対応し、新しい USBA 1.0 フレームワークは、システムの USB 2.0 ポートに接続されたデバイスに対応しています。Sun のマザーボードのポートはすべて USB 1.1 ポートですが、ほとんどの PCI カードのポートは USB 2.0 に対応しています。

USB 二重フレームワークの詳細については、http://www.sun.com/desktop/whitepapers.html を参照してください。

USB フレームワークの互換性に関する問題

一方の USB フレームワーク用に作成されたドライバは、もう一方の USB フレームワークでは機能しません。Sun が提供している USB ドライバのほとんどには、それぞれのフレームワークに対応するバージョンがあります。

USB デバイスをポートに接続しようとすると、互換性の問題が発生することがあります。この問題は、ドライバがフレームワークと互換性がないために、そのデバイス用のドライバをフレームワークが認識しないために発生します。フレームワークが接続しようとしたドライバがそのフレームワークと互換性のないドライバである場合には、次のようなメッセージがコンソールに表示されます。


The driver for device binding name is not for USBA1.0

このメッセージは、Sun 以外のドライバ用のデバイスが USBA 1.0 フレームワークと互換性があり、そのデバイスが従来の USBA フレームワークがサポートしているポートに接続されている場合などに表示されます。USBA 1.0 フレームワークはそのデバイスを認識して適切なドライバに関連付けようとしますが、接続先のフレームワークと互換性がないためにそのドライバは拒否されます。

USB フレームワークの構成を確認する方法については、「USB デバイス情報を表示する方法 (prtconf)」を参照してください。

Solaris がサポートしている USB デバイス

次の表に、Solaris がサポートしている USB 1.1 デバイスおよび USB 2.0 デバイスを示します。

 

Solaris 8 HW* リリース 

Solaris 9 リリース 

USB 1.1

SPARC と x86 

SPARC と x86 

USB 1.1 オーディオデバイス 

USB 2.0 ハブではサポートされない 

USB 2.0 ハブではサポートされない 

USB 2.0

SPARC 

SPARC と x86 (Solaris 9 4/04) 

USB 2.0 オーディオデバイス 

サポートされない 

サポートされない 

USB 2.0 ストレージデバイス 

USB 2.0 ハブでサポートされる 

USB 2.0 ハブでサポートされる (Solaris 9 4/04) 

*Solaris 8 リリースではなく、Solaris 8 HW 5/03 以降の Solaris 8 HW リリースです。Solaris 8 HW 5/03 リリースの USB 二重フレームワークのパッチ番号は、109896 です。


Solaris 9 9/04 リリースでのみ、USB 2.0 ポートに接続されている USB 2.0 ハブ上で USB 1.1 デバイスが動作します。


次の表は、Sun SPARC ハードウェアがサポートしている USB の一覧です。

システムの種類 

Solaris リリース 

サポートしている USB デバイスと速度 

Sun Blade 100、150、1000、および 2000 

Solaris 9 4/04 リリースより前の Solaris 9 リリース、および Solaris HW 5/03 リリースより前の Solaris 8 リリース 

12 MB/秒のすべての USB デバイス 

Sun Blade 100、150、1000、および 2000 

Solaris 9 4/04、および Solaris 8 HW 5/03 

USB 1.1 デバイス、12 MB/秒 (任意の USB ポートに接続した場合) 

USB 2.0 デバイス、12 MB/秒 (マザーボードのポートに接続した場合) 

USB 2.0 デバイス、480 MB/秒 (拡張 PCI USB 2.0 カードのポートに接続した場合)  

Sun Blade 1500 および 2500 

Solaris 9 4/04 および Solaris 8 HW 5/03 

USB 1.1 デバイス、12 MB/秒 (任意の USB ポートに接続した場合) 

USB 2.0 デバイス、12 MB/秒 (マザーボードのポートに接続した場合) 

USB 2.0 デバイス、480 MB/秒 (PCI コンボカードのポートに接続した場合) 

その他の Sun SPARC PCI プラットフォーム 

Solaris 9 4/04 および Solaris 8 HW 5/03 

USB 1.1 デバイス、12 MB/秒  

USB 2.0 デバイス、480 MB/秒 (拡張 PCI USB 2.0 カードのポートに接続した場合)  

Solaris リリースで検証済みの PCI カードについては、次のサイトを参照してください。http://www.sun.com/io_technologies/usb.html

USB デバイスをサポートする Sun のプラットフォームは、次のとおりです。

USB サポートの追加情報については、「USB デバイスの概要」を参照してください。

SPARC: USB 2.0 の機能

この Solaris リリースでは、次の USB 2.0 機能がサポートされます。

USB デバイスおよび USB 用語については、「USB デバイスの概要」を参照してください。

USB 2.0 デバイスの機能および互換性の問題

USB 2.0 デバイスは、USB 2.0 仕様に準拠した高速デバイスです。USB 2.0 仕様については、 http://www.usb.org を参照してください。

この Solaris リリースの SPARC システムおよび x86 システムでは、たとえば、次の USB デバイスがサポートされます。

この Solaris リリースで検証済みの USB デバイスをすべて確認するには、以下のサイトを参照してください。

http://www.sun.com/io_technologies/usb.html

それ以外のストレージデバイスでも、scsa2usb.conf ファイルを変更すれば使用できることがあります。詳細については、scsa2usb(7D) のマニュアルページを参照してください。

Solaris USB 2.0 デバイスでは、次の機能がサポートされます。

USB 2.0 デバイスのサポートの詳細については、ehci(7D) および usba(7D) のマニュアルページを参照してください。

USB 2.0 ケーブル

バス電源供給方式のデバイス

バス電源供給方式のハブは、接続先の USB バスの電源を利用して、接続されているデバイスに電源を供給します。これらのハブの負荷が大きくなりすぎないように、十分に注意してください。これらのハブから接続先のデバイスに供給できる電源は限られているためです。

USB 大容量ストレージデバイス

この Solaris リリースでは、すべての USB ストレージデバイスがリムーバブルメディアデバイスとしてアクセスされます。この変更には、次のような利点があります。

USB 大容量ストレージデバイスの使用方法の詳細については、scsa2usb(7D) のマニュアルページを参照してください。

USB 大容量ストレージデバイスの問題の障害追跡

USB 大容量ストレージデバイスを追加または削除するときに問題が発生した場合は、次のヒントを参考にしてください。

SPARC: USB ドライバの機能拡張

この節では、この Solaris リリースで拡張された USB ドライバの機能について説明します。

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

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

システムに USB 2.0 および USB 1.x デバイスが実装されている場合には、EHCI ドライバおよび OHCI ドライバは、システムに接続されているデバイスの種類に応じてデバイス制御を渡します。

USB デバイスの概要

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

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

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

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

USB デバイス 

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

オーディオデバイス上の HID コントロール 

SPARC および x86 システム 

ハブ 

SPARC および x86 システム 

キーボードとマウス 

SPARC および x86 システム 

大容量ストレージ 

SPARC および x86 システム 

サポートされる構成では、キーボードとマウスは 1 つずつしか含めることができない。これらのデバイスは、オンボードの USB ホストコントローラに接続する必要がある  

プリンタ 

SPARC および x86 システム 

スピーカおよびマイク 

SPARC および x86 システム 

USB シリアルコンバータ 

SPARC システム 

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

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

略語 

定義 

ugen 

USB 汎用ドライバ 

USB 

Universal Serial Bus 

USBA 

USB アーキテクチャ (Solaris) 

USBAI 

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

HCD 

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

EHCI 

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

OHCI 

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

UHCI 

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

USB バスの説明

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

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

図 71 USB 物理デバイスの階層

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

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

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

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

Zip ドライブ

/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 つのドライバが割り当てられます (フレームワークごとに 1 つ)。1 つのクラス内のデバイスは、同じデバイスドライバの組み合わせで管理されます。ただし、USB 仕様では、特定のクラスに属さないベンダー固有のデバイスも許可しています。

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

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 ドライバ条件にも準拠しています。USBA モデルは Sun Common SCSI Architecture (SCSA) に似ています。USBA は、汎用 USB トランスポート層という概念をクライアントドライバに提供する薄い層で、汎用 USB の主要な機能を実装するサービスをクライアントドライバに提供します。

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

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

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

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

USB キーボードとマウス

サポートされているのは、Sun USB キーボードとマウスデバイスだけです。また、複数の USB キーボードとマウスデバイスを含むシステム構成は場合によっては機能しますが、Solaris 環境ではサポートされていません。詳細については、次の説明を参照してください。

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

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

USB ホストコントローラは「ルートハブ」という埋め込みハブを持っています。 システムの背面パネルに見えるポートはルートハブのポートです。USB ホストコントローラは次のことを行います。

USB ハブデバイス

SPARC: USB 電源管理

SPARC システムでは、USB デバイスの保存停止および復元再開機能が完全にサポートされます。ただし、稼動中のデバイスを保存停止したり、システムの保存停止で電源がオフになっているときにデバイスを取り外すことは決してしないでください。

SPARC システムで電源管理を有効にしている場合、USB のフレームワークはすべてのデバイスの電源管理を最大限に試みます。USB デバイスの電源管理により、ハブドライバはデバイスが接続されているポートの中断も行います。「リモートウェイクアップ」をサポートするデバイスは、そのデバイスが利用可能な状態になるように、そのデバイスのパス上にあるすべてのデバイスを呼び起こすようシステムに通知できます。 アプリケーションがデバイスに入出力を送信した場合も、ホストシステムはデバイスを呼び起こすことができます。

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

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

USB ケーブルに関するガイドライン

USB ケーブルを接続する際には、以下のガイドラインに従ってください。

詳細については、http://www.usb.org/channel/training/warning を参照してください。