Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

cfgadm_usb(8)

名前

cfgadm_usb - cfgadm の USB ハードウェア固有のコマンド

形式

/usr/sbin/cfgadm [-f] [-y | -n] [-v] -c function ap_id...
/usr/sbin/cfgadm -f [-y | -n] [-v] [-o hardware_options]
     -x hardware_function ap_id...
/usr/sbin/cfgadm -v [-a] [-s listing_option] 
     [-l [ap_id | ap_type...]]
/usr/sbin/cfgadm -v -h [ap_id]...

説明

ユニバーサルシリアルバス (USB) ハードウェア固有ライブラリ /usr/lib/cfgadm/usb.so.1 は、cfgadm(8) コマンドを介して USB デバイスを管理するための機能を提供します。cfgadm は、接続点で実行されます。接続点の詳細は、cfgadm(8) を参照してください。

USB の管理では、サポートされる接続点は、USB バスに接続されたハブのポートのみです。

接続点には、接続点 ID (ap_id) を通じて名前が付けられます。USB バスは階層構造であるため、ap_id も同様です。USB ハブには、1 から n までの番号が付けられたポートがあります。すべての USB の ap_id は、次の形式の文字列で構成されます。

usbN/A[.B[.C[...]]]

各情報の意味は次のとおりです。

  • N はシステムの N 番目の USB ホストコントローラ、
  • A はルート (最上位) ハブのポート番号 A です。
  • B は、上位ハブのポート番号 A にプラグインされたハブのポート番号 B です。
  • C は、上位ハブのポート番号 B にプラグインされたハブのポート番号 C で、以下同様です。

たとえば、USB コントローラ 0 (唯一のコントローラ) のルートハブの 1 番目のポートは、次のような論理 ap_id を持ちます。

usb0/1

同様に、1 番目の USB コントローラのルートハブの 1 番目のポートに接続された 1 番目の外部ハブの 2 番目のポートは、次のような論理 ap_id を持ちます。


usb0/1.2

たとえば、ap_idusb0/1.4.3.4 である場合は、システム上の 1 番目の USB ホストコントローラのルートハブのポート 1 に接続されたハブのポート 4 に接続されたハブのポート 3 に接続されたハブのポート 4 を表しています。

example# cfgadm -l
Ap_Id                Type         Receptacle   Occupant     Condition
usb0/1               USB-hub      connected    configured   ok
usb0/2               unknown      empty        unconfigured ok
usb0/1.1             USB-storage  connected    configured   ok
usb0/1.2             unknown      empty        unconfigured ok
usb0/1.3             unknown      empty        unconfigured ok
usb0/1.4             USB-device   connected    configured   ok

USB2.0 チップには、EHCI ホスト USB2.0 ホストコントローラが 1 つと、いくつかのコンパニオン USB 1.x ホストコントローラ (OHCI または UHCI ホストコントローラ) が搭載されています。

USB2.0 デバイスは、接続されると、EHCI 論理ポートに接続されます。これらの論理ポートは、システム上の外部の物理ポート番号に対して 11 のマッピングになっていない場合があります。USB1.x デバイスを接続すると、EHCI ホストコントローラは、デバイスにコンパニオンホストコントローラの別の経路を指定し、デバイスはコンパニオンの論理ポート番号に接続されます。

論理ポート番号と物理ポート番号のマッピングは非常に複雑になる場合があります。例:


% cfgadm
Ap_Id                Type         Receptacle   Occupant     Condition
c0                   scsi-bus     connected    configured   unknown
usb0/1               usb-mouse    connected    configured   ok
usb0/2               usb-kbd      connected    configured   ok
usb0/3               unknown      empty        unconfigured ok
usb0/4               usb-hub      connected    configured   ok
usb0/4.1             unknown      empty        unconfigured ok
usb0/4.2             unknown      empty        unconfigured ok
usb0/4.3             unknown      empty        unconfigured ok
usb0/4.4             usb-storage  connected    configured   ok
usb1/1               unknown      empty        unconfigured ok
usb1/2               unknown      empty        unconfigured ok
usb1/3               unknown      empty        unconfigured ok
usb2/1               unknown      empty        unconfigured ok
usb2/2               usb-device   connected    configured   ok
usb3/1               unknown      empty        unconfigured ok
usb3/2               unknown      empty        unconfigured ok
usb3/3               unknown      empty        unconfigured ok
usb3/4               unknown      empty        unconfigured ok
usb3/5               unknown      empty        unconfigured ok

