Oracle® Solaris 11.2 でのデバイスの管理

印刷ビューの終了

更新: 2014 年 7 月
 
 

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

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

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

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

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 デバイスに関連のある情報のみを表示しています。実際のコマンドの出力は、システム上のデバイスによって異なります。

使用例 13-3  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
使用例 13-4  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 okDevice is unconfigured.
使用例 13-5  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
使用例 13-6  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  okThe device is disconnected and becomes unavailable.
使用例 13-7  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  okThe device is connected and becomes available.
使用例 13-8  USB デバイスのサブツリーの論理的な切断

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

# cfgadm -c disconnect -y usb0/4

# cfgadm usb0/4
Ap_Id                  Type       Receptacle   Occupant     Condition
usb0/4                 unknown    disconnected unconfigured okAll devices under port 4 of the hub are disconnected.
使用例 13-9  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