cfgadm コマンドを使用せずに稼働中のシステムから USB デバイスを追加または削除できます。ただし、cfgadm コマンドを使用すると、USB デバイスに対して論理ホットプラグ操作を実行できます。論理ホットプラグ操作では、デバイスを物理的に取り扱う必要はありません。このため、デバイス自体を取り外さなくても、機能していない USB デバイスをリモートから無効にしたり、リセットしたりすることができます。cfgadm コマンドを使うと、製造元や製品情報を含む USB デバイスツリーを表示することもできます。
cfgadm コマンドは、ほかのホットプラグ対応デバイスと同様に USB デバイスで動作します。このコマンドの動作に関する概念および概要については、デバイスの動的構成の関連するセクションを参照してください。
次の cfgadm コマンドは、USB デバイスを含むすべてのデバイスに適用されます。詳細は、デバイスの動的構成を参照してください。
デバイスについての情報を表示します。
デバイスを構成または構成解除します。
デバイスを接続または切断します。
USB デバイスに対して論理操作を実行します。このコマンドは 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 デバイスの構成は、cfgadm コマンドを使用するシステムデバイスの構成 (このドキュメントのほかのセクションで説明しています) とは異なります。
一部の USB デバイスでは、複数構成がサポートされています。ただし、一度にアクティブにできるのは 1 つの構成のみです。複数構成のデバイスを識別するには、cfgadm –lv コマンドを使用します。このコマンドの出力の 2 つのパラメータが、複数構成の情報を示しています。
Nconfigs は、デバイスの構成の数を示しています。
Config は、現在アクティブである構成 (したがって、デフォルトの構成) を示しています。
デバイスが同じポートに再接続される場合、リブート、ホットリムーブ、およびデバイスの再構成を行なっても、デフォルト構成への変更は維持されます。
# cfgadm -lv [device]
デフォルトの構成を変更しようとしているデバイスの Ap_Id をすでに知っている場合は、デバイスを指定できます。
また、プロンプトでアクションを確認してください。
# 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
# 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