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

第8章 USB デバイスの使用 (手順)

この章では、Solaris 環境で USB デバイスを使用する手順について説明します。

USB デバイスの使用手順については、次の節を参照してください。

USB デバイスの使用に関する概要については、第7章「USB デバイスの使用 (概要)」を参照してください。

Solaris 環境での USB デバイスの管理 (作業マップ)

Solaris 環境でのすべての USB デバイス管理作業を次のマップに一覧表示します。作業ごとにいくつかの詳細タスク (USB デバイスの使用、USB デバイスのホットプラグ、USB オーディオデバイスの追加など) を説明しています。

作業 

説明 

参照先 

USB デバイスを使用する 

ファイルシステムを作成およびマウントする前に、USB デバイスをフォーマットする必要がある  

「USB 大容量ストレージデバイスの使用 (作業マップ)」

USB デバイスをホットプラグする 

USB デバイスをシステムに動的に追加し、システムから動的に取り外す 

 

 

USB デバイスを物理的にシステムに追加し、物理的にシステムから取り外すことができる 

「USB デバイスのホットプラグ (作業マップ)」

 

cfgadm コマンドを使用して、USB デバイスをシステムに物理的または論理的に追加し、システムから物理的または論理的に取り外す

cfgadm コマンドを使用した USB デバイスのホットプラグ (作業マップ)」

USB オーディオデバイスを追加する 

この作業マップを使用して、USB オーディオデバイスの追加に関連する作業を特定する 

「USB オーディオデバイスの使用 (作業マップ)」

USB 大容量ストレージデバイスの使用 (作業マップ)

作業 

説明 

参照先 

USB 大容量ストレージデバイスを使用できるように準備する 

vold を使用して USB 大容量ストレージデバイスを使用できるように準備する

vold を使用して USB 大容量ストレージデバイスを使用できるように準備する方法」

 

vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する

vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法」

USB デバイス情報を表示する 

prtconf コマンドを使用して USB デバイス情報を表示する

「USB デバイス情報を表示する方法 (prtconf)」

USB 大容量ストレージデバイスをフォーマットする 

USB 大容量ストレージデバイスをフォーマットして、データを格納できるようにする 

vold を使用しないで USB 大容量ストレージデバイスをフォーマットする方法」

USB 大容量ストレージデバイスをマウントする 

vold を使用して USB 大容量ストレージデバイスをマウントする

vold を使用して USB 大容量ストレージデバイスをマウントまたはマウント解除する方法」

 

vold を使用しないで USB 大容量ストレージデバイスをマウントする

vold を使用しないで USB 大容量ストレージデバイスをマウントまたはマウント解除する方法」

(省略可能) USB デバイスドライバを無効にする 

システムで USB サポートを必要としない場合は、USB デバイスドライバを無効にする  

 

(省略可能) 未使用の USB デバイスのリンクを削除する 

devfsadm コマンドを使って、未使用の USB デバイスのリンクを削除する

「使用されていない USB デバイスのリンクを削除する方法」

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


この Solaris リリースで USB 大容量ストレージデバイスを使用する場合の最新情報については、「USB 大容量ストレージデバイス」を参照してください。


Solaris 9 4/04 から、USB の CD-RW、ハードディスク、DVD、デジタルカメラ、Zip、Peerless、SmartMedia、CompactFlash、ORB、および USB フロッピーディスクデバイスなどのリムーバブル大容量ストレージデバイスがサポートされるようになりました。

Solaris 環境でサポートされるすべての USB デバイスを確認するには、http://www.sun.com/io_technologies/USB.html を参照してください。

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

USB フロッピーディスクデバイスの使用

USB フロッピーディスクデバイスは、ほかの USB デバイスと同様に、リムーバブルメディアデバイスとして表示されます。USB フロッピーディスクデバイスは、fd (フロッピー) ドライバでは管理されません。アプリケーションから fd (ネイティブフロッピー) ドライバに対する ioctl(2) 呼び出しを実行すると、そのアプリケーションは失敗します。read(2) および write(2) 呼び出しのみを実行するアプリケーションは成功します。SunPCI や rmformat などのアプリケーションも成功します。


現時点では、CDE のファイルマネージャは USB フロッピーディスクを完全にはサポートしていません。ただし、UFS ファイルシステムを含むフロッピーディスクは、ファイルマネージャのリムーバブルメディアマネージャから開いたり、名前を変更したり、フォーマットしたりすることはできます。PCFS ファイルシステムを含むフロッピーディスクを開くには、リムーバブルメディアマネージャを使用する必要があります。フロッピーディスクがいずれかの種類のファイルシステムを含む場合には、フロッピーディスクとファイルマネージャ間でファイルをドラッグ&ドロップできます。


ボリューム管理 (vold) では、USB フロッピーディスクデバイスは SCSI リムーバブルメディアデバイスとして認識されます。ボリューム管理を使用して、/rmdisk ディレクトリのUSB フロッピーディスクデバイスにアクセスできます。

USB フロッピーディスクデバイスの使用方法の詳細については、第1章「リムーバブルメディアの管理 (概要)」を参照してください。

非準拠 USB 大容量ストレージデバイスの使用

