Go to main content

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

印刷ビューの終了

更新: 2022年7月27日
 
 

hotplug(8)

名前

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 コマンドは、次の種類のオブジェクトに対して動作します。

path

ホットプラグコネクタとホットプラグポートは、Solaris のデバイスツリーに統合されています。コネクタとポートの名前は、それらのバスコントローラに対してのみ一意です。コネクタを一意に参照するにはデバイスパスが必要であり、ポートを一意に参照するにはデバイスの親のパスが必要です。

hotplug コマンドは、状態変更操作のサブコマンドでユーザーが物理的なホットプラグコネクタのみを指定した場合にも対応できます。そのようなコネクタが存在しない場合、コマンドは失敗します。システム内に同じ名前のコネクタが複数存在する場合は、状態変更操作でユーザーとの対話によって操作が必要なコネクタを決定します。後述の「使用例」のセクションを参照してください。

connector

ハードウェアコンポーネントが物理的な取り付けまたは取り外しをサポートしている場合、ホットプラグコネクタはこのアクションが行われる可能性のある場所を表します。コネクタが存在する場合は、それに依存するポートとデバイスノードの階層が存在します。

port

ハードウェアが物理的なホットプラグ操作をサポートしない場合でも、すべてのデバイスノードを仮想的にホットプラグで接続できます。ホットプラグポートは、システムデバイスツリー内のデバイスノードとその親ノードの間にあります。これは、デバイスノードとその依存関係を管理できる場所を表します。

connection

ホットプラグ接続は、ホットプラグコネクタまたはホットプラグポートのいずれかを指す一般名称です。

ホットプラグコネクタおよびポートは、状態モデルに従って管理されます。hotplug コマンドでは、システム内のホットプラグ接続に関する情報を一覧表示したり、特定のホットプラグ接続に対する状態変更操作を開始したりできます。

ホットプラグコネクタは次の状態になる可能性があります。

empty

コネクタにコンポーネントが物理的に取り付けられていません。

present

コネクタにコンポーネントが物理的に取り付けられていますが、コンポーネントの電源が切られています。コンポーネントが使用されていません。

powered

コネクタにコンポーネントが物理的に取り付けられており、コンポーネントの電源が投入されています。コンポーネントが無効になっており、使用されていません。

enabled

コネクタにコンポーネントが物理的に取り付けられています。コンポーネントの電源が投入されており、コンポーネントが検索およびテストされています。コンポーネントが有効になっており、その機能を表すデバイスが使用可能です。

ホットプラグポートは次の状態になる可能性があります。

port-empty

ホットプラグポートのデバイスが存在しません。

port-present

ホットプラグポートのデバイスが存在しますが、デバイスが検索されておらず、デバイスドライバが接続されていません。デバイスが使用されていません。

offline

ホットプラグポートのデバイスが存在し、デバイスが検索されています。デバイスドライバが接続されておらず、デバイスが使用されていません。

online

ホットプラグポートのデバイスが存在し、そのデバイスドライバが完全に接続されています。デバイスが使用されています。

maintenance

ホットプラグポートのデバイスが存在し、そのデバイスドライバが完全に接続されています。デバイスが使用されていますが、完全には動作していません。保守または障害管理の操作がデバイスに影響を与えています。デバイスが保守状態に移行する理由はさまざまです。これは、保守状態の下のサブ状態によって表されます。現在は 1 つのサブ状態のみが定義されています。

maintenance-suspended

デバイスがライブサスペンドしています。

hotplug コマンドは、各ホットプラグコネクタのバスの非公開プロパティーにもアクセスできます。バスの非公開プロパティーの現在値を表示できます。バスの非公開プロパティーに新しい値を直接設定できます。

サブコマンド

サポートされているサブコマンドは次のとおりです。

list

ホットプラグコネクタ、ポート、およびそれらの関連デバイスの情報を表示します。ホットプラグコネクタとホットプラグポートは、Solaris のデバイスツリー階層に統合されています。したがって、list サブコマンドでは、ホットプラグコネクタやホットプラグポートの場所を示すために挿入された追加情報とともにデバイスノードの階層が表示されます。ホットプラグコネクタの名前は角括弧で囲まれ、ホットプラグポートの名前は山括弧で囲まれています。各ホットプラグ接続の現在の状態は、その名前の横に表示されます。

online

ホットプラグポートの状態を online 状態に変更します。

offline

ホットプラグポートの状態を offline 状態に変更します。

enable

ホットプラグコネクタの状態を enabled 状態に変更します。ホットプラグコネクタの依存ポートは、すべて自動的に検索され、online 状態に初期化されます。

接続されたデバイスの検索中にエラーが発生した場合は、エラーの詳細が診断のために Solaris Fault Manager に報告されます。エラーによっては、–f オプションを使用した強制的な操作によってエラーを無視できる場合があります。

disable

ホットプラグコネクタの状態を enabled 状態から powered 状態に変更します。online 状態になっているすべての依存ポートは、最初に port-present 状態に移行します。

poweron

ホットプラグコネクタの状態を present 状態から powered 状態に変更します。

poweroff

ホットプラグコネクタの状態を powered または enabled 状態から present 状態に変更します。online 状態になっているすべての依存ポートは、最初に port-present 状態に移行し、次に削除されます。

set

ホットプラグコネクタのバス固有のプロパティーを設定します。指定されるオプション文字列は、getsubopt(3C) によって解析できるバス固有の名前と値ペアの文字列です。これらの名前と値は、バス固有の機能を実行するため、指定されたホットプラグコネクタを管理するバスコントローラに直接渡されます。

get

