構文
/usr/sbin/ioscan [-k|-u]
[-e] [-d driver|-C class] [-I instance] [-H hw_path] [-f[-n ]|-F[-n]]
[devfile]
/usr/sbin/ioscan -M driver -H hw_path [-I instance]
/usr/sbin/ioscan -t
説明
ioscan は、適切なシステムハードウェア、使用可能な
I/O システムデバイス、またはカーネルの I/O システムデータ構造を走査して、その結果をリストします。
システム上の各ハードウェアモジュールに対して、 ioscan は、デフォルトで、そのハードウェアモジュールのハードウェアパス、
そのハードウェアモジュールのクラス、そしてその簡単な説明を表示します。
ioscan はデフォルトでは、システムを走査して、見つかったレポート可能なハードウェアをすべてリストします。レポートされるハードウェアの種類は、
プロセッサ、メモリー、インタフェースカード、および I/O デバイスを含むことができます。
ハードウェアの走査によってドライバをアンバインドしたり、 実際のシステムハードウェアに一致させるために、その他のドライバをそれぞれの場所にバインドしたりする場合があります。走査することができないエンティティはリストされません。
表示される 2 番目の形式で ioscan は、 指定のハードウェアパスにおいてカーネル
I/O システムの中に指定の ソフトウェアドライバを組み込むことを強制し、
そのソフトウェアがバインドされることを強制します。 これは、システムが自動的に認識されないデバイスを認識するのに利用することが
できます。 たとえば、 まだデバイスがシステムに接続されていなかったり、障害のあるデバイス上で診断を実行する必要があったりという理由で、自動的に認識することができないデバイスをシステムに認識させることができます。
3 番目の形式では、 ioscan は、システムハードウェアが最後に走査された日付と時刻を表示します。
注記: -t オプションは、このコマンドの他のオプションと同時に指定することはできません。
通常、ioscan にはスーパーユーザー権限が必要です。非ルートユーザーは、-k オプションによりカーネル
ハードウェアツリーの表示のみが許されています。ドライババインディングおよびハードウェアスキャンには、ルート権限が必要です。
オプション
ioscan には、以下のオプションがあります。
| -C class | | リストの出力を、指定した class クラス に属するデバイスに限定します。このオプションを -d とともに指定することはできません。 |
| -d driver | | 出力のリストを、特定の driver によって制御されるデバイスに制限します。 -C とともに指定することはできません。 |
| -e | | EFI (Extensible Firmware Interface) デバイスが使用可能であれば、そのパスを表示します。 |
| -f | | 詳しいリストを生成します。モジュールのクラス、 インスタンス番号、ハードウェアパス、ドライバ、ソフトウェアの状態、
ハードウェアの型、そして簡単な説明がつきます。 |
| -F | | フィールド (下記参照) のコンパクトなリストを作成します。各フィールドはコロンで区切られます。
このオプションは、 -f オプションより優先されます。 |
| -H hw_path | | 走査と出力のリストを指定のハードウェアパスに接続されたデバイスに
限定します。ハードウェアパスは、バスパスでなければなりません。 バスより下のレベルで走査すると、ハードウェアが走査されず、不正確な結果を出す可能性があります。
たとえばパスをターゲットレベルで指定をすると、接続されているデバイスの状態が常に NO_HW
として返されます。 デバイスの状態は、NO_HW ノード上のバスノードから ioscan を再び実行することによって、復元されます。
このオプションは -M とともに使われた場合、 ソフトウェアモジュールをバインドする
ハードウェアパスを指定します。 |
| -I instance | | -d あるいは -C とともに指定した場合、
走査と出力のリストを指定のインスタンスに制限します。 -M とともに使われた場合、
バインドの希望するインスタンス番号を指定します。 |
| -k | | 実際のハードウェアの代わりにカーネルの I/O システムデータ構造を走査し、
結果をリストします。 ドライバのバインドやアンバインドは実行されません。 -d, -C, -I,
および -H オプションを、リストを制限する目的で使うことができます。
このオプションを -u とともに指定することはできません。このオプションはスーパーユーザーの権限を必要としません。 |
| -M driver | | -H オプションによって指定されたハードウェアパスでバインドするソフトウェアドライバを指定します。 -H と同時に指定する必要があります。 |
| -n | | デバイスファイル名を出力リストに追加します。 /dev ディレクトリおよびそのサブディレクトリ内のスペシャルファイルだけがリストされます。 |
| -t | | システムハードウェアを最後に走査した日付と時刻を表示します。
このオプションを使った場合の ioscan コマンドの出力は、次のようになります。 Fri Nov 22 11:22:21 2002 |
| -u | | 実際のハードウェアの代わりに使用可能な I/O システムデバイスを走査します。
利用可能な I/O デバイスとは、 カーネルにありインスタンス番号をアサインされているドライバを持つものです。 -d, -C, -I,
および -H オプションを、リストを制限する目的で使うことができます。
このオプションを -k とともに指定することはできません。 |
-d および -C オプションを指定すると、I/O
システムのサブセットのリストを得ることができますが、走査はシステム全体に対して行われます。 -I とともに -d または -C を指定するか、または -H または devfile を指定すると、 ioscan は走査とリストの出力の両方を、指定されたハードウェアサブセットに限定して行います。
フィールド
-F オプションを使って、各フィールドがコロン
(:) で区切られた、コンパクトなリストを作成できます。 awk を使って、自分用のリストを作成する場合に便利です。
フィールドには、以下のものが含まれます。 そのモジュールのバスタイプ、cdio、is_block、is_char、is_pseudo、
ブロックメジャー番号、キャラクタメジャー番号、マイナー番号、クラス、
ドライバ、ハードウェアパス、識別バイト、インスタンス番号、 モジュールパス、モジュール名、ソフトウェアの状態、ハードウェアのタイプ、
簡単な説明、カードのインスタンス。 あるフィールドがない場合は、コロンが連続して置かれ、そのフィールドの位置だけを示します。
フィールドは下記のように定義されます。
| class | | デバイスクラスは、ファイル /usr/conf/master.d 内に定義されていて、 lsdev lsdev(1M) を参照) を使用してリストすることができます。
例として disk, printer, および tape があります。 |
| instance | | デバイスあるいはカードに関連しているインスタンス番号。
あるクラス内のカードあるいはデバイスにアサインされた、ユニークな番号です。
ドライバのバインド時に、 そのハードウェアのコンポーネントに対するドライバが利用可能でない場合は、
あるいは、エラーが起こった場合は、 カーネルはインスタンス番号をアサインせず、
(-1) がリストされます。 |
| hw path | | ハードウェアのコンポーネントを表す、数文字列。バスアドレス、デバイスアドレス
の順に記録されます。 典型的には、イニシャル番号のあとに (/)
がつき、 これで、バスコンバーターを表現します (使用中のマシンにより要求される場合)。
そして、それに続く番号はピリオド (.) で区切られます。
各番号はそのデバイスへのパス上のハードウェアのコンポーネントの位置を表します。 |
| driver | | ハードウェアのコンポーネントを制御するドライバの名前。
そのハードウェアコンポーネントをコントロールするドライバが利用可能でない場合、
疑問符 (?) が出力に表示されます。 |
| software state | | ソフトウェアバインディングの結果。 | CLAIMED | | ソフトウェアのバインドに成功 | | UNCLAIMED | | 所定のソフトウェアが見つからない | | DIFF_HW | | 見つかったソフトウェアが所定のものではない | | NO_HW | | 指定のアドレスにあるハードウェアは、応答しなくなった | | ERROR | | 指定のアドレスにあるハードウェアは、応答はしているものの、エラー状態にある | | SCAN | | ノードがロックされている。あとでもう一度試みる |
|
| hardware type | | ハードウェア構成要素のエンティティ識別子。次の文字列のうちの 1 つが設定されます。 | UNKNOWN | | 関連するハードウェアがない、あるいはハードウェアのタイプが未知 | | PROCESSOR | | ハードウェアコンポーネントがプロセッサ | | MEMORY | | ハードウェアコンポーネントがメモリー | | BUS_NEXUS | | ハードウェアコンポーネントがバスコンバーターかバスアダプタ | | INTERFACE | | ハードウェアコンポーネントがインタフェースカード | | DEVICE | | ハードウェアコンポーネントがデバイス |
|
| bus type | | ノードに関連づけられているバスのタイプ。 |
| cdio | | コンテキスト依存 I/O モジュールに関連づけられた名前。 |
| is_block | | デバイス ブロックメジャー番号が存在するかどうかを表すブール値。 このフィールドには、 T あるいは F が表示されます。 |
| is_char | | デバイス キャラクタメジャー番号が存在するかを表すブール値。 T あるいは F が表示されます。 |
| is_pseudo | | 疑似ドライバを表すブール値。 このフィールドには、 T あるいは F が表示されます。 |
| block major | | デバイスのブロックメジャー番号 -1 で、デバイスのブロックメジャー番号が存在しないことを表します。 |
| character major | | デバイスのキャラクタメジャー番号 -1 で、デバイスのキャラクタメジャー番号が存在しないことを表します。 |
| minor | | デバイスのマイナー番号 |
| identify bytes | | モジュールあるいはデバイスから返された識別用バイト。 |
| module path | | ソフトウェアのコンポーネント。ピリオド (.) によって分離されます。 |
| module name | | そのノードをコントロールしているソフトウェアコンポーネントのモジュール名。 |
| description | | デバイスの説明。 |
| card instance | | ハードウェア インタフェースカードのインスタンス番号。 |
戻り値
ioscan は正常終了時には 0 を返し、エラーが発生した場合には 1 を返します。
例
次の例は、システムハードウェアを走査して、ディスク デバイスクラスに所属するデバイスをすべてリストします。
ドライバ tape2 をハードウェアパス 8.4.1 で強制バインドします。
参照
kcmodule(1M), lsdev(1M), ioconfig(4)