この例では、usb0 はオンボード USB 1.x ホストコントローラです。usb1usb2 は、コンパニオン OHCI USB1.x ホストコントローラであり、usb3EHCI USB2.0 ホストコントローラです。

次の表は、この USB2.0 チップのややわかりにくい経路指定を示しています。


logical port number		physical port number
-------------------		--------------------
	usb1/1			internal port 1	
	usb1/2			external port 1
	usb1/3			external port 3
	
	usb2/1			internal port 2
	usb2/2			external port 2
	
	usb3/1			internal port 1
	usb3/2			internal port 2
	usb3/3			external port 1
	usb3/4			external port 2
	usb3/5			external port 3

残念ながら、多くの場合、正確な経路指定は実験によってしかわかりません。

USB ポートにおける接続点の受容体の状態は、次の意味を持ちます。

connected

USB は、電源が投入され、有効になっています。USB デバイスがポートに接続されています。デバイスが USB バスに論理的に接続されています。

disconnected

USB は、電源が投入され、有効になっています。USB デバイスがポートに接続されています。(cfgadm –c disconnect コマンドを使用して) デバイスが USB バスから論理的に切断されています。

empty

USB ポートは電源が投入されていますが、デバイスが接続されていません。

USB ポートにおける USB ポートの接続点でのデバイスの占有装置の状態は、次の意味を持ちます。

configured

USB ポートの USB デバイスは構成されており、Solaris で使用できます。

unconfigured

USB ポートの USB デバイスは、cfgadm –c unconfigure を使用して明示的にオフラインにされているか、ドライバがない、またはデバイスに問題があるなど、Solaris で使用できるように正常に構成されていません。

接続点の条件は次のとおりです。

ok

通常の状態 - 使用できます。

failing

使用されていません。

failed

使用されていません。

unusable

アプリケーションによってデバイスが開かれているときに、ユーザーによりデバイスが物理的に取り外されました (未処理の I/O がある場合があります)。ユーザーは、同じ物理デバイスを再度挿入し、アプリケーションを適切に終了してから、デバイスをあらためて取り外す必要があります。この処理が完了するまで、ほかの挿入されたデバイスをポートで構成することはできません。

元のデバイスをポートに再度挿入できない場合は、Managing Devices in Oracle Solaris 11.4に記載されている、この接続点の条件をクリアする手順を参照してください。

unknown

使用されていません。

USB デバイスは、いつでもホットプラグで接続または取り外しでき、システムによってイベントが検出され、適切に処理されます。

デバイスを USB から取り外す前に、受容体を disconnected 状態に移行する必要はありません。ただし、使用中のデバイス (ボリュームマネージャーまたはその他のアプリケーションによって現在開かれているリムーバブルディスクなど) をホットリムーブすることはお勧めしません。

オプション

cfgadm では、数種類の操作が定義されています。これらの操作には、構成状態の変更の開始 (–c)、ハードウェア固有の機能の実行 (–x)、および構成管理のヘルプ情報の表示 (–h) が含まれます。

いずれかの操作が失敗した場合、デバイスおよび接続点が想定した状態にならない場合があります。デバイスの現在のステータスを表示するには、cfgadm –l コマンドを使用します。

その他のすべてのオプションは、cfgadm(8) での定義と同じ意味を持ちます。

サポートしているオプションは、次のとおりです。

–c function

USB ハードウェア固有ライブラリでは、次の汎用コマンドが定義されています。次の構成状態の変更操作がサポートされています。

configure

ポートに接続されている USB デバイスがある場合、このコマンドにより、Solaris で使用できるようにそのデバイスの構成とすべての設定が試みられます。このコマンドでは、必要に応じて暗黙的に、connect (disconnect の逆) が実行されます。このポートのデバイスがすでに構成されている場合、このコマンドは何も実行せず、エラーメッセージを返します。このコマンドが正常に実行されると、デバイスを Solaris で使用できるようになります。

disconnect

ap_idunconfigure を実行し (まだ unconfigured になっていない場合)、受容体を disconnected 状態に移行します。これは、デバイスがまだポートに接続されていても実行されます。ドライバを見つけることができ、デバイスの列挙と構成に問題がないと仮定して、cfgadm –c configure を発行するか、デバイスを物理的にホットプラグ接続すると、デバイスでは、受容体の状態が connected に、占有装置の状態が configured に戻ります。

unconfigure

