cfgadm コマンドを使用せずに稼働中のシステムから USB デバイスを追加または削除できます。ただし、cfgadm コマンドを使用すると、USB デバイスに対して論理ホットプラグ操作を実行できます。論理ホットプラグ操作では、デバイスを物理的に取り扱う必要はありません。このため、デバイス自体を取り外さなくても、機能していない USB デバイスをリモートから無効にしたり、リセットしたりすることができます。cfgadm コマンドを使うと、製造元や製品情報を含む USB デバイスツリーを表示することもできます。
cfgadm コマンドは、ほかのホットプラグ対応デバイスと同様に USB デバイスで動作します。このコマンドの動作の概念および概要については、Chapter 2, デバイスの動的構成の関連するセクションを参照してください。
次の cfgadm コマンドは、USB デバイスを含むすべてのデバイスに適用されます。詳細は、Chapter 2, デバイスの動的構成を参照してください。
デバイスについての情報を表示します。
デバイスを構成または構成解除します。
デバイスを接続または切断します。
USB デバイスに対して論理操作を実行します。このコマンドは 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