デバイスの識別が間違っていたり、USB 大容量ストレージクラスと互換性がないとされているドライバでも、USB 大容量ストレージドライバをサポートする場合があります。scsa2usb.conf ファイルには、大容量デバイスに対応するかどうかを示す、ベンダー ID、製品 ID、およびバージョンを一覧表示した属性オーバーライドリストが含まれています。またデフォルトのデバイス属性をオーバーライドするフィールドも含まれています。このリストのエントリにはデフォルトでコメントが表示されています。特定のデバイスのサポートを有効にするために、コメントをコピーしたり削除したりすることもできます。

この Solaris リリースで動作するシステムに USB 大容量ストレージデバイスを接続したが、システムでそのデバイスを使用できない場合、/kernel/drv/scsa2usb.conf ファイルでこのデバイスに一致するコメントエントリがあるかどうか確認できます。scsa2usb.conf ファイルの指示に従って、オーバーライド情報を使用して、特定のデバイスをサポートできるかどうか確認してください。推奨される USB 大容量ストレージデバイスについては、http://www.sun.com/io_technologies/USB.html を参照してください。

詳細については、scsa2usb(7D) のマニュアルページを参照してください。

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) のマニュアルページを参照してください。

次の手順は、vold を使用しないで USB 大容量ストレージデバイスを管理する方法を示しています。デバイスノードは、文字型デバイスについては /dev/rdsk ディレクトリ、ブロック型デバイスについては /dev/dsk ディレクトリの下に作成されます。デバイスリンクは、デバイスをホットプラグしたときに作成されます。詳細については、scsa2usb(7D) のマニュアルページを参照してください。

Procedurevold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法

USB 大容量ストレージデバイスは、ボリューム管理 (vold) を使用しないで準備することもできます。次のコマンドを実行して vold を停止します。


# /etc/init.d/volmgt stop

または、次の手順を実行して、vold を実行します。この場合、USB 大容量ストレージデバイスは vold には登録されません。

手順
  1. スーパーユーザーになります。

  2. 以下に示すように /etc/vold.conf ファイル内の次の行で # マークを挿入してコメント扱いにし、USB 大容量ストレージデバイスのボリュームマネージャの登録を削除します。


    # use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d
  3. 上記のようにコメントアウトした後、vold を再起動します。


    # /etc/init.d/volmgt start 
    

    注意  注意

    この行をコメントにすると、そのシステム内に他の SCSI、ATAPI Zip、Peerless などのリムーバブルデバイスがある場合、それらのデバイスの vold の登録も無効になります。


    詳細については、vold.conf(4) のマニュアルページを参照してください。

USB デバイス情報を表示する方法 (prtconf)

prtconf コマンドを使用して USB デバイス情報を表示します。


$ prtconf
        usb, instance #0
                 hub, instance #2
                     device, instance #8
                         interface (driver not attached)
                     printer (driver not attached)
                     mouse, instance #14
                     device, instance #9
                         keyboard, instance #15
                         mouse, instance #16
                     storage, instance #7
                         disk (driver not attached)
                     communications, instance #10
                         modem (driver not attached)
                         data (driver not attached)
                 storage, instance #0
                     disk (driver not attached)
                 storage, instance #1
                     disk (driver not attached)

prtconf コマンドの -D オプションを使用すれば、追加ドライバ情報を表示できます。この情報を使用して、SPARC システム上の USBA 1.0 フレームワークが使用しているポートおよびデバイスを確認できます。たとえば、次のように表示されます。


$ prtconf -D
.
.
.
SUNW,Sun-Blade-1500
.
.
.
1 pci, instance #0 (driver name: pcisch) 
           isa, instance #0 (driver name: ebus)
.
.
.
2 usb, instance #0 (driver name: ohci)
           usb, instance #1 (driver name: ohci)
.
.
.
3 pci, instance #0 (driver name: pci_pci)
4 usb, instance #0 (driver name: usba10_ohci)
            usb, instance #1 (driver name: usba10_ohci)
            usb, instance #0 (driver name: usba10_ehci)
                storage, instance #9 (driver name: usba10_scsa2usb)
                    disk, instance #9 (driver name: usb_sd)
            firewire, instance #0 (driver name: hci1394)
.
.
.

上の出力から、次の構成の特徴を確認できます。

Procedurevold を使用しないで USB 大容量ストレージデバイスをフォーマットする方法

USB 大容量ストレージデバイスは、Solaris オペレーティングシステムが使用する他のすべてのデバイスと同様に、使用する前にフォーマットしてファイルシステムを作成する必要があります。USB 大容量ストレージデバイス (フロッピーディスクも含む) は、PCFS および UFS の両方のファイルシステムをサポートします。PCFS または UFS ファイルシステムを作成する前に、ディスクがフォーマットされていることを確認してください。