ポートに接続されているデバイスを Solaris で使用できないようにします (オフラインにします)。成功した場合、cfgadm により、この ap_id の占有装置の状態は unconfigured と報告されます。configureap_id に発行すると (成功した場合)、デバイスをポートに物理的にホットプラグ接続した場合と同様に、その占有装置の条件は configured (オンライン) に戻ります。

–f

サポートされていません。

–h ap_id

ヘルプオプションと任意の USB 接続点を組み合わせて使用して、USB 固有のヘルプを表示できます。

–l[v]

–l オプションは、cfgadm(8) で説明されているように機能します。–v オプションと組み合わせて使用すると、Information フィールドに次の USB 固有の情報が表示されます。

  • Mfg: 製造元文字列 (iManufacturer)

  • Product: 製品文字列 (iProduct)

  • NConfigs: デバイスでサポートされる構成の合計数 (bNumConfigurations)

  • Config: 10 進数の現在の構成設定 (構成値ではなく、構成インデックス)

  • 現在の構成の構成文字列記述子 (iConfiguration)

これらのフィールドの説明については、USB の仕様を参照してください。

–ohardware_options

ハードウェアオプションは、ハードウェア固有のコマンド –x usb_config でのみサポートされます。使用できるオプションの説明については、下記のそのコマンドの説明を参照してください。

–s listing_options

select サブオプションを使用すると、クラス USB の接続点を一覧表示できます。cfgadm(8) を参照してください。

–xhardware_function

次のハードウェア固有の機能が定義されています。

usb_config –o config=n

このコマンドでは、–o オプションを使用して必須の config 値を指定する必要があります。

ap_id の複数構成 USB デバイスの USB 構成を、構成インデックス n に設定します。これ以降、デバイスはこの構成に設定され、この設定は、デバイスのリブート、ホットリムーブ、および構成解除/構成の後も保持されます。

n の有効な値の範囲は、0 から (Nconfigs -1) までです。disconnect に続けて configure を実行すると、デバイスはリセットされます。configure により、デバイスは新しい構成設定に構成されます。

いずれかの手順が失敗した場合、構成ファイルとデバイスが以前の状態に復元され、エラーメッセージが発行されます。

usb_reset

デバイスのソフトウェアリセット (再列挙) を実行します。これは、デバイスを取り外して再度挿入するのと同等の意味を持ちます。ハブで個々のポートの電源再投入がサポートされている場合、ハブのポートで電源が一度切断され、再度投入されます。

接続されているデバイスがハブである場合、この機能には、そのハブと、そのハブをルートとするツリーの下位のデバイスをリセットするという効果があります。

いずれかの手順が失敗した場合、デバイスが以前の状態に復元され、エラーメッセージが発行されます。

状態の表: 接続点の状態とコマンド:

Valid states:
    empty/unconfigured         → no device connected

    disconnected/unconfigured  → logically disconnected,
                                  unavailable,
                                  devinfo node removed,
                                  device physically connected

    connected/unconfigured     → logically connected,
                                  unavailable,
                                  devinfo node present

    connected/configured       → connected, available

次の表は、操作またはコマンドの実行による状態の移行を示しています。

current state      operation           new state
-------------      ---------           ---------
empty/
unconfigured:
              device plugged in:     connected/configured or
                                     connected/unconfigured
                                     (if enumeration failed)
              device removed:        n/a
              cfgadm -c unconfigure: empty/unconfigured
              cfgadm -c configure:   empty/unconfigured
              cfgadm -c disconnect:  empty/unconfigured
                                     (no-op and error)

disconnected/
unconfigured:
              device plugged in:     n/a
              device removed:        empty/unconfigured
              cfgadm -c unconfigure: disconnected/unconfigured
              cfgadm -c configure:   connected/configured, or
                                     connected/unconfigured
                                     (if reenumeration failed)
             cfgadm -c disconnect:   disconnected/unconfigured

connected/unconfigured:
             device plugged in:      n/a
             device removed:         empty/unconfigured
             cfgadm -c unconfigure:  connected/unconfigured
             cfgadm -c configure:    connected/configured, or
                                     connected/unconfigured
                                     (if reenumeration failed)
             cfgadm -c disconnect:   disconnected/unconfigured

connected/configured:
             device plugged in:      n/a
             device removed:         empty/unconfigured or
                                     connected/configured,
                                     but with ap condition
                                     'unusable' if device
                                     was open when removed
             cfgadm -c unconfigure:  connected/unconfigured
             cfgadm -c configure:    connected/configured
             cfgadm -c disconnect:   disconnected/unconfigured

