hotplug - ホットプラグコネクタおよびポートの構成
hotplug list [-c] [-d] [-l] [-v] [path [connection]]
hotplug online path port
hotplug offline [-f] [-q] [-r] path port
hotplug enable [-f] [path] connector
hotplug disable [-f] [-q] [-r] [path] connector
hotplug poweron [path] connector
hotplug poweroff [-f] [-q] [-r] [path] connector
hotplug set -o options [path] connector
hotplug get -o options [path] connector
hotplug install path port
hotplug uninstall [-f] [-q] [-r] path port
hotplug -?
hotplug コマンドは、ホットプラグ接続を管理するために使用します。接続はコネクタまたはポートです。ホットプラグコネクタは、コンポーネントを取り付けまたは取り外しできるシステム内の物理ポイントの表現です。ホットプラグポートは、システムへのデバイス接続を管理するシステムデバイスツリー内の論理ポイントの表現です。
hotplug コマンドは、PCI Express バスおよび標準 PCI ホットプラグ機能を実装する PCI バスのホットプラグコネクタに対するホットプラグ操作のみをサポートします。PCI Express ファブリックを備えたシステム内の PCI Express バスおよび PCI バス上のホットプラグポートもサポートされます。将来、追加のバスがサポートされる可能性があります。
hotplug コマンドは、次の種類のオブジェクトに対して動作します。
ホットプラグコネクタとホットプラグポートは、Solaris のデバイスツリーに統合されています。コネクタとポートの名前は、それらのバスコントローラに対してのみ一意です。コネクタを一意に参照するにはデバイスパスが必要であり、ポートを一意に参照するにはデバイスの親のパスが必要です。
hotplug コマンドは、状態変更操作のサブコマンドでユーザーが物理的なホットプラグコネクタのみを指定した場合にも対応できます。そのようなコネクタが存在しない場合、コマンドは失敗します。システム内に同じ名前のコネクタが複数存在する場合は、状態変更操作でユーザーとの対話によって操作が必要なコネクタを決定します。後述の「使用例」のセクションを参照してください。
ハードウェアコンポーネントが物理的な取り付けまたは取り外しをサポートしている場合、ホットプラグコネクタはこのアクションが行われる可能性のある場所を表します。コネクタが存在する場合は、それに依存するポートとデバイスノードの階層が存在します。
ハードウェアが物理的なホットプラグ操作をサポートしない場合でも、すべてのデバイスノードを仮想的にホットプラグで接続できます。ホットプラグポートは、システムデバイスツリー内のデバイスノードとその親ノードの間にあります。これは、デバイスノードとその依存関係を管理できる場所を表します。
ホットプラグ接続は、ホットプラグコネクタまたはホットプラグポートのいずれかを指す一般名称です。
ホットプラグコネクタおよびポートは、状態モデルに従って管理されます。hotplug コマンドでは、システム内のホットプラグ接続に関する情報を一覧表示したり、特定のホットプラグ接続に対する状態変更操作を開始したりできます。
ホットプラグコネクタは次の状態になる可能性があります。
コネクタにコンポーネントが物理的に取り付けられていません。
コネクタにコンポーネントが物理的に取り付けられていますが、コンポーネントの電源が切られています。コンポーネントが使用されていません。
コネクタにコンポーネントが物理的に取り付けられており、コンポーネントの電源が投入されています。コンポーネントが無効になっており、使用されていません。
コネクタにコンポーネントが物理的に取り付けられています。コンポーネントの電源が投入されており、コンポーネントが検索およびテストされています。コンポーネントが有効になっており、その機能を表すデバイスが使用可能です。
ホットプラグポートは次の状態になる可能性があります。
ホットプラグポートのデバイスが存在しません。
ホットプラグポートのデバイスが存在しますが、デバイスが検索されておらず、デバイスドライバが接続されていません。デバイスが使用されていません。
ホットプラグポートのデバイスが存在し、デバイスが検索されています。デバイスドライバが接続されておらず、デバイスが使用されていません。
ホットプラグポートのデバイスが存在し、そのデバイスドライバが完全に接続されています。デバイスが使用されています。
ホットプラグポートのデバイスが存在し、そのデバイスドライバが完全に接続されています。デバイスが使用されていますが、完全には動作していません。保守または障害管理の操作がデバイスに影響を与えています。デバイスが保守状態に移行する理由はさまざまです。これは、保守状態の下のサブ状態によって表されます。現在は 1 つのサブ状態のみが定義されています。
デバイスがライブサスペンドしています。
hotplug コマンドは、各ホットプラグコネクタのバスの非公開プロパティーにもアクセスできます。バスの非公開プロパティーの現在値を表示できます。バスの非公開プロパティーに新しい値を直接設定できます。
サポートされているサブコマンドは次のとおりです。
ホットプラグコネクタ、ポート、およびそれらの関連デバイスの情報を表示します。ホットプラグコネクタとホットプラグポートは、Solaris のデバイスツリー階層に統合されています。したがって、list サブコマンドでは、ホットプラグコネクタやホットプラグポートの場所を示すために挿入された追加情報とともにデバイスノードの階層が表示されます。ホットプラグコネクタの名前は角括弧で囲まれ、ホットプラグポートの名前は山括弧で囲まれています。各ホットプラグ接続の現在の状態は、その名前の横に表示されます。
ホットプラグポートの状態を online 状態に変更します。
ホットプラグポートの状態を offline 状態に変更します。
ホットプラグコネクタの状態を enabled 状態に変更します。ホットプラグコネクタの依存ポートは、すべて自動的に検索され、online 状態に初期化されます。
接続されたデバイスの検索中にエラーが発生した場合は、エラーの詳細が診断のために Solaris Fault Manager に報告されます。エラーによっては、–f オプションを使用した強制的な操作によってエラーを無視できる場合があります。
ホットプラグコネクタの状態を enabled 状態から powered 状態に変更します。online 状態になっているすべての依存ポートは、最初に port-present 状態に移行します。
ホットプラグコネクタの状態を present 状態から powered 状態に変更します。
ホットプラグコネクタの状態を powered または enabled 状態から present 状態に変更します。online 状態になっているすべての依存ポートは、最初に port-present 状態に移行し、次に削除されます。
ホットプラグコネクタのバス固有のプロパティーを設定します。指定されるオプション文字列は、getsubopt(3C) によって解析できるバス固有の名前と値ペアの文字列です。これらの名前と値は、バス固有の機能を実行するため、指定されたホットプラグコネクタを管理するバスコントローラに直接渡されます。
ホットプラグコネクタのバス固有のプロパティーの現在値を表示します。指定されるオプション文字列は、getsubopt(3C) によって解析できるバス固有の名前付きプロパティーの文字列です。これらの名前は、どのプロパティーを返すべきかを指定するためにバスコントローラに直接渡されます。その後、個々の名前付きプロパティーの現在値が表示されます。
install および uninstall サブコマンドは、ポートのドライバがサポートできるサービスをインストールおよびアンインストールします。
install サブコマンドは、ホットプラグポートのデバイスのドライバがサポートできるサービスをインストールします。
このサブコマンドは、たとえば PCIe I/O 仮想化デバイスの物理機能のポートに対して適用できます。ポートが ONLINE 状態に昇格し (まだその状態でない場合)、次に物理機能 (ドライバ) がサポートする仮想機能がインストールされます。個々の仮想機能を指定された物理機能の依存関係として表すために、新しいホットプラグポートが作成されます。新しく作成されたポートは、OFFLINE 状態で開始されます。
uninstall サブコマンドは、ホットプラグポートのデバイスのドライバがサポートできるサービスをアンインストールします。
このサブコマンドは、PCIe I/O 仮想化デバイスの物理機能のポートに対して適用できます。指定されたホットプラグポートに仮想機能の依存ポートがある場合は、それらの依存ポートと対応する仮想機能ノードが削除されます。
サポートしているオプションは、次のとおりです。
接続およびデバイスノードへのフルパスを表示します。デフォルトでは、list サブコマンドはホットプラグコネクタ、ポート、およびデバイスをツリー形式で表示します。このオプションを使用して、個々の接続およびデバイスノードへのフルパスを表示できます。
すべての物理的なホットプラグコネクタの現在のステータスをまとめた表を表示します。デバイスのトポロジと階層情報は含まれません。一般に、物理的なホットプラグコネクタの名前は一意であるべきです。システム内に同じ名前のコネクタが複数存在する場合、hotplug は同じ名前のホットプラグコネクタを示すメッセージを表示し、それらのコネクタを区別するための情報の入力を求めます。後述の「使用例」を参照してください。
デバイスノードの結合ドライバ名とインスタンス数を表示します。デフォルトでは、list サブコマンドはホットプラグコネクタ、ポート、およびデバイスのみを表示します。このオプションを使用して、デバイスノードの結合ドライバ名とインスタンス数を表示できます。
詳細な使用状況を表示します。デフォルトでは、list サブコマンドはホットプラグコネクタ、ポート、およびデバイスのみを表示します。このオプションを使用して、デバイスの現在の消費状況に関する詳細情報を表示できます。例として、個々のデバイスに関連してマウントされたファイルシステムや plumb されたネットワークインタフェースなどがあります。
–v オプションでは、ZFS の制御下にあるディスクの情報は表示されません。
操作を強制的に実行します。現在使用されているリソースに影響を与える一部の状態変更操作は、警告とともに失敗します。強制的な操作では、これらの警告が無視され、処理が続行されます。
このオプションは、きわめて慎重に使用すべきです。
対話機能を無効にします。このフラグが指定されず、あいまいな入力が検出された場合は、コマンドがただちに終了し、問題を示す一意の終了ステータスが返されます。
Query the operation.状態変更操作を実際に実行せずに、操作が成功するかどうかを予測するためのテストを実行します。失敗する場合は、操作を実際に実行した場合に予期されるエラーメッセージを表示します。
すべての失敗を予測することはできません。照会時に成功した操作でも、実際に実行したときは別の理由で失敗する可能性があります。
このオプションはシステムの状態を実際には変更しません。
Resources are removed.This uses extreme force to change the state of a hotplug connector or hotplug port.The assumption is that the connected devices are removed from the system and failure is not an option.
If impacted resources are currently in use, the usage will be forcibly terminated.This is different from the –f option which could still fail if an operation impacts critical resources.There can be negative consequences to the system and running applications with this option, so it must be used with extreme caution.
This option is not compatible with the –q option.
set または get コマンドのバス固有のプロパティーを指定します。options の文字列は、getsubopt(3C) の構文規約に従います。
get サブコマンドの場合は、使用可能な特殊オプションが 2 つあります。特殊オプションの値 help は、サポートされているすべてのプロパティーとそれらの取り得る値を表示します。特殊オプションの値 all は、サポートされているすべてのプロパティーの現在値を表示します。
set サブコマンドの場合は、使用可能な特殊オプションが 1 つあります。特殊オプションの値 help は、サポートされているすべての設定可能なプロパティーとそれらの取り得る値を表示します。
バスコントローラによってサポートされているプロパティーについては、「注意事項」のセクションを参照してください。
コマンドの正しい使用法に関する簡単なヘルプメッセージを表示します。
次のコマンドは、すべてのホットプラグ接続を表示します。
# hotplug list -v pci@0,0 pci108e,534a@2,1 <pci.2,1> ONLINE [pci30] EMPTY pci10de,5d@e <pci.e,0> ONLINE display@b <pci.b,0> ONLINE [NEM0] ENABLED pci108e,534a@a,0 <pci.a,0> ONLINE { Network interface nge0 } { nge0: hosts IP addresses: 10.0.0.1 } pci108e,534a@a,1 <pci.a,1> (MAINTENANCE) [NEM1] (EMPTY) pci108e,534a@c <pci.c,0> OFFLINE pci108e,534a@d <pci.d,0> ONLINE pci1028,40d@0 <pci.0,0> (MAINTENANCE-SUSPENDED, "activities=dma+pio+intr,reason=resource-rebalance") { Network interface bge0 } { bge0: hosts IP addresses: 10.0.1.1 }
ホットプラグ接続およびデバイスのフルパスを表示するには、次のコマンドを入力します。
# hotplug list -l /pci@0,0 /pci@0,0 <pci.0,0> OFFLINE /pci@0,0/pci108e,4341 /pci@0,0 <pci.1,0> OFFLINE /pci@0,0/pci8086,3408 /pci@0,0 <pci.3,0> ONLINE /pci@0,0/pci8086,340a@3 /pci@0,0/pci8086,340a@3 [Slot2] EMPTY /pci@0,0 <pci.5,0> ONLINE /pci@0,0/pci8086,340c@5 /pci@0,0/pci8086,340c@5 [Slot1] ENABLED /pci@0,0/pci8086,340c@5 <pci.0,0> ONLINE /pci@0,0/pci8086,340c@5/pci111d,8018@0 /pci@0,0 <pci.7,0> ONLINE /pci@0,0/pci8086,340e@7 /pci@0,0/pci8086,340e@7 [pcie4] ENABLED /pci@0,0 <pci.9,0> ONLINE /pci@0,0/pci8086,3410@9 /pci@0,0/pci8086,3410@9 [pcie3] ENABLED /pci@0,0 <pci.13,0> OFFLINE /pci@0,0/pci8086,342d /pci@0,0 <pci.14,0> OFFLINE /pci@0,0/pci8086,342e
デバイスの結合ドライバ名とインスタンス数を表示するには、次のコマンドを入力します。
# hotplug list -d pci@0,0 npe#0 pci108e,4341 <pci.0,0> OFFLINE #0 pci8086,3408 <pci.1,0> OFFLINE pcieb#0 pci8086,340a@3 <pci.3,0> ONLINE pcieb#1 [Slot2] EMPTY pci8086,340c@5 <pci.5,0> ONLINE pcieb#2 [Slot1] ENABLED pci111d,8018@0 <pci.0,0> ONLINE pcieb#0 pci111d,8018@2 <pci.2,0> ONLINE pcieb#6 pci108e,f1bc@0 <pci.0,0> ONLINE e1000g#0 pci108e,f1bc@0,1 <pci.0,1> OFFLINE e1000g#1 pci8086,340e@7 <pci.7,0> ONLINE pcieb#3 [pcie4] ENABLED pci8086,3410@9 <pci.9,0> ONLINE pcieb#4 [pcie3] ENABLED pci8086,342d <pci.13,0> OFFLINE #0 pci8086,342e <pci.14,0> OFFLINE #0
すべての物理的なホットプラグコネクタのステータスを表示するには、次のコマンドを入力します。
# hotplug list -c Connection State Description --------------------------------------------------------- NEM0 ENABLED PCIe-Native PCI-EM0 ENABLED PCIe-Native NEM1 ENABLED PCIe-Native PCI-EM1 ENABLED PCIe-Native
システム内に同じ名前のコネクタが複数存在する場合の表は次のとおりです。
# hotplug list -c Connection Note State Description ---------------------------------------------------------- NEM0 ENABLED PCIe-Native PCI-EM0 *1 ENABLED PCIe-Native PCI-EM0 *2 ENABLED PCIe-Native NEM1 ENABLED PCIe-Native Note: Multiple connectors with the same name exist: [1] PCI-EM0 /pci@0,0/pci108e,4341@1a,2 [2] PCI-EM0 /pci@1,0/pci108e,4341@1a,2使用例 2 状態変更操作中の障害を報告する
状態変更操作が失敗した場合は、障害についての説明が表示されます。システムが現在使用している依存デバイスを含むホットプラグポートをオフラインにしようとすると、次のように失敗することがあります。
# hotplug offline /pci@0,0/pci10de,5d@e pci.a,0 ERROR: devices or resources are busy. pci108e,534a@a,0: { Network interface nge0 } { nge0: hosts IP addresses: 10.0.0.1 } { Plumbed IP Address }使用例 3 状態変更操作中のユーザーとの対話を有効にする
システム内に同じ名前のコネクタが複数存在する場合は、状態変更操作でユーザーとの対話によって操作が必要なコネクタを指定します。
# hotplug enable PCI-EM0 Multiple connectors with the same name exist: [1] PCI-EM0 /pci@0,0/pci108e,4341@1a,2 [2] PCI-EM0 /pci@1,0/pci108e,4341@1a,2 Please select a connector, then press ENTER:使用例 4 バス固有のプロパティーと値を表示する
次のコマンドは、サポートされているすべてのバス固有のプロパティーとそれらの取り得る値を表示します。
# hotplug get -o help /pci@0,0 pci.2,1 power_led=<on|off|blink> fault_led=<on|off|blink> active_led=<on|off|blink> attn_led=<on|off|blink> card_type=<type description> board_type=<type description>使用例 5 バス固有のオプションを表示する
次のコマンドは、PCI ホットプラグコネクタのカードタイプと電源 LED の現在の状態を表示します。
# hotplug get -o card_type,power_led /pci@0,0 pci.2,1 card_type=fibre power_led=on使用例 6 バス固有のプロパティーを設定する
次のコマンドは、PCI ホットプラグコネクタのアテンション LED をオンに設定します。
# hotplug set -o attn_led=on /pci@0,0 pci.2,1使用例 7 ポートの依存関係をインストールする
次のコマンドは、IOV 物理機能の依存ポートをインストールし、探索された結果の IOV 仮想機能を表示します。
# hotplug install /pci@400/pci@1/pci@0/pci@4 pci.0,1 # hotplug list -v /pci@400/pci@1/pci@0/pci@4 pci.0,1 <pci.0,1> (ONLINE) { IOV physical function } { IOV virtual function 'pci.0,81' } { IOV virtual function 'pci.0,83' } { IOV virtual function 'pci.0,85' } { IOV virtual function 'pci.0,87' } <pci.0,81> (OFFLINE) ethernet@0,81 <pci.0,83> (OFFLINE) ethernet@0,83 <pci.0,85> (OFFLINE) ethernet@0,85 <pci.0,87> (OFFLINE) ethernet@0,87使用例 8 ポートの依存関係をアンインストールする
次のコマンドは、IOV 物理機能の依存ポートをアンインストールしようとしますが、依存する IOV 仮想機能がビジー状態の場合は失敗します。
# hotplug uninstall /pci@400/pci@1/pci@0/pci@4 pci.0,0 ERROR: devices or resources are busy. ethernet@0,81: { Network interface igvbf1 } { igvbf1: hosts IP addresses: 10.0.0.1 } { Plumbed IP Address }
正常終了。
無効なコマンド行オプションが指定された。
指定されたパスまたは接続が存在しません。
致命的なエラーが発生しました。1 つ以上のエラーメッセージが標準エラーに表示されます。
ホットプラグサービスが使用できません。
指定された接続名が複数のポートを指しています。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|
getsubopt(3C), attributes(7), cfgadm(8), hotplugd(8)
サポートされている I/O バスがないシステムでは、次のエラーメッセージが表示されます。
ERROR: there are no connections to display. (See hotplug(8) for more information.)
このエラーが表示された場合は、hotplug ではなく cfgadm(8) コマンドを介してホットプラグ操作をサポートするほかの I/O デバイスがまだシステムに存在する可能性があります。
有効化操作の処理中にハードウェアエラーが発生した場合は、次のエラーメッセージが表示されます。
ERROR: hardware or driver specific failure.
このエラーが表示された場合は、ハードウェアエラーの詳細が診断のために Solaris Fault Manager に報告された可能性があります。
hotplug コマンドを使用するための前提条件として、hotplug サービス (FMRI svc:/system/hotplug) を有効にする必要があります。このサービスは、デフォルトで有効になっています。See hotplugd(8).
状態変更操作、すべての依存ポートのインストール、およびアンインストールを行うには、solaris.hotplug.modify 承認が付与されている必要があります。または、その承認を含む権利プロファイル「Hotplug Management」を付与する方法もあります。
RCM フレームワークから使用法に関する詳細な情報が収集されます。その形式と内容は変更される可能性があります。
PCI バスコントローラでは、次のバス固有のプロパティーがサポートされます。
スロットの特定の LED の状態。この値は、on、off、blink のいずれかです。
これらはすべて get サブコマンドで使用できますが、attn_led プロパティーだけは set サブコマンドでも使用できます。
スロットのカードまたはボードのタイプ。
これらはすべて get サブコマンドで使用できますが、どれも set サブコマンドでは使用できません。