手順
  1. voldを無効にする方法については、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法」を参照してください。

  2. (省略可能) USB フロッピーディスクデバイスをシステムに追加します。

    USB デバイスをホットプラグする方法については、以下を参照してください。

  3. (省略可能) フロッピーディスクデバイスを特定します。

    たとえば、次のようになります。


    # cd /dev/rdsk
    # devfsadm -C
    # ls -l c*0 | grep usb
    lrwxrwxrwx   1 root  root   55 Mar  5 10:35 c2t0d0s0 ->
    ../../devices/pci@1f,0/usb@c,3/storage@3/disk@0,0:a,raw

    この例では、フロッピーディスクデバイスは c2t0d0s0 です。

  4. フロッピーディスクをフロッピーディスクドライブに挿入します。

  5. フロッピーディスクをフォーマットします。


    % rmformat -Flong raw-device
    

    たとえば、次のようになります。


    % rmformat -Flong /dev/rdsk/c2t0d0s0
    
  6. ファイルシステムの種類を決定し、次のいずれかの作業を選択します。

    1. PCFS ファイルシステムを作成します。


      # mkfs -F pcfs -o nofdisk,size=size raw-device
      

      -size オプションを 512 バイトブロック単位で指定します。

      次の例は、1.4M バイトのフロッピーディスクに PCFS ファイルシステムを作成する方法を示しています。


      # mkfs -F pcfs -o nofdisk,size=2880 /dev/rdsk/c4t0d0s0
      

      次の例は、100M バイトの Zip ドライブに UFS ファイルシステムを作成する方法を示しています。


      # mkfs -F pcfs -o nofdisk,size=204800 /dev/rdsk/c5t0d0s0
      

      このコマンドの実行には、数分かかることがあります。

    2. UFS ファイルシステムを作成します。


      # newfs raw-device
      

      たとえば、次のようになります。


      # newfs /dev/rdsk/c4t0d0s0
      

      フロッピーディスクの記憶容量は少ないので、UFS ファイルシステムのためにフロッピーディスクのかなりの容量が消費されます。


Procedurevold を使用して USB 大容量ストレージデバイスをマウントまたはマウント解除する方法

手順
  1. すべてのリムーバブル大容量ストレージデバイス (USB 大容量ストレージデバイスを含む) について、デバイスの別名を表示します。


    $ eject -n
    .
    .
    .
    cdrom0 -> /vol/dev/rdsk/c0t6d0/audio_cd   (Generic CD device)
    zip0 -> /vol/dev/rdsk/c1t0d0/zip100       (USB Zip device)
    zip1 -> /vol/dev/rdsk/c2t0d0/fat32        (USB Zip device)
    rmdisk0 -> /vol/dev/rdsk/c5t0d0/unnamed_rmdisk (Peerless, HD or floppy)
    rmdisk1 -> /vol/dev/rdsk/c4t0d0/clik40    (Generic USB storage)
  2. 次のいずれかの方法を選択して、USB 大容量ストレージデバイスをマウントまたはマウント解除します。

    1. 上記のようにリストされたデバイス別名を使用して、USB 大容量ストレージデバイスをマウントします。


      $ volrmmount -i device-alias
      

      次の例では、USB Zip ドライブ (/rmdisk/zip0) をマウントします。


      $ volrmmount -i zip0 
      
    2. USB 大容量ストレージデバイスをマウント解除します。


      $ volrmmount -e device-alias
      

      次の例では、USB Zip ドライブ (/rmdisk/zip0) をマウント解除します。


      $ volrmmount -e zip0
      
  3. USB デバイスを、汎用の USB ドライブから取り出します。


    $ eject device-alias
    

    たとえば、次のようになります。


    $ eject rmdisk0
    

    デバイスのマウントが解除されていない場合、eject コマンドは、そのデバイスのマウント解除も行います。また、そのデバイスにアクセスするアプリケーションが実行されている場合は、そのアプリケーションを終了させます。


Procedurevold を使用しないで USB 大容量ストレージデバイスをマウントまたはマウント解除する方法

手順
  1. voldを無効にする方法については、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法」を参照してください。

  2. スーパーユーザーになります。

  3. (省略可能) フロッピーディスクデバイスを特定します。

    たとえば、次のようになります。


    # cd /dev/rdsk
    # devfsadm -C
    # ls -l c*0 | grep usb
    lrwxrwxrwx   1 root  root   55 Mar  5 10:35 c2t0d0s0 ->
    ../../devices/pci@1f,0/usb@c,3/storage@3/disk@0,0:a,raw

    この例では、フロッピーディスクデバイスは c2t0d0s0 です。

  4. 次のいずれかの方法を選択して、USB 大容量ストレージデバイスをマウントまたはマウント解除します。

    1. USB 大容量ストレージデバイスをマウントします。


      # mount [ -F fstype ] block-device mount-point
      

      次の例は、UFS ファイルシステムを使用しているデバイスのマウント方法を示しています。


      # mount /dev/dsk/c1t0d0s2 /mnt
      

      次の例は、PCFS ファイルシステムを使用していするデバイスのマウント方法を示しています。


      # mount -F pcfs /dev/dsk/c1t0d0s0:c /mnt
      

      次の例は、読み取り専用の HSFS ファイルシステムを使用している CD のマウント方法を示しています。


      # mount -F hsfs -o ro /dev/dsk/c1t0d0s2 /mnt
      
    2. USB 大容量ストレージデバイスをマウント解除します。

      デバイス上のファイルシステムを使用しているユーザーがいないことを最初に確認してください。

      たとえば、次のようになります。


      # fuser -c -u /mnt
      # umount /mnt
      
    3. デバイスを取り出します。


      # eject /dev/[r]dsk/cntndnsn
      

      たとえば、次のようになります。


      # eject /dev/rdsk/c1t0d0s2 
      

特定の USB ドライバを無効にする

特定の種類の USB デバイスを無効にするには、対応するクライアントドライバを無効にします。たとえば、USB プリンタを無効にするには、そのプリンタを使用している usbprn ドライバを無効にします。usbprn を無効にしても、USB ストレージデバイスなどの他のデバイスには影響しません。