使用例 1 すべての USB デバイスのステータスの一覧表示

次のコマンドは、システム上のすべての USB デバイスのステータスを一覧表示します。


# cfgadm
Ap_Id           Type         Receptacle   Occupant     Condition
usb0/1          USB-hub      connected    configured   ok
usb0/2          unknown      empty        unconfigured ok
usb0/1.1        USB-storage  connected    configured   ok
usb0/1.2        unknown      empty        unconfigured ok
usb0/1.3        unknown      empty        unconfigured ok
usb0/1.4        USB-device connected    configured   ok

cfgadm では、現時点では個々のインタフェースを制御できないため、ap_id usb0/1.4USB-device デバイスが単一のユニットとして処理されています。

使用例 2 デバイスが接続されていないポートのステータスの一覧表示

次のコマンドは、デバイスが接続されていないポートのステータスを一覧表示します。

example# cfgadm -l usb0/1.3
Ap_Id           Type         Receptacle   Occupant     Condition
usb0/1.3        unknown      empty        unconfigured ok       
使用例 3 デバイスが接続されている同じポートのステータスの一覧表示

次のコマンドは、デバイスが物理的に接続され、問題なく構成されたあとの、同じポートのステータスを一覧表示します。

example# cfgadm -l usb0/1.3
Ap_Id           Type         Receptacle   Occupant     Condition
usb0/1.3        USB-hub      connected    configured   ok
使用例 4 既存の USB デバイスの構成解除

次のコマンドは、usb0/1.3 に接続された USB デバイスを構成解除し、ap_id のステータスを表示します。

example# cfgadm -c unconfigure usb0/1.3
Unconfigure the device: /devices/pci@0,0/pci8086,7112@7,2/hub@2:2.3
This operation suspends activity on the USB device
Continue (yes/no)?

Enter:

y

example# cfgadm -l usb0/1.3
Ap_Id           Type         Receptacle   Occupant     Condition
usb0/1.3        unknown      connected    unconfigured ok
使用例 5 既存の USB デバイスの構成解除と論理的な切断

次のコマンドは、usb0/1.3 に接続された USB デバイスを構成解除し、論理的に切断します。

example# cfgadm -c disconnect usb0/1.3
Disconnect the device: /devices/pci@0,0/pci8086,7112@7,2/hub@2:2.3
This operation suspends activity on the USB device 
Continue (yes/no)?

Enter:

y

example# cfgadm -l usb0/1.3
Ap_Id         Type         Receptacle     Occupant        Condition
usb0/1.3      unknown      disconnected   unconfigured    ok    

disconnect の実行は、cfgadm によって最初に unconfigure が実行されることを暗黙的に意味します。デバイスがまだ物理的に接続されていても、受容体のステータスは disconnected と示されています。この場合、物理的なホットプラグ接続を行うか、または ap_idcfgadm –c configure を使用すると、オンラインに戻ります。

使用例 6 以前に構成解除した USB デバイスの構成

次のコマンドは、以前に usb0/1.3 に接続されていた USB デバイスを構成します。

example # cfgadm -yc configure usb0/1.3
example# cfgadm -l usb0/1.3
Ap_Id           Type         Receptacle   Occupant     Condition
usb0/1.3        unknown      connected    configured   ok
使用例 7 USB デバイスのリセット

次のコマンドは、USB デバイスをリセットします。

example# cfgadm -x usb_reset usb0/1.3
Reset the device: /devices/pci@0,0/pci8086,7112@7,2/hub@2:2.3
This operation suspends activity on the USB device 
Continue (yes/no)?

Enter:

y
使用例 8 単一の USB デバイスに関する詳細情報の表示

次のコマンドは、単一の USB デバイスに関する詳細情報を表示します。このデバイスでは、次の USB 固有の情報が「Information」フィールドに示されています。

  • 製造元文字列: Iomega

  • 製品文字列: USB Zip 250

  • サポートされる構成数: 1

  • 現在アクティブな構成: 0

  • 構成 0 の構成文字列記述子: Default

