次の節では、Solaris 環境における USB について知っておくべきことを説明します。
Solaris 環境では複数の USB キーボードとマウスをサポートしていないため、USB キーボードとマウスは常に 1 つだけシステムに接続するようにしてください。次の項目の説明も参照してください。
コンソールキーボードとマウスは複数のハブ経由で接続してはなりません。複数のハブを経由すると、キーボードとマウスが適時に正しく認識されず、コンソールキーボードとマウスとして構成されません。
コンソールキーボードとマウスは、システムのリブート後は、いつでも取り外してルートハブの別のポートや外部ハブに移動できます。しかし、リブート中や ok プロンプトが出ている間は移動できません。キーボードをプラグインした後は、キーボードとマウスは再び完全に機能します。
SPARC のみ - USB キーボードの電源キーと Sun タイプ 5 キーボードの電源キーの動作は異なります。USB キーボードでは、電源キーでシステムを中断またはシャットダウンすることができますが、システムの電源を入れることはできません。
Sun 社製以外の USB キーボードでは、キーパッドの左側にある機能は使用できません。
複数のキーボードはサポートされません。
キーボードは認識され、使用できますが、コンソールキーボードとしては認識されません。
ブート時に最初に認識されたキーボードがコンソールキーボードとなります。このため、ブート時に複数のキーボードがプラグインされていると混乱の原因となります。
コンソールキーボードを取り外した場合、次に利用可能な USB キーボードがコンソールキーボードにはなりません。次にホットプラグされるキーボードがコンソールキーボードになります。
複数のマウスはサポートされません。
マウスは認識され、使用できますが、コンソールマウスとしては認識されません。
ブート時に最初に認識されたマウスがコンソールマウスとなります。このため、ブート時に複数のマウスがプラグインされていると混乱の原因となります。
コンソールマウスを取り外した場合、次に利用可能な USB マウスがコンソールマウスにはなりません。次にホットプラグされるマウスがコンソールマウスになります。
Sun 社製以外の合成キーボードを PS/2 マウスと使用する場合、このキーボードがブート時に最初に認識されると、PS/2 マウスがプラグインされていなくても、このキーボードとマウスがコンソールキーボードとマウスになります。つまり、別の USB マウスがシステムにプラグインされていても、コンソールマウスとして構成されないので機能しません。
2 ボタンと 3 ボタンのマウスだけがサポートされます。ホイール付きマウスは 1 ボタンのマウスのように動作します。3 ボタンよりも多いマウスは 3 ボタンのマウスのように動作します。
USB ハブは次のことを行います。
ポートにおけるデバイスの取り付けと取り外しのモニタ
ポートにおける個々のデバイスの電源管理
ポートへの電源の制御
USB ホストコントローラはルートハブという埋め込みハブを持っています。背面パネルに見えるポートはルートハブのポートです。USB ホストコントローラは次のことを行います。
USB バスの指示。個々のデバイスはバスの調整はできません。
デバイスによって決定されるポーリング間隔による、デバイスのポーリング。デバイスはポーリング間隔 (時間) の考慮に十分なバッファを持っていると想定されます。
USB ホストコントローラとそれに接続されているデバイス間でのデータの送信。ピアツーピア通信はサポートされません。
SPARC と IA のどちらのシステムにおいても、ハブを 4 段を超えて多段接続してはなりません。SPARC システムでは、Open Boot PROM (OBP) は 4 段を超えるデバイスを正確に認識できません。
バス電源供給方式のハブは多段接続してはなりません。つまり、バス電源供給方式のハブを別のバス電源供給方式のハブに接続してはなりません。バス電源供給方式のハブは独自の電源を持っていません。USB フロッピーディスクデバイスはすべての電源をバスから取り入れるため、バス電源供給方式のハブ上では機能しません。
Solaris 8 10/00 リリースでは、USB の Zip、Jaz、Clik、SmartMedia、CompactFlash、および ORB のリムーバブル大容量ストレージデバイスをサポートします。Solaris 環境でサポートされるデバイスの完全なリストについては、scsa2usb(7D) のマニュアルページを参照してください。
これらのデバイスは、ボリューム管理を使用しても使用しなくても管理することができます。ボリューム管理を実行している状態でのデバイス管理についての情報は、vold(1M) のマニュアルページを参照してください。
Solaris 共通デスクトップ環境 (CDE) が実行されている場合は、USB リムーバブル大容量ストレージデバイスは、CDE ファイルマネージャのコンポーネントであるリムーバブルメディア・マネージャによって管理されます。CDE ファイルマネージャについての詳細は、dtfile(1) のマニュアルページを参照してください。
この節に記載されているマニュアルページを表示するには、MANPATH 変数に /usr/dt/man を含める必要があります。これらのコマンドを使用するには、パスに /usr/dt/bin を含め、さらに CDE を実行している必要があります。また、これらのコマンドをリモートで使用する場合は、DISPLAY 変数を設定する必要があります。
次の表に、リムーバブルメディア・マネージャが CDE 環境からストレージデバイスを管理する際に使用するコマンドを示します。
リムーバブルメディア・マネージャが使用するコマンド |
実行内容 |
---|---|
sdtmedia_format(1) |
USB デバイスのフォーマットおよびラベル付けを行う |
sdtmedia_prop(1) |
デバイスのプロパティを表示する |
sdtmedia_prot(1) |
デバイスのアクセス権を変更する |
sdtmedia_slice(1) |
デバイス上のスライスを作成または変更する |
USB デバイスのフォーマットが終了すると、通常は /rmdisk/label ディレクトリの下にマウントされます。リムーバブルストレージデバイスの構成についての詳細は、rmmount.conf(4) または vold.conf(4) のマニュアルページを参照してください。
以下の手順は、ボリューム管理を実行している状態で USB 大容量ストレージデバイスを管理する方法を示しています。デバイスノードは /vol/dev ディレクトリの下に作成されます。詳細は、scsa2usb(7D) のマニュアルページを参照してください。以下の手順では、ホットプラグ可能な USB 大容量ストレージデバイスを追加および取り外す方法についても記載しています。デバイスのホットプラグとは、オペレーティングシステムをシャットダウンすることなくあるいはシステムの電源を切ることなく、デバイスを追加したり取り外したりすることを指します。
すべてのリムーバブル大容量ストレージデバイス (USB 大容量ストレージデバイスを含む) について、デバイスの別名を表示します。
$ eject -n . . . rmdisk0 -> /vol/dev/rdsk/c4t0d0/clik40 (Generic USB storage) cdrom0 -> /vol/dev/rdsk/c0t6d0/audio_cd (Generic CD device) zip1 -> /vol/dev/rdsk/c2t0d0/fat32 (USB Zip device) zip0 -> /vol/dev/rdsk/c1t0d0/zip100 (USB Zip device) jaz0 -> /vol/dev/rdsk/c3t0d0/jaz1gb (USB Jaz device) |
上記のようにリストされたデバイス別名を使用して、USB 大容量ストレージデバイスをマウントします。
$ volrmmount -i device-alias |
次の例では、USB Jaz ドライブを /rmdisk/jaz0 の下にマウントします。
$ volrmmount -i jaz0 |
USB ストレージデバイスをマウント解除します。
$ volrmmount -e device-alias |
次の例では、USB Zip ドライブを /rmdisk/zip0 からマウント解除します。
$ volrmmount -e zip0 |
USB デバイスを、汎用の USB ドライブから取り出します。
$ eject device-alias |
次に例を示します。
$ eject rmdisk0 |
eject コマンドは、デバイスがまだマウント解除されていない場合は、そのデバイスのマウント解除も行います。また、eject コマンドは、そのデバイスにアクセスしているアクティブなアプリケーションがある場合は、それらを終了させます。
以下の手順では、vold の実行中にホットプラグ可能な USB デバイスを取り外す例として、Zip ドライブを使用しています。
デバイスをマウント解除します。
$ volrmmount -e zip0 |
そのデバイスを使用しているアクティブなアプリケーションがある場合は、それらを終了させます。
デバイスを取り出します。
$ eject zip0 |
スーパーユーザーになり、vold を停止します。
# /etc/init.d/volmgt stop |
USB 大容量ストレージデバイスを取り外します。
vold を開始します。
# /etc/init.d/volmgt start |
以下の手順は、vold の実行中にホットプラグ可能な USB デバイスを追加する方法を示します。
vold を停止します。
# /etc/init.d/volmgt stop |
USB 大容量ストレージデバイスを追加します。
vold を開始します。
# /etc/init.d/volmgt start |
デバイスが追加されたことを確認します。
$ ls device-alias |
USB 大容量ストレージデバイスは、ボリュームマネージャ (vold) を使用せずに管理することもできます。ボリュームマネージャを使用しないようにする方法は、次の 2 とおりあります。
次のコマンド実行して、vold を停止させます。
# /etc/init.d/volmgt stop |
vold は実行した状態にしておきますが、USB 大容量ストレージデバイスを vold に登録しないようにします。/etc/vold.conf ファイル内の次の行でテキストの初めに # マークを挿入し、コメント扱いにします。
# use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d |
上記のようにコメント扱いにした後、vold(1M) を再度開始します。
# pkill -HUP vold_pid |
詳細は、vold.conf(4) のマニュアルページを参照してください。
以下の手順は、vold(1M) を使用せずに USB 大容量ストレージデバイスを管理する方法を示しています。デバイスノードは、文字型デバイスについては /dev/rdsk ディレクトリ、ブロック型デバイスについては /dev/dsk ディレクトリの下に作成されます。詳細は、scsa2usb(7D) のマニュアルページを参照してください。
スーパーユーザーになります。
USB 大容量ストレージデバイスをマウントします。
# mount -F fs-type /dev/rdsk/cntndnsn /mount-point |
USB 大容量ストレージデバイスをマウント解除します。
# umount /mount-point |
デバイスを取り出します。
# eject /dev/[r]dsk/cntndnsn |
以下の手順は、vold を使用せずにホットプラグ可能な USB デバイスを取り外す方法を示しています。
以下の手順は、vold を使用せずにホットプラグ可能な USB デバイスを追加する方法を示しています。
システムが電源管理を有効にしている場合、USB のフレームワークはすべてのデバイスを電源管理しようと最大限に努力します。USB デバイスの電源管理には、デバイスが接続されているポートのハブドライバによる中断も含まれます。リモートウェイクアップ (呼び起こし) をサポートするかしないかは、デバイスによって異なります。デバイスがリモートウェイクアップをサポートしている場合は、イベントの発生時 (たとえば、マウスが移動したときなど) に、接続されているハブをウェイクアップします。アプリケーションが入出力を送信した場合も、ホストシステムはデバイスをウェイクアップできます。
リモートウェイクアップ機能がサポートされている場合、すべての HID (キーボードやマウスなど)、ハブ、およびストレージデバイスは、デフォルトで電源管理されます。USB プリンタが電源管理されるのは、2 つの印刷ジョブ間だけです。
電源管理で電源消費を抑えるときは、まず、USB リーフデバイスの電源が切断され、しばらくしてから、親ハブの電源が切断されます。当該ハブのポートに接続されているすべてのデバイスの電源が切断されると、しばらくしてから、ハブの電源が切断されます。最も効率的な電源管理は、あまり多くのハブを多段接続しないことです。
USB デバイスは、プラグインするとすぐにシステムのデバイス階層に表示されます(prtconf(1M) コマンドで確認)。また、デバイスが使用中でない限り、USB デバイスを取り外すとシステムのデバイス階層から消えます。
使用中の USB デバイスを取り外した場合、ホットプラグの動作は少しだけ異なります。使用中の USB デバイスを取り外した場合、デバイスノードは残り、このデバイスを制御しているドライバはデバイス上のすべての動作を停止します。それ以降、このデバイスに発行される新しい入出力動作はエラーで戻されます。
このような場合、システムは元のデバイスを接続するようにユーザーにプロンプトを表示します。間違って使用中の USB デバイスを取り外してしまった場合は、次のようにして回復します。
元のデバイスを同じポートに接続します。
そのデバイスを使用しているアプリケーションを停止します。
デバイスを取り外します。
元のデバイスが再びプラグインされるまで、USB ポートは使用できません。デバイスが使用できない場合は、USB ポートは次にリブートするまで使用できません。
アクティブな、つまり開いているデバイスを削除すると、データの整合性が損なわれる可能性があります。デバイスを取り外す前には、必ず、デバイスを閉じるようにしてください。ただし、コンソールキーボードとマウスは例外で、アクティブなときでも移動することができます。
市販されている USB ケーブルエクステンダは絶対に使用しないでください。デバイスを接続するときは、必ず、ハブと充分な長さのあるケーブルを使用してください。USB デバイスを接続するときは、必ず、フルレイト (12M ビット/秒) の 20/28 AWG ケーブルを使用してください。