両方のフレームワークでデバイスタイプを無効にする必要があります。 一方のフレームワークだけでデバイスタイプを無効にすることはできません。 次の表に、USB デバイスタイプとそれに対応するドライバを示します。

デバイスの種類 

無効にするドライバ 

オーディオ 

usb_ac および usb_as

HID (通常はキーボードとマウス) 

hid

ストレージ 

scsa2usb

プリンタ 

usbprn

シリアル 

usbser_edge

システムに接続されている USB デバイスのドライバを無効にすると、次のようなコンソールメッセージが表示されます。


usba10: WARNING: usba:    no driver found for device name

Procedure特定の USB ドライバを無効にする方法

手順
  1. スーパーユーザーになります。

  2. 削除するドライバの別名を記録します。


    # cp /etc/driver_aliases /etc/driver_aliases.orig
    
  3. 無効にする USB ドライバの別名を特定します。

    たとえば、次のようになります。


    # grep usbprn /etc/driver_aliases
    usbprn "usbif,class7.1.1"
    usbprn "usbif,class7.1.2"
  4. ドライバの別名エントリを削除します。

    たとえば、次のようになります。


    # update_drv -d -i '"usbif,class7.1.1"' usbprn
    # update_drv -d -i '"usbif,class7.1.2"' usbprn
    
  5. システムをリブートします。


    # init 6
    

Procedure使用されていない USB デバイスのリンクを削除する方法

システムの電源がオフのときに USB デバイスを取り外した場合には、次の手順を実行します。システムの電源が切断されているときに USB デバイスを取り外すと、存在しないデバイスへのリンクが残る場合があります。

手順
  1. スーパーユーザーになります。

  2. そのデバイスにアクセスする可能性のあるアプリケーションをすべて閉じます。

  3. 特定の USB クラスの未使用のリンクを削除します。

    たとえば、次のようになります。


    # devfsadm -C -c audio
    

    または、関連するリンクをすべて削除します。


    # devfsadm -C
    

USB デバイスのホットプラグ (作業マップ)

作業 

説明 

参照先 

USB 大容量ストレージデバイスを追加する 

vold を使用して USB 大容量ストレージデバイスを取り付ける

vold を使用して USB 大容量ストレージデバイスを追加する方法」

 

vold を使用しないで USB 大容量ストレージデバイスを取り付ける

vold を使用しないで USB 大容量ストレージデバイスを追加する方法」

USB 大容量ストレージデバイスを取り外す 

vold を使用して USB 大容量ストレージデバイスを取り外す

vold を使用して USB 大容量ストレージデバイスを取り外す方法」

 

vold を使用しないで USB 大容量ストレージデバイスを取り外す

vold を使用しないで USB 大容量ストレージデバイスを取り外す方法」

USB カメラを追加する 

USB カメラを追加して、デジタル画像にアクセスする 

「USB カメラを追加する方法」

デバイスのホットプラグとは、オペレーティングシステムをシャットダウンすることなくあるいはシステムの電源を切ることなく、デバイスを追加したり取り外したりすることを指します。USB デバイスはすべてホットプラグ可能です。

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

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

このような場合、システムは元のデバイスを接続するようにユーザーにプロンプトを表示します。デバイスが使用できない場合は、アプリケーションを停止してください。数秒後に、ポートが再び使用できるようになります。


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


Procedurevold を使用して USB 大容量ストレージデバイスを追加する方法

次の手順は、vold を使用して USB デバイスを追加する方法を示します。

手順
  1. USB 大容量ストレージデバイスを接続します。

  2. vold を使用して新しいデバイスがあるかどうか調べます。


    # touch /etc/vold.conf
    
  3. vold を再起動します。


    # pkill -HUP vold
    
  4. デバイスが取り付けられていることを確認します。


    $ ls device-alias
    

    ボリューム管理デバイス名の詳細については、第1章「リムーバブルメディアの管理 (概要)」を参照してください。

Procedurevold を使用しないで USB 大容量ストレージデバイスを追加する方法

次の手順は、vold を使用しないで USB デバイスを追加する方法を示します。

手順
  1. 必要に応じて、vold を無効にする方法について、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法」を参照してください。

  2. USB 大容量ストレージデバイスを接続します。

  3. USB デバイスが追加されたことを確認します。

    非 USB ストレージデバイスのデバイスリンクの間にあるかもしれない USB ディスクのデバイスリンクを、次のようにして確認します。


    $ cd /dev/rdsk
    $ ls -l c*0 | grep usb
    lrwxrwxrwx   1 root     root          67 Apr 30 15:12 c1t0d0s0 ->
    	../../devices/pci@1f,0/pci@5/pci@0/usb@8,2/storage@1/disk@0,0:a,raw

Procedurevold を使用して USB 大容量ストレージデバイスを取り外す方法

次の手順では、vold を使用して USB デバイスを取り外す例として、Zip ドライブを使用しています。

手順
  1. そのデバイスを使用しているアプリケーションを実行中の場合は、そのアプリケーションを停止します。

  2. デバイスをマウント解除します。

    たとえば、次のようになります。


    $ volrmmount -e zip0
    
  3. デバイスを取り出します。

    たとえば、次のようになります。


    $ eject zip0
    
  4. スーパーユーザーになり、vold を停止します。


    # /etc/init.d/volmgt stop
    
  5. USB 大容量ストレージデバイスを取り外します。

  6. vold を開始します。


    # /etc/init.d/volmgt start
    

