Go to main content
Oracle® Solaris 11.3 でのデバイスの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

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

cfgadm コマンドを使用せずに稼働中のシステムから USB デバイスを追加または削除できます。ただし、cfgadm コマンドを使用すると、USB デバイスに対して論理ホットプラグ操作を実行できます。論理ホットプラグ操作では、デバイスを物理的に取り扱う必要はありません。このため、デバイス自体を取り外さなくても、機能していない USB デバイスをリモートから無効にしたり、リセットしたりすることができます。cfgadm コマンドを使うと、製造元や製品情報を含む USB デバイスツリーを表示することもできます。

cfgadm コマンドは、ほかのホットプラグ対応デバイスと同様に USB デバイスで動作します。このコマンドの動作に関する概念および概要については、デバイスの動的構成の関連するセクションを参照してください。

次の cfgadm コマンドは、USB デバイスを含むすべてのデバイスに適用されます。詳細は、デバイスの動的構成を参照してください。

cfgadm -l[a]

デバイスについての情報を表示します。

cfgadm -c configure devicecfgadm -c unconfigure device

デバイスを構成または構成解除します。

cfgadm -c connect devicecfgadm -c disconnect device

デバイスを接続または切断します。

cfgadm -x usb-option device

USB デバイスに対して論理操作を実行します。このコマンドは USB デバイス固有のコマンドです。


注 -  また、prtconf コマンドは、USB デバイスを含むすべてのデバイスの構成情報を表示できます。

次の例は、cfgadm コマンドを使用して、USB デバイスに対してホットプラグ操作を実行しています。サンプル出力には、USB デバイスに関連のある情報のみを表示しています。実際のコマンドの出力は、システム上のデバイスによって異なります。

使用例 58  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.5.1 を例にすると、この出力から次の情報が得られます。

  • usb0 は 1 番目の USB コントローラを指しています。

  • デバイス名の後ろのドット区切りの 3 つの数字は、ルートハブのほかに、システムに外部ハブが 2 つあることを示しています。

    • 最初の数字は、コントローラのルートハブのポート 4 を指しています。

    • 2 番目の数字は、最初のレベルの外部ハブのポート 5 を指しています。

    • 3 番目の数字は、2 番目のレベルの外部ハブのポート 1 を指しています。

実用的な手順として、実際のホットプラグの手順の前後に、システムデバイスに関する情報を表示するようにしてください。この情報は次のように役に立ちます。

  • 動的に再構成するバスまたはデバイスを適切に識別できます。

  • 再構成が正常に完了したことをバスまたはデバイスの状態から確認できます。

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
使用例 59  USB デバイスの構成解除

USB デバイスの構成を解除して、システムに物理的に接続されたままにすることができます。デバイスは prtconf コマンドの出力に引き続き含められます。しかし、そのデバイスにドライバは適用されません。

# 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

# cfgadm -l
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デバイスは構成解除されています。
使用例 60  USB デバイスの構成
# cfgadm -c configure usb0/4.7

# cfgadm usb0/4.7
Ap_Id                  Type         Receptacle  Occupant    Condition
usb0/4.7               usb-storage  connected   configured  ok
使用例 61  USB デバイスの論理的な切断

この例では、USB デバイスはシステムに物理的に接続されたままです。ただし、論理的に切断されたあとは使用できなくなります。prtconf コマンドの出力には、このデバイスは含まれません。

# cfgadm -c disconnect -y usb0/4.7
# cfgadm usb0/4.7
Ap_Id                  Type      Receptacle    Occupant      Condition
usb0/4.7               unknown   disconnected  unconfigured  okデバイスは切断され、使用不可になります。
使用例 62  USB デバイスの論理的な接続

デバイスに物理的にアクセスしなくても、リモートから USB デバイスに接続できます。ただし、論理的な接続が成功するには、デバイスがシステムに物理的に接続されている必要があります。

# cfgadm -c configure usb0/4.7

# cfgadm usb0/4.7
Ap_Id                  Type         Receptacle  Occupant    Condition
usb0/4.7               usb-storage  connected   configured  ok デバイスは接続され、使用可能になります。
使用例 63  USB デバイスのサブツリーの論理的な切断

この例では、ハブの配下のデバイスの階層全体を削除しています。

# cfgadm -c disconnect -y usb0/4

# cfgadm usb0/4
Ap_Id                  Type       Receptacle   Occupant     Condition
usb0/4                 unknown    disconnected unconfigured okハブのポート 4 の下にあるすべてのデバイスが切断されています。
使用例 64  USB デバイスのリセット

デバイスをリセットすると、デバイスが削除されてから再作成されます。動作が不安定なデバイスはリセットできます。この例では、デバイスが使用されていないことを想定しています。デバイスを使用しているアプリケーションがある場合、リセットは失敗します。

# cfgadm -x usb_reset -y usb0/4.7

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

USB デバイスの複数構成について

USB デバイスの構成には、デバイス自体がどのようにオペレーティングシステムに表示されるかを定義します。USB デバイスの構成は、cfgadm コマンドを使用するシステムデバイスの構成 (このドキュメントのほかのセクションで説明しています) とは異なります。

一部の USB デバイスでは、複数構成がサポートされています。ただし、一度にアクティブにできるのは 1 つの構成のみです。複数構成のデバイスを識別するには、cfgadm –lv コマンドを使用します。このコマンドの出力の 2 つのパラメータが、複数構成の情報を示しています。

  • Nconfigs は、デバイスの構成の数を示しています。

  • Config は、現在アクティブである構成 (したがって、デフォルトの構成) を示しています。

デバイスが同じポートに再接続される場合、リブート、ホットリムーブ、およびデバイスの再構成を行なっても、デフォルト構成への変更は維持されます。

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

  1. 管理者になります。
  2. デバイスが使用中でないことを確認します。
  3. (オプション) 現在の USB デバイスの構成を表示します。
    # cfgadm -lv [device]

    デフォルトの構成を変更しようとしているデバイスの Ap_Id をすでに知っている場合は、デバイスを指定できます。

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

    また、プロンプトでアクションを確認してください。

    # cfgadm -x usb_config -o config=config-number device
    

    次の例は、usb0/4 の構成を 1 から 2 に変更しています。

    # 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
  5. デバイスの変更を確認します。
    # cfgadm -lv device
    

    次の例は、前の手順で変更された usb0/4 を示しています。

    # 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 :デフォルト構成は現在 2 です。 
    EVAL Board Setup unavailable
    usb-device   n     /devices/pci@1f,0/usb@c,3:4