デバイスのホットプラグとは、オペレーティングシステムをシャットダウンしたりシステムの電源を切ったりしないで、デバイスを追加したり取り外したりすることを指します。
USB デバイスは、ホットプラグするとすぐにシステムのデバイス階層に表示されます (prtconf コマンドで確認できます)。また、デバイスが使用中でない限り、USB デバイスを取り外すとシステムのデバイス階層から消えます。
使用中の USB デバイスを取り外した場合、ホットプラグの動作は若干異なります。使用中の USB デバイスを取り外した場合、デバイスノードは残り、このデバイスを制御しているドライバはデバイス上のすべての動作を停止します。それ以降、このデバイスに発行される新しい入出力動作はエラーで戻されます。
このような場合、システムは元のデバイスを接続するようにプロンプトを表示します。使用中の USB デバイスを誤って取り外してしまった場合は、次のようにして回復します。
元のデバイスを同じポートに接続します。
そのデバイスを使用しているアプリケーションを停止します。
デバイスを取り外します。
元のデバイスが再びプラグインされるまで、USB ポートは使用できません。デバイスが使用できない場合は、USB ポートは次にリブートするまで使用できません。
動作中の、つまり開いているデバイスを削除すると、データの整合性が損なわれる可能性があります。デバイスを取り外す前には、必ずデバイスを閉じるようにしてください。ただし、コンソールキーボードとマウスは例外で、動作中でも移動することができます。
次の手順は、vold を使用してホットプラグ可能な USB デバイスを追加する方法を示します。
次の手順は、vold を使用しないでホットプラグ可能な USB デバイスを追加する方法を示しています。
次の手順では、vold を使用してホットプラグ可能な USB デバイスを取り外す例として、Zip ドライブを使用しています。
デバイスをマウント解除します。
$ volrmmount -e zip0 |
そのデバイスを使用しているアプリケーションを実行中の場合は、そのアプリケーションを停止します。
デバイスを取り出します。
$ eject zip0 |
スーパーユーザーになり、vold を停止します。
# /etc/init.d/volmgt stop |
USB 大容量ストレージデバイスを取り外します。
vold を開始します。
# /etc/init.d/volmgt start |
次の手順は、vold を使用しないでホットプラグ可能な USB デバイスを取り外す方法を示しています。
Solaris 共通デスクトップ環境 (CDE) が動作している場合は、USB リムーバブル大容量ストレージデバイスは、CDE ファイルマネージャのコンポーネントであるリムーバブルメディア・マネージャによって管理されます。CDE ファイルマネージャについての詳細は、dtfile(1) のマニュアルページを参照してください。
この節に記載されているマニュアルページを表示するには、MANPATH 変数に /usr/dt/man ディレクトリを含める必要があります。これらのコマンドを使用するには、パスに /usr/dt/bin ディレクトリを含め、さらに CDE を実行している必要があります。また、これらのコマンドをリモートで使用する場合は、DISPLAY 変数を設定する必要があります。
次の表に、リムーバブルメディア・マネージャが CDE 環境からストレージデバイスを管理する際に使用するコマンドを示します。
コマンド |
マニュアルページ |
作業 |
---|---|---|
sdtmedia_format |
sdtmedia_format(1) |
デバイスのフォーマットおよびラベル付けを行う |
sdtmedia_prop |
sdtmedia_prop(1) |
デバイスのプロパティを表示する |
sdtmedia_prot |
sdtmedia_prot(1) |
デバイスのアクセス権を変更する |
sdtmedia_slice |
sdtmedia_slice(1) |
デバイス上のスライスを作成または変更する |
USB デバイスのフォーマットが終了すると、通常は /rmdisk/label ディレクトリの下にマウントされます。リムーバブルストレージデバイスの構成方法についての詳 細は、rmmount.conf(4) または vold.conf(4) のマニュアルページを参照してください。
デバイスノードは /vol/dev ディレクトリの下に作成されます。詳細については、scsa2usb(7D) のマニュアルページを参照してください。
USB 大容量ストレージデバイスは、ボリュームマネージャ (vold) を使用しないで管理することもできます。ボリュームマネージャを使用しないようにする方法は、次の 2 とおりあります。
次のコマンドを実行して、vold を停止します。
# /etc/init.d/volmgt stop |
vold を実行したままで、USB 大容量ストレージデバイスを vold に登録しないようにします。以下に示すように /etc/vold.conf ファイル内の次の行で # マークを挿入してコメント扱いにし、USB 大容量ストレージデバイスのボリュームマネージャの登録を削除します。
# use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d |
上記のようにコメントにした後、vold を再起動します。
# /etc/init.d/volmgt start |
この行をコメントにすると、そのシステム内に他の SCSI、ATAPI Zip、または Jaz リムーバブルデバイスがある場合、それらのデバイスの vold の登録も無効になります。
詳細については、vold.conf(4) を参照してください。
次の手順は、vold を使用しないで USB 大容量ストレージデバイスを管理する方法を示しています。デバイスノードは、文字型デバイスについては /dev/rdsk ディレクトリ、ブロック型デバイスについては /dev/dsk ディレクトリの下に作成されます。詳細については、scsa2usb(7D) を参照してください。
すべてのリムーバブル大容量ストレージデバイス (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 コマンドは、そのデバイスのマウント解除も行います。また、そのデバイスにアクセスするアプリケーションが実行されている場合は、そのアプリケーションを終了させます。
スーパーユーザーになります。
USB 大容量ストレージデバイスをマウントします。
# mount -F fs-type /dev/dsk/cntndnsn /mount-point |
このコマンドは、デバイスが読み取り専用の場合には失敗することがあります。CD-ROM デバイスには、次のコマンドを使用します。
# mount -F fs-type -o ro /dev/dsk/cntndnsn /mount-point |
たとえば、次のようになります。
# mount -F hsfs -o ro /dev/dsk/c0t6d0s2 /mnt |
USB 大容量ストレージデバイスをマウント解除します。
# umount /mount-point |
デバイスを取り出します。
# eject /dev/[r]dsk/cntndnsn |
スーパーユーザーになります。
USB カメラを差し込み、電源をオンにします。
USB サブシステムおよび SCSA サブシステムは、カメラ用に論理デバイスを作成します。カメラが差し込まれると、/var/adm/messages ファイルにメッセージが出力されます。
/var/adm/messages ファイルの出力を確認します。
出力表示を確認すると、どの論理デバイスが作成されたかを確認でき、そのデバイスを使用してイメージにアクセスできます。出力表示は次のようになります。
# more /var/adm/messages Jul 15 09:53:35 buffy usba: [ID 349649 kern.info] OLYMPUS, C-3040ZOOM, 000153719068 Jul 15 09:53:35 buffy genunix: [ID 936769 kern.info] scsa2usb1 is /pci@0,0/pci925,1234@7,2/storage@2 Jul 15 09:53:36 buffy scsi: [ID 193665 kern.info] sd3 at scsa2usb1: target 0 lun 0 |
USB カメラファイルシステムをマウントします。
ほとんどの場合、カメラのファイルシステムは PCFS ファイルシステムです。作成されたデバイス上にファイルシステムをマウントするために、ディスクを表すスライスを指定する必要があります。スライスは通常、SPARC システムでは s0、Intel システムでは p0 です。
たとえば、Intel システムにファイルシステムをマウントするには、次のコマンドを実行します。
# mount -F pcfs /dev/dsk/c3t0d0p0:c /mnt |
SPARC システムにファイルシステムをマウントするには、次のコマンドを実行します。
# mount -F pcfs /dev/dsk/c3t0d0s0:c /mnt |
ファイルシステムのマウントの詳細については、第 39 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。
異なる PCFS ファイルシステムのマウントの詳細については、mount_pcfs(1M) を参照してください。
イメージが使用可能であることを確認します。
たとえば、次のようになります。
# ls /mnt/DCIM/100OLYMP/ P7220001.JPG* P7220003.JPG* P7220005.JPG* P7220002.JPG* P7220004.JPG* P7220006.JPG* |
USB カメラが作成したイメージファイルを表示します。
# /usr/dt/bin/sdtimage & |
カメラを切り離す前に、ファイルシステムをマウント解除します。
たとえば、次のようになります。
# umount /mnt |
カメラの電源をオフにし、切り離します。