Procedurevold を使用しないで USB 大容量ストレージデバイスを取り外す方法

次の手順は、vold を使用しないで USB デバイスを取り外す方法を示します。

手順
  1. 必要に応じて、vold を無効にする方法について、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法」を参照してください。

  2. スーパーユーザーになります。

  3. そのデバイスを使用しているアプリケーションを実行中の場合は、そのアプリケーションを停止します。

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

    1. デバイスをマウント解除します。

      たとえば、次のようになります。


      # umount /mnt 
      
    2. デバイスを取り外します。

ProcedureUSB カメラを追加する方法

USB カメラを追加するには、次の手順を実行します。

手順
  1. スーパーユーザーになります。

  2. USB カメラを差し込み、電源をオンにします。

    システムによって、カメラ用の論理デバイスが作成されます。カメラが差し込まれると、/var/adm/messages ファイルにメッセージが出力され、デバイスの接続が確認されます。カメラは、システムのストレージデバイスとみなされます。

  3. /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

    次のコマンドを実行して、デバイスをマウント可能な /dev/dsk リンクエントリに関連付けます。


    # ls -l /dev/dsk/c*0 | grep /pci@0,0/pci925,1234@7,2/storage@2
     lrwxrwxrwx   1 root     root          58 Jul 15  2002 c3t0d0p0 ->
     ../../devices/pci@0,0/pci925,1234@7,2/storage@2/disk@0,0:a
  4. USB カメラファイルシステムをマウントします。

    ほとんどの場合、カメラのファイルシステムは PCFS ファイルシステムです。作成されたデバイス上にファイルシステムをマウントするために、ディスクを表すスライスを指定する必要があります。スライスは通常、SPARC システムでは s0、x86 システムでは p0 です。

    たとえば、x86 システムにファイルシステムをマウントするには、次のコマンドを実行します。


    # mount -F pcfs /dev/dsk/c3t0d0p0:c /mnt
    

    SPARC システムにファイルシステムをマウントするには、次のコマンドを実行します。


    # mount -F pcfs /dev/dsk/c3t0d0s0:c /mnt
    

    ファイルシステムのマウントについては、第17章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。

    異なる PCFS ファイルシステムのマウントの詳細については、mount_pcfs(1M) のマニュアルページを参照してください。

  5. イメージファイルが使用可能であることを確認します。

    たとえば、次のようになります。


    # ls /mnt/DCIM/100OLYMP/
    P7220001.JPG*  P7220003.JPG*  P7220005.JPG*
    P7220002.JPG*  P7220004.JPG*  P7220006.JPG*
  6. USB カメラが作成したイメージファイルを表示します。


    # /usr/dt/bin/sdtimage P7220001.JPG 
    
  7. カメラを切り離す前に、ファイルシステムをマウント解除します。

    たとえば、次のようになります。


    # umount /mnt
    
  8. カメラの電源をオフにし、切り離します。

USB オーディオデバイスの使用 (作業マップ)

作業 

説明 

参照先 

USB オーディオデバイスを追加する 

USB マイクおよびスピーカを追加する 

「USB オーディオデバイスを追加する方法」

システムの主オーディオデバイスを特定する 

システムの主オーディオデバイスを特定する 

「システムの主オーディオデバイスを識別する方法」

主 USB オーディオデバイスを変更する 

USB オーディオデバイスを取り外したり変更したりする場合、特定の 1 つのオーディオデバイスを主オーディオデバイスにすることがある 

「主 USB オーディオデバイスを変更する方法」

使用していない USB デバイスリンクを削除する 