example# cfgadm -lv  usb0/1.5
Ap_Id                 Receptacle   Occupant     Condition  Information
When         Type         Busy         Phys_Id
usb0/1.5     connected    configured   ok         Mfg:"Io
mega"  Product:"USB Zip 250"  NConfigs:1  Config:0 : Default
example# cfgadm -l -s "cols=ap_id:info" usb0/1.5
Ap_Id                         Information
usb0/1.5                      Mfg:"Iomega"  Product:"USB Zip 250"  
NConfigs:1  Config:0 : Default
使用例 9 すべての USB デバイスに関する詳細情報の表示

次のコマンドは、システム上のすべての USB デバイスに関する詳細情報を表示します。

example# cfgadm -l -s "select=class(usb),cols=ap_id:info"
Ap_Id                         Information 
usb0/1                        Mfg:<undefined>  Product:<undefined>  
NConfigs:1  Config:0 <no cfg str descr>
usb0/2             
usb0/1.1                      Mfg:<undefined>  Product:<undefined>  
NConfigs:1  Config:0 <no cfg str descr>
usb0/1.2         
usb0/1.3         
usb0/1.4                      Mfg:"Wizard"  Product:"Modem/ISDN"  
NConfigs:3  Config:1 : V.90 Analog Modem
usb0/1.5                      Mfg:"Iomega"  Product:"USB Zip 250"  
NConfigs:1  Config:0 : Default
usb0/1.6                      Mfg:"SOLID YEAR"  Product:"SOLID YEAR 
USB"NConfigs:1  Config:0 <no cfg str descr>
usb0/1.7

ap_id のみが含まれている行は、空のポートです。これらは、フィルタ処理によって除外できます。次の例では、接続されたデバイスがある USB ap_id と、それらのデバイスの情報のみが示されます。

example# cfgadm -l -s "select=class(usb),cols=ap_id:info" | grep Mfg
usb0/1                        Mfg:<undefined>  Product:<undefined>  
NConfigs:1  Config:0 <no cfg str descr>
usb0/1.1                      Mfg:<undefined>  Product:<undefined>  
NConfigs:1  Config:0 <no cfg str descr>
usb0/1.4                      Mfg:"Wizard"  Product:"Modem/ISDN"  
NConfigs:3  Config:1 : V.90 Analog Modem
usb0/1.5                      Mfg:"Iomega"  Product:"USB Zip 250"  
NConfigs:1  Config:0 : Default
usb0/1.6                      Mfg:"SOLID YEAR"  Product:"SOLID YEAR USB" 
Config:0 <no cfg str descr>
使用例 10 複数構成 USB デバイスに関する情報の一覧表示

次の例では、複数構成 USB デバイスに関する情報が一覧表示されます。

NConfigs フィールドに注目してください。このデバイスで使用できる構成数は、01、および 2 (0 - (NConfigs-1)) です。

example# cfgadm -l -s "cols=ap_id:info" usb0/1.4
Ap_Id                         Information
usb0/1.4                      Mfg:"Wizard"  Product:"Modem/ISDN"  
NConfigs:3  Config:1 V.90 Analog Modem"
使用例 11 複数構成 USB デバイスの現在の構成の設定

次の例では、複数構成 USB デバイスの現在の構成が設定されます。

example# cfgadm -o config=2 -x usb_config usb0/1.4
Setting the device: /devices/pci@1f,2000/usb@1/device@3
to USB configuration 2
This operation suspends activity on the USB device
Continue (yes/no)? 

Enter:

y

USB configuration changed successfully.

まったく同じタイプの複数のデバイスが同じバス上にある場合は、デバイスのパスを確認して、デバイスの正しいインスタンスが参照されていることを確認するようにしてください。この情報は、「Information」フィールドに示されています。

ファイル

/usr/lib/cfgadm/usb.so.1

汎用的な USB デバイス管理のためのハードウェア固有ライブラリ

属性

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

属性タイプ
属性値
使用条件
system/dynamic-reconfiguration

関連項目

config_admin(3CFGADM)scsa2usb(4D)usba(4D)attributes(7)cfgadm(8)

USB 1.1 の仕様 (www.usb.org)

cfgadm(8) では、現在アプリケーションによって開かれている USB デバイスの構成解除、切断、リセット、または構成の変更を行うことはできません。また、ハブの階層内のデバイスがアプリケーションによって開かれている場合、そのハブでこれらの操作を実行すると失敗します。現在使用中の USB 外部ストレージデバイスの構成解除については、scsa2usb(4D) を参照してください。

スーパーユーザーのみが、接続点で機能を実行できます。ただし、接続点の一覧表示については、スーパーユーザーである必要はありません。