ホットプラグコネクタのバス固有のプロパティーの現在値を表示します。指定されるオプション文字列は、getsubopt(3C) によって解析できるバス固有の名前付きプロパティーの文字列です。これらの名前は、どのプロパティーを返すべきかを指定するためにバスコントローラに直接渡されます。その後、個々の名前付きプロパティーの現在値が表示されます。

install および uninstall サブコマンドは、ポートのドライバがサポートできるサービスをインストールおよびアンインストールします。

install

install サブコマンドは、ホットプラグポートのデバイスのドライバがサポートできるサービスをインストールします。

このサブコマンドは、たとえば PCIe I/O 仮想化デバイスの物理機能のポートに対して適用できます。ポートが ONLINE 状態に昇格し (まだその状態でない場合)、次に物理機能 (ドライバ) がサポートする仮想機能がインストールされます。個々の仮想機能を指定された物理機能の依存関係として表すために、新しいホットプラグポートが作成されます。新しく作成されたポートは、OFFLINE 状態で開始されます。

uninstall

uninstall サブコマンドは、ホットプラグポートのデバイスのドライバがサポートできるサービスをアンインストールします。

このサブコマンドは、PCIe I/O 仮想化デバイスの物理機能のポートに対して適用できます。指定されたホットプラグポートに仮想機能の依存ポートがある場合は、それらの依存ポートと対応する仮想機能ノードが削除されます。

オプション

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

–l, –-list-path

接続およびデバイスノードへのフルパスを表示します。デフォルトでは、list サブコマンドはホットプラグコネクタ、ポート、およびデバイスをツリー形式で表示します。このオプションを使用して、個々の接続およびデバイスノードへのフルパスを表示できます。

–c, –-connectors

すべての物理的なホットプラグコネクタの現在のステータスをまとめた表を表示します。デバイスのトポロジと階層情報は含まれません。一般に、物理的なホットプラグコネクタの名前は一意であるべきです。システム内に同じ名前のコネクタが複数存在する場合、hotplug は同じ名前のホットプラグコネクタを示すメッセージを表示し、それらのコネクタを区別するための情報の入力を求めます。後述の「使用例」を参照してください。

–d, –-drivers

デバイスノードの結合ドライバ名とインスタンス数を表示します。デフォルトでは、list サブコマンドはホットプラグコネクタ、ポート、およびデバイスのみを表示します。このオプションを使用して、デバイスノードの結合ドライバ名とインスタンス数を表示できます。

–v, –-verbose

詳細な使用状況を表示します。デフォルトでは、list サブコマンドはホットプラグコネクタ、ポート、およびデバイスのみを表示します。このオプションを使用して、デバイスの現在の消費状況に関する詳細情報を表示できます。例として、個々のデバイスに関連してマウントされたファイルシステムや plumb されたネットワークインタフェースなどがあります。

–v オプションでは、ZFS の制御下にあるディスクの情報は表示されません。

–f, –-force

操作を強制的に実行します。現在使用されているリソースに影響を与える一部の状態変更操作は、警告とともに失敗します。強制的な操作では、これらの警告が無視され、処理が続行されます。

このオプションは、きわめて慎重に使用すべきです。

–n, –-non-interactive

対話機能を無効にします。このフラグが指定されず、あいまいな入力が検出された場合は、コマンドがただちに終了し、問題を示す一意の終了ステータスが返されます。

–q, –-query

Query the operation.状態変更操作を実際に実行せずに、操作が成功するかどうかを予測するためのテストを実行します。失敗する場合は、操作を実際に実行した場合に予期されるエラーメッセージを表示します。

すべての失敗を予測することはできません。照会時に成功した操作でも、実際に実行したときは別の理由で失敗する可能性があります。

このオプションはシステムの状態を実際には変更しません。

–r, –-removed

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.

–o options, –-=options

set または get コマンドのバス固有のプロパティーを指定します。options の文字列は、getsubopt(3C) の構文規約に従います。

get サブコマンドの場合は、使用可能な特殊オプションが 2 つあります。特殊オプションの値 help は、サポートされているすべてのプロパティーとそれらの取り得る値を表示します。特殊オプションの値 all は、サポートされているすべてのプロパティーの現在値を表示します。

set サブコマンドの場合は、使用可能な特殊オプションが 1 つあります。特殊オプションの値 help は、サポートされているすべての設定可能なプロパティーとそれらの取り得る値を表示します。

バスコントローラによってサポートされているプロパティーについては、「注意事項」のセクションを参照してください。

–?–-help

コマンドの正しい使用法に関する簡単なヘルプメッセージを表示します。

使用例 1 すべてのホットプラグ接続を表示する

次のコマンドは、すべてのホットプラグ接続を表示します。

# 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 }

終了ステータス

0

正常終了。

1

無効なコマンド行オプションが指定された。

2

指定されたパスまたは接続が存在しません。

3

致命的なエラーが発生しました。1 つ以上のエラーメッセージが標準エラーに表示されます。

4

ホットプラグサービスが使用できません。

5

指定された接続名が複数のポートを指しています。

属性

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

属性タイプ
属性値
使用条件
system/dynamic-reconfiguration
インタフェースの安定性
確実

関連項目

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 バスコントローラでは、次のバス固有のプロパティーがサポートされます。

power_led | fault_led | attn_led | active_led

スロットの特定の LED の状態。この値は、onoffblink のいずれかです。

これらはすべて get サブコマンドで使用できますが、attn_led プロパティーだけは set サブコマンドでも使用できます。

card_type | board_type

スロットのカードまたはボードのタイプ。

これらはすべて get サブコマンドで使用できますが、どれも set サブコマンドでは使用できません。