システムの電源がオフのときに USB オーディオデバイスを取り外すと、 /dev/audio デバイスが、存在しない /dev/sound/* デバイスを指したままになることがある

「使用されていない USB デバイスのリンクを削除する方法」

USB オーディオに関する問題の障害追跡 

USB スピーカからサウンドが出力されない場合は、この節を参照する 

「USB オーディオの問題を解決する」

USB オーディオデバイスの使用

このSolaris リリースでは、2 つの連携するドライバ、usb_ac および usb_as の実装によって、USB オーディオサポートを提供しています。オーディオコントロールドライバである usb_ac は USBA (Solaris USB Architecture) 準拠のクライアントドライバで、ユーザーアプリケーションのインタフェースを制御します。オーディオストリーミングドライバである usb_as は、再生中および録音中にオーディオデータメッセージを処理します。また、サンプル周波数と精度を設定し、usb_ac ドライバからの要求を符号化します。どちらのドライバも、USB オーディオクラス 1.0 仕様に準拠しています。

一部のオーディオデバイスでは、ソフトウェアが制御している音量を設定できます。この機能を管理するために、STREAMS モジュールの usb_ah が HID ドライバの先頭に置かれます。

Solaris では、再生専用、録音専用、録音および再生用の USB オーディオデバイスをサポートします。USB オーディオデバイスのホットプラグがサポートされます。

主オーディオデバイスは、/dev/audio です。次のコマンドを使用して、/dev/audio が USB オーディオを指しているかを確認できます。


% mixerctl
Device /dev/audioctl:
  Name    = USB Audio
  Version = 1.0
  Config  = external

Audio mixer for /dev/audioctl is enabled

USB オーディオデバイスを接続した後、audioplay コマンドおよび audiorecord コマンドを使用し、 /dev/sound/N デバイスリンクを介してデバイスにアクセスします。

/dev/audio および /dev/sound/N デバイスは、スピーカ、マイク、またはコンボデバイスを参照できます。不正なデバイスタイプを参照すると、そのコマンドは失敗します。たとえば、マイクに対して audioplay を使用しようとすると、そのコマンドは失敗します。

ほとんどの Sun オーディオアプリケーションでは、特定のデフォルトオーディオデバイスを選択できます。たとえば、audioplayaudiorecord の場合には、AUDIODEV シェル変数を設定するか、-d オプションを指定します。ただし、/dev/audio をオーディオファイルとしてハードコードしているサードパーティ製のアプリケーションでは AUDIODEV は動作しません。

USB オーディオデバイスを差し込むと、/dev/audio が使用中でない限り、自動的にそれが主オーディオデバイス /dev/audio になります。オンボードのオーディオから USB オーディオへ、および USB オーディオからオンボードのオーディオへ /dev/audio を変更する方法については、「主 USB オーディオデバイスを変更する方法」 および usb_ac(7D) のマニュアルページを参照してください。

複数の USB オーディオデバイスのホットプラグ

USB オーディオデバイスがシステムに差し込まれると、それが主オーディオデバイス /dev/audio になります。そのデバイスは、システムをリブートした後でも、主オーディオデバイスのままです。USB オーディオデバイスが追加で差し込まれた場合、最後に差し込まれたデバイスが主オーディオデバイスになります。

USB オーディオデバイスに関する問題の障害追跡については、usb_ac(7D) のマニュアルページを参照してください。

ProcedureUSB オーディオデバイスを追加する方法

USB オーディオデバイスを追加するには、次の手順を実行します。

手順
  1. USB スピーカを差し込みます。

    主オーディオデバイス /dev/audio は、USB スピーカを指します。


    % ls -l /dev/audio
    lrwxrwxrwx   1 root     root    10 Feb 13 08:46 /dev/audio -> usb/audio0
  2. (省略可能) スピーカを取り外します。その後、再度差し込みます。

    スピーカを取り外すと、/dev/audio デバイスがオンボードのオーディオに戻ります。


    % ls -l /dev/audio
    lrwxrwxrwx   1 root     root   7 Feb 13 08:47 /dev/audio -> sound/0
  3. USB マイクを追加します。


    % ls -l /dev/audio
    lrwxrwxrwx   1 root     root    10 Feb 13 08:54 /dev/audio -> usb/audio1

Procedureシステムの主オーディオデバイスを識別する方法

この手順は、すでに USB オーディオデバイスが接続されていることを前提としています。

手順

    システムの新しいオーディオリンクを調べます。

    たとえば、次のようになります。


    % ls -lt /dev/audio*
    lrwxrwxrwx   1 root     root      7 Jul 23 15:46 /dev/audio -> usb/audio0
    lrwxrwxrwx   1 root     root     10 Jul 23 15:46 /dev/audioctl -> 
    usb/audioctl0/
    % ls -lt /dev/sound/*
    lrwxrwxrwx   1 root     root     74 Jul 23 15:46 /dev/sound/1 -> 
    ../../devices/pci@1f,4000/usb@5/hub@1/device@3/sound-control@0:sound,a...
    lrwxrwxrwx   1 root     root     77 Jul 23 15:46 /dev/sound/1ctl -> 
    ../../devices/pci@1f,4000/usb@5/hub@1/device@3/sound-control@0:sound,a...
    lrwxrwxrwx   1 root     other    66 Jul 23 14:21 /dev/sound/0 -> 
    ../../devices/pci@1f,4000/ebus@1/SUNW,CS4231@14,200000:sound,audio
    lrwxrwxrwx   1 root     other    69 Jul 23 14:21 /dev/sound/0ctl -> 
    ../../devices/pci@1f,4000/ebus@1/SUNW,CS4231@14,200000:sound,audioctl
    % 

    主オーディオデバイス /dev/audio が、新しく差し込まれた USB オーディオデバイスの /dev/usb/audio0 を指していることがわかります。

    prtconf コマンドを使用して USB デバイス情報を参照して、システム上の USB オーディオデバイスを調べることもできます。


    % prtconf
    .
    .
    .
    usb, instance #0
       hub, instance #0
            mouse, instance #0
            keyboard, instance #1
            device, instance #0
                sound-control, instance #0
                sound, instance #0
                input, instance #0
    .
    .
    .

主 USB オーディオデバイスを変更する方法

USB オーディオデバイスに関する問題の障害追跡

この節では、USB オーディオデバイス問題の障害追跡の方法を説明します。

USB オーディオの問題を解決する

ドライバを適用し、音量も上げているのに、USB スピーカから音が出ないことがあります。デバイスをホットプラグしてもこの動作が変化しないことがあります。

この問題を解決するには、USB スピーカの電源を再投入します。

オーディオデバイスの所有権に関する注意事項

オーディオデバイスを操作するときは、オーディオデバイスの所有権に関する、次に挙げる点に注意してください。

cfgadm コマンドを使用した USB デバイスのホットプラグ (作業マップ)

作業 

説明 

参照先 

USB バス情報を表示する 

USB デバイスおよびバスについての情報を表示する 

「USB バス情報を表示する方法 (cfgadm)」

USB デバイスの構成を解除する 

システムに物理的に接続されている USB デバイスを論理的に構成解除する 

「USB デバイスの構成を解除する方法」

USB デバイスを構成する 

以前に構成を解除した USB デバイスを構成する 

「USB デバイスの構成方法」

論理的に USB デバイスの接続を解除する 

物理的にシステムの近くにいないときには、USB デバイスを論理的に切り離すことができる 

「論理的に USB デバイスを接続解除する方法」

論理的に USB デバイスに接続する 

以前に論理的に接続解除または構成解除した USB デバイスを論理的に接続する 

「論理的に USB デバイスを接続する方法」

USB デバイスのサブツリーの接続を解除する 

ハブの下位階層 (または下位のツリー) である USB デバイスサブツリーの接続を解除する 

「論理的に USB デバイスのサブツリーを接続解除する方法」

USB デバイスをリセットする 

USB デバイスをリセットして、デバイスを論理的に削除し、再作成する 

「USB デバイスのリセット方法」

複数の構成を持つ USB デバイスのデフォルト構成を変更する 

複数の構成を持つ USB デバイスのデフォルト構成を変更する 

「複数の構成を持つ USB デバイスのデフォルト構成を変更する方法」

cfgadm コマンドを使った USB デバイスのホットプラグ

cfgadm コマンドを使用せずに稼働中のシステムから USB デバイスを追加または削除することができます。ただし、USB デバイスは、デバイスを物理的に削除しなくても「論理的に」ホットプラグすることができます。 この方法は、リモートで作業中に機能していない USB デバイスを無効にしたりリセットしたりする必要がある場合に便利です。cfgadm コマンドを使うと、メーカーや製品情報を含む USB デバイスツリーを表示することもできます。

cfgadm コマンドは接続点についての情報を表示します。接続点とは、動的再構成を行うことができるシステム内の特定の場所のことです。接続点は、次の要素から構成されています。

接続点は、論理と物理の両方の接続点 ID (Ap_Id) で表現されます。物理 Ap_Id は接続点の物理的なパス名です。論理 Ap_Id は物理 Ap_Id に代わるユーザーに理解しやすい ID です。Ap_Id の詳細については、cfgadm_usb(1M) のマニュアルページを参照してください。

cfgadm コマンドを使用すると、USB デバイスステータス情報を取得できます。

受容体の状態 

説明 

empty/unconfigured 

デバイスが物理的に接続されていない 

disconnected/unconfigured 

デバイスは物理的に接続されているかもしれないが、論理的に接続解除されており利用不可 

connected/unconfigured 

デバイスは論理的に接続されているが利用不可。このデバイスは、 prtconf の出力に表示される

connected/configured 

デバイスは接続されており利用可能 

次の節では、ソフトウェアから cfgadm コマンドを使用して USB デバイスにホットプラグする方法について説明します。次のすべてのサンプル USB デバイス情報は、関連した情報に焦点を合わせるために一部省略されています。

USB バス情報を表示する方法 (cfgadm)

cfgadm コマンドを使用して USB バス情報を表示します。たとえば、次のようになります。


% cfgadm
Ap_Id                       Type         Receptacle   Occupant     Condition
usb0/4.5                    usb-hub      connected    configured   ok
usb0/4.5.1                  usb-device   connected    configured   ok
usb0/4.5.2                  usb-printer  connected    configured   ok
usb0/4.5.3                  usb-mouse    connected    configured   ok
usb0/4.5.4                  usb-device   connected    configured   ok
usb0/4.5.5                  usb-storage  connected    configured   ok
usb0/4.5.6                  usb-communi  connected    configured   ok
usb0/4.5.7                  unknown      empty        unconfigured ok
usb0/4.6                    usb-storage  connected    configured   ok
usb0/4.7                    usb-storage  connected    configured   ok

前の例で usb0/4.5.1 は、第 2 レベルの外部ハブのポート 1 に接続されているデバイスを識別します。この第 2 レベルハブは第 1 レベルの外部ハブのポート 5 に接続されており、また第 1 レベルのハブは最初の USB コントローラのルートハブであるポート 4 に接続されています。

次の cfgadm コマンドを使用して、特定の USB デバイス情報を表示します。たとえば、次のようになります。


% cfgadm -l -s "cols=ap_id:info"
Ap_Id       Information
 usb0/4.5.1  Mfg: Inside Out Networks Product: Edgeport/421 NConfigs: 1 
Config: 0  : ...
 usb0/4.5.2  Mfg: undef> Product: undef>   NConfigs: 1 Config: 0 ...
 usb0/4.5.3  Mfg: Mitsumi Product: Apple USB Mouse NConfigs: 1 Config: 0 ...
 usb0/4.5.4  Mfg: NMB  Product: NMB USB KB/PS2 M NConfigs: 1 Config: 0
 usb0/4.5.5  Mfg: Hagiwara Sys-Com  Product: SmartMedia R/W  NConfigs: 1 
Config: 0 : ...
 usb0/4.5.6  Mfg: 3Com Inc.  Product: U.S.Robotics 56000 Voice USB Modem 
NConfigs: 2 ...
 usb0/4.5.7
 usb0/4.6    Mfg: Iomega  Product: USB Zip 250  NConfigs: 1  Config: 0
 : Default
 usb0/4.7    Mfg: Iomega  Product: USB Zip 100  NConfigs: 1  Config: 0
 : Default

prtconf コマンドを使用して USB 構成情報を表示する例については、「USB デバイス情報を表示する方法 (prtconf)」を参照してください。

ProcedureUSB デバイスの構成を解除する方法

システムに物理的に接続されている USB デバイスの構成を解除することはできますが、ドライバを適用することはできません。USB デバイスの構成を解除しても、そのデバイスは prtconf 出力に表示されることに注意してください。

手順
  1. スーパーユーザーになります。

  2. USB デバイスの構成を解除します。


    # cfgadm -c unconfigure usb0/4.7
    Unconfigure the device: /devices/pci@8,700000/usb@5,3/hub@4:4.7
    This operation will suspend activity on the USB device
    Continue (yes/no)? y
    
  3. デバイスの構成が解除されていることを確認します。


    # cfgadm  
    Ap_Id                    Type         Receptacle   Occupant     Condition
    usb0/4.5                 usb-hub      connected    configured   ok
    usb0/4.5.1               usb-device   connected    configured   ok
    usb0/4.5.2               usb-printer  connected    configured   ok
    usb0/4.5.3               usb-mouse    connected    configured   ok
    usb0/4.5.4               usb-device   connected    configured   ok
    usb0/4.5.5               usb-storage  connected    configured   ok
    usb0/4.5.6               usb-communi  connected    configured   ok
    usb0/4.5.7               unknown      empty        unconfigured ok
    usb0/4.6                 usb-storage  connected    configured   ok
    usb0/4.7                 usb-storage  connected    unconfigured ok

ProcedureUSB デバイスの構成方法

手順
  1. スーパーユーザーになります。

  2. USB デバイスを構成します。


    # cfgadm -c configure usb0/4.7 
    
  3. USB デバイスが構成されていることを確認します。


    # cfgadm usb0/4.7
    Ap_Id                  Type         Receptacle  Occupant    Condition
    usb0/4.7               usb-storage  connected   configured  ok

Procedure論理的に USB デバイスを接続解除する方法

システムから USB デバイスを取り外し、prtconf 出力を削除したいが、物理的にシステムの近くにいない場合、USB デバイスの接続を論理的に解除できます。デバイスが物理的に接続されているが、論理的に接続解除されている場合には、そのデバイスは使用できず、システムにも表示されません。

手順
  1. スーパーユーザーになります。

  2. USB デバイスの接続を解除します。


    # cfgadm -c disconnect -y usb0/4.7
    
  3. デバイスが接続解除されていることを確認します。


    # cfgadm usb0/4.7
    Ap_Id                  Type      Receptacle    Occupant      Condition
    usb0/4.7               unknown   disconnected  unconfigured  ok

Procedure論理的に USB デバイスを接続する方法

次の手順を使用して、以前に論理的に接続解除または構成解除された USB デバイスを論理的に接続します。

手順
  1. スーパーユーザーになります。

  2. USB デバイスを接続します。


    # cfgadm -c configure usb0/4.7
    
  3. デバイスが接続されていることを確認します。


    # cfgadm usb0/4.7
    Ap_Id                  Type         Receptacle  Occupant    Condition
    usb0/4.7               usb-storage  connected   configured  ok

    デバイスを利用できるようになり、システムにも表示されるようになります。

Procedure論理的に USB デバイスのサブツリーを接続解除する方法

次の手順を使用して、USB デバイスのサブツリーを接続解除します。サブツリーは、ハブの下位デバイスの階層 (ツリー) です。

手順
  1. スーパーユーザーになります。

  2. USB デバイスサブツリーを削除します。


    # cfgadm -c disconnect -y usb0/4
    
  3. USB デバイスサブツリーの接続解除を確認します。


    # cfgadm usb0/4
    Ap_Id                  Type       Receptacle   Occupant     Condition
    usb0/4                 unknown    disconnected unconfigured ok

ProcedureUSB デバイスのリセット方法

USB デバイスでエラーが発生した場合は、cfgadm コマンドを使ってデバイスをリセットします。このコマンドを使うと、デバイスを論理的に削除し、再作成することができます。

手順
  1. スーパーユーザーになります。

  2. デバイスが使用中でないことを確認します。

  3. デバイスをリセットします。


    # cfgadm -x usb_reset -y usb0/4.7
    
  4. デバイスが接続されていることを確認します。


    # cfgadm usb0/4.7
    Ap_Id                  Type         Receptacle   Occupant     Condition
    usb0/4.7               usb-storage  connected    configured   ok

Procedure複数の構成を持つ USB デバイスのデフォルト構成を変更する方法

複数の構成を持つ USB デバイスを操作するときには、次の点を考慮してください。

手順
  1. デバイスが使用中でないことを確認します。

  2. デフォルトの USB 構成を変更します。

    たとえば、次のようになります。


    # cfgadm -x usb_config -o config=2 usb0/4
       Setting the device: /devices/pci@1f,0/usb@c,3:4
       to USB configuration 2
       This operation will suspend activity on the USB device
       Continue (yes/no)? yes
    
  3. デバイスの変更を確認します。

    たとえば、次のようになります。


    # cfgadm -lv usb0/4
    Ap_Id  Receptacle   Occupant     Condition  Information When  Type    
         Busy     Phys_Id
    usb0/4 connected    unconfigured ok         Mfg: Sun  2000   
    Product: USB-B0B0 aka Robotech
    With 6 EPPS High Clk Mode   NConfigs: 7  Config: 2  : EVAL Board Setup  
    unavailable
    usb-device   n        /devices/pci@1f,0/usb@c,3:4

    Config が「2」になります。