本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 1 : ユーザーコマンド (A〜M) > c

config(1M)

HP-UX 11i Version 1: September 2005
≫ 

テクニカル ドキュメント

フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

config ― HP-UX システムの構成、構築

構文

/usr/sbin/config [-c c_file] [-l m_file] [-m master] [-r path] [-s|-u] [-S] [-t] system_file

/usr/sbin/config -M module_name [[-M module_name]...] [-m master] [-u]

説明

config は、オペレーティングシステムの以下の構成に使用します。

  • デバイスドライバー

  • スワップデバイスとダンプデバイス

  • 調整可能なシステムパラメータ

  • カーネルモジュール

config は、次の構成をサポートします。

  • 全カーネル構成 (第一のフォーム)

    静的カーネル (vmunix) と動的にロード可能なモジュールの両方が生成され、システムの再ブートが必要になります。

  • 動的にロード可能なモジュールの構成 (第二のフォーム)

    指定したロード可能なモジュールは動的に生成され、現在のシステムに登録されます。新しく構成された サービスは、システムを再ブートすることなく、直ぐに使用できます。

カーネルモジュールは、静的モジュールあるいは動的にロード可能なモジュールです。

第一のフォームは、カーネル全体を構成するのに使用します。すなわち、 静的カーネルとすべてのカーネルモジュールです。 このタイプの構成は、全カーネル構成と呼びます。 第二のフォームは、動的にロード可能なモジュールの構成にのみ使用します。

静的モジュールは、 それらがサポートする機能がシステムで必要かどうかによって、 静的カーネル (vmunix) にインクルードされたり、または取り外されたりする 個々のオブジェクトファイル内で管理されます。 これらのモジュールはロード不可能で、カーネルにリンクされたままです。

また、動的にロード可能なモジュールも個々のオブジェクトファイル内で管理されますが、 それらは、カーネルに静的にリンクされていません。 カーネル全体を再びリンクしたり、あるいはシステムを再ブートすることなく、 ロード可能なモジュールをカーネルに動的にインクルードしたり、カーネルから 動的に取り外したりするように構成できます。 そのようなモジュールの構成時に生成されたロード可能なイメージモジュールは、 カーネルによって自動的にロード/アンロードされたり、管理者によって必要なときに ロード/アンロードされます。

サブシステム、ファイルシステム、カーネルモジュールのインクルードの方法または取り外し方法 、およびシステムのブート方法については、『 『システム/ワークグループの管理』 』 を参照してください。

全カーネル構成 (第一のフォーム)

カーネル全体を構成するために、 config はユーザーが提供するカーネルモジュールの HP-UX システムのシステム記述ファイル system_file) とマスターカーネル構成のテーブル情報を読み取ります。

システムファイルおよびカーネルモジュールのシステム記述ファイルは、 システム管理コマンドの kmsystem または kmtune のみを使用して変更するように注意してください。

すべてのカーネルモジュールを構成するために、 config はモジュールで使用するインタフェース関数またはシンボルを調べます。 モジュールがそのマスターファイルの $INTERFACE セクションで暗に示されていないシンボルに依存する場合、構成は失敗します。 そうでない場合には、 config は次の出力ファイルおよびディレクトリを生成します。

  • システムのさまざまな部分の構成テーブルを定義する C プログラムのソースファイル (conf.cspace.h )。カーネルモジュールが構成されない限り、これらのファイルは生成されません。

  • カーネルおよびカーネルモジュールに必要なシステムの 調整可能なパラメータを定義する C プログラムのヘッダファイル (tune.h)

  • カーネルモジュールに必要な C プログラムのソースファイル (mod_conf.c )。 space.h ヘッダファイルがモジュールと一緒に提供された場合には、このヘッダファイルはソースファイルに インクルードされます。

  • 生成された C プログラムをコンパイルし、新しく構成した システムを静的にリンクされたカーネルモジュールのオブジェクトファイル (vmunix_test) に再リンクし、カーネルのシンボルテーブル (symtab) を生成する makefile (config.mk)

  • 構成する動的にロード可能なモジュールをすべて生成する その他の makefile (config.mod)

  • 生成された動的にロード可能なモジュール、カーネルのシンボルテーブル、 および作成するカーネル (vmunix_test ) に関連するモジュール登録ファイルを保存する ディレクトリ (dlkm.vmunix_test) 。以後、このディレクトリはカーネル機能セットディレクトリと呼ばれます。 このディレクトリ下のファイルは、カーネル機能セットファイルと呼ばれます。

conf.c をコンパイルするには多くのヘッダファイルが必要です。 また、カーネルをリンクするには、カーネルオブジェクトを含む アーカイブライブラリのファイルが必要です。 これらのファイルはシステムに付属しており、 /usr/conf の下の各ディレクトリにあります。

config.mod およびモジュール登録ファイルは、動的にロード可能なモジュールが構成されない場合には生成されません。

config は、 make コマンドを実行して、 conf.c をコンパイルします。 さらに、カーネルを適切なカーネルライブラリおよび静的にリンクされたモジュールに リンクし、カーネルのシンボルテーブルを生成します。 また、 config.mod を指定して make コマンドを実行し、 動的にロード可能なモジュールをコンパイルします。

make コマンドは、システムファイルの名前に従ってワークディレクトリにファイルを作成します。 system_file ファイルが /stand/system の場合は、 ワークディレクトリは /stand/build です。 そうでない場合は、ワークディレクトリは、現在のディレクトリになります。 make コマンドが正常に終了すると、次のファイルが生成されます。

  • カーネルファイル

    カーネルファイル vmunix_test はワークディレクトリに生成されます。

  • カーネル機能セットディレクトリ

    カーネル機能セットディレクトリ (dlkm.vmunix_test) はワークディレクトリに作成されます。

  • カーネルのシンボルテーブル

    カーネルのシンボルテーブル symtab は、カーネル機能セットディレクトリに生成されます。

  • 動的にロード可能なモジュール

    動的にロード可能なモジュールは、カーネル機能セットディレクトリの サブディレクトリ (mod.d) の下に生成されます。

-u オプションが指定された場合は、新しく生成されたカーネルファイルと そのカーネル機能セットディレクトリは自動的に システムのシャットダウンまたは再起動時に それぞれのデフォルトの位置 /stand/vmunix/stand/dlkm へコピーされます。 以前のカーネルファイルとそのカーネル機能セットディレクトリは、 /stand/vmunix.prev/stand/dlkm.vmunix.prev にそれぞれ保存されます。

全カーネル構成のオプション

カーネル全体を構成する場合、 config コマンドは次の引き数を認識します。

-c c_file 

config で作成する C プログラムのソースファイルの名前を指定します。 デフォルトのファイル名は conf.c です。

-l m_file 

config によって作成される makefile の名前を指定します。 これは、C プログラムのソースファイルをコンパイルして新しいカーネルを作成するのに config によって使用される makefile です。 デフォルトのファイル名は、 config.mk です。

-m master 

config がソースファイルおよび makefile を作成する際に使用する マスターカーネル構成の情報ファイルまたは ディレクトリの名前を指定します。 master がディレクトリである場合、 config は、データ構造を作成するのにそのディレクトリから全ファイルを読み取ります。 master がファイルである場合、 config のデータ構造を作成するのにそのファイルだけを読み取ります。 デフォルトでは、 config はファイルをディレクトリ /usr/conf/master.d から読み取ります。 /usr/conf/master.d は HP-UX オペレーティングシステムの一部であり、 その構造と目的を十分に理解せずに修正してはなりません。

-r path 

ディレクトリ path を検索し、 カーネルを作成するためのライブラリおよびヘッダファイルを探します。 デフォルトでは、 config はディレクトリ /usr/conf を使用します。

-S  

カーネルモジュールをすべてカーネルファイルに静的にリンクします。 このオプションは、カーネルモジュールがロード可能として構成されている 場合にだけ有効です。

-s  

ソースファイルおよび makefile の作成後に、停止します。 make は実行されず、 カーネル (vmunix_test) およびカーネルモジュールは作成されません。 -s オプションは、 -u オプションと一緒に使用できません。

-t  

キャラクタ型およびブロック型デバイス、カードドライバー、 リンクルーチンを必要とするストリームドライバーおよび ストリーム モジュール、 system_file に指定されたストリームデバイスおよびストリームモジュールの メジャーデバイス番号の簡易な表を提供します。 これらの表は特殊デバイスファイルを作成する際に 役に立つことがあります。

-u  

新しいカーネル環境を正常に構成した後に kmupdate を呼び出します。 -u オプションは -s オプションと一緒に使用できません。

system_file 

ユーザーのシステムの構成情報を含むファイル。 通常のシステムファイルは /stand/system です。このファイルを config への入力として使用する場合は、 生成される出力はディレクトリ /stand/build に置かれます。 /stand/system 以外のファイルを system_file に使用する場合は、 config はその出力ファイルを現在のディレクトリに置きます。 システムファイルは 2 つの部分に分かれています。 第 1 の部分 (必須) の内容はドライバー指定であり、 第 2 の部分 (オプション) はシステム依存の情報です。

HP-UX システムファイルの構築

system_file の第 1 の部分は以下の構成に使用します。

  • デバイスドライバー

  • 擬似ドライバー

  • サブシステム

各行は次のような形式になっています。

devname 

devname は、ディレクトリ /usr/conf/master.d にあるファイルの別名 (エイリアス) テーブル、ドライバーインストールテーブル、 またはデバイステーブルに含まれるドライバーまたはサブシステムの名前です。 例えば、 scsi は SCSI ディスクドライブのドライバーを選択し、 scsitape は SCSI テープドライブのドライバーを選択し、 nfs は NFS サブシステムを選択します。 /usr/conf/master.d にあるファイルを合わせると、構成可能なデバイス、カード、サブシステム、 および疑似ドライバーを完全にリストすることができます。

第 2 の部分 (オプション) system_file は以下の目的に使用します。

  • スワップデバイスを定義します。

  • (単一または複数の) ダンプデバイスを定義します。

  • ハードウェアパスに対するドライバーのマッピングを提供します。

  • 選択されたシステムパラメータの状態と値を定義します。

以下にいくつかの項目に分けて、行の構造を示します。

(1) スワップデバイスについての指定
  

複数のスワップ指定はできません。 スワップ指定を与えないと、システムはファイルシステムの 終わりにあるルートデバイス上でスワップを行うように 構成されます。

swap hw_path  offset  [blocks]
  

スワップデバイスの位置とサイズを指定どおりに構成します。 引き数は以下のように解釈されます。

hw_path 

スワップデバイスとして構成するデバイスを示すハードウェアパス。 または、文字列 default を使ってルートデバイスを使用するように指示することもできます。

offset 

スワップ領域の位置。 境界は 1KB ごとに位置しています。 負の値は、ファイルシステムがデバイス上にあるよう指定します。起動時に、スーパ ーブロックを読み取ってファイルシステムの正確なサイズを取得し、この値を offset に書き込みます。スワップデバイスが自動構成になっている場合は、この処理が行わ れます。スーパーブロックが無効の場合は、エントリーがスキップされます。これは、 ファイルシステムの最上位にスワップ領域を構成したために破壊されたスーパー ブロックが、後でファイルシステム全体を破壊してしまわないようにするためです。 offset が正の値か 0 は、確保すべき最小領域を指定します。 0 は、デバイスの最上部に領域を確保しないことを意味します。 0 を指定すると、デバイス上にファイルシステムが存在しないことを意味します。

blocks 

スワップ領域内の 1KB ディスクブロックの数 (10 進数) です。 このスワップデバイスの指定では、 blocks パラメータのみがオプションです。 自動構成が行われる場合、0 がデフォルトです。 blocks の値が 0 の場合、残りのデバイスは自動的にすべてスワップ領域に構成されます。 blocks の値が 0 以外の場合、その絶対値がスワップ領域のサイズの上限とみなされます。 このとき、スワップ領域のサイズが実際に削られた場合、 blocks の符号により、 blocks の構成がそのまま有効となってスワップ領域が確保領域に隣接する位置に配置されるか 、未使用領域のサイズによっては blocks の構成が無効となり、スワップ領域がデバイスの最下部に隣接する位置に配置されるか が決まります。

swap hw_path options
  

指定したオプションを使用して指定位置にスワップデバイスを構成します。 hw_path 引き数は前の例にあるのと同じように解釈されます。

options フィールドは、セクションを指定するのに使用します。 これは旧製品との互換性の目的でのみ提供されます。 例えば、 s3 はスワップ領域をセクション 3 に置きます。

swap lvol  

論理デバイスにスワップを構成します。

swap none  

カーネルをスワップデバイスなしに構成します。

(2) (単一または複数の) ダンプデバイスの指定
  

単一または複数のダンプ指定ができます。 ダンプ指定を与えないと、一次スワップ領域が使用されます。

dump hw_path [options]
  

ダンプデバイスの位置およびサイズを指定のとおりに構成します。 引き数は以下のように解釈されます。

hw_path 

ダンプデバイスとして構成するデバイスを示すハードウェアパス。 または、文字列 default を使って一次スワップ領域を使用するように指示することもできます。

options 

このフィールドはセクションを指定するのに使用します。 これは旧製品との互換性の目的でのみ提供されます。 例えば、 s3 はセクション 3 にダンプ領域を置きます。

dump lvol  

論理デバイスにダンプを構成します。

dump none  

カーネルをダンプデバイスなしに構成します。

(3)ハードウェアパスに対するデバイスドライバー
  

ハードウェアパスに対して単一または複数のドライバー指定ができます。 ドライバー文を与えると、指定したソフトウェアモジュールが 指定のハードウェアパスでカーネル I/O システムに 組み込まれます。これを利用して、自動認識させることができない デバイスをシステムに認識させることができます。

driver hw_path driver_name
  

指定したハードウェアパスでカーネル I/O システムに ドライバーをバインドします。引き数は次のように解釈されます。

hw_path 

ソフトウェアをバインドするデバイスを示すハードウェアパスとして解釈されます。

driver_name 

指定のハードウェアパスでカーネルにバインドするソフトウェア モジュールの名前として解釈されます。

(4)システムパラメータ 

このパラメータは、その変更により発生し得る結果について完全に理解している場合以 外は変更しないでください (『 『システム/ワークグループの管理』 』マニュアルを参照)。

各行には 2 つのフィールドがあります。第 1 のフィールドには最大 20 文字まで記 述することができます。第 2 のフィールドは最大 60 文字まで記述することができます。 各行は独立していて、また、任意に指定することができます。各行の形式は以 下のとおりです。

 parameter_name      number or formula 

プロセス間通信には、メッセージ機能 (mesg)、 セマフォ機能 (sema)、 および共有メモリ機能 (shmem) があります。 mesgsema、 または shmem、 もしくはその全部が 0 と指定されている場合、これらの機能のカーネルコードは取り込まれません。それら の値が 1 と指定されている場合に、カーネルコードが取り込まれます (デフォルト)。これらの機 能は、各々独立して指定することができます。カーネルコードが取り込まれた場合、 以下に示したパラメータは変更されることがあります。

               mesg        1 
               msgmap      number or formula 
               msgmax      number or formula 
               msgmnb      number or formula 
               msgmni      number or formula 
               msgseg      number or formula 
               msgssz      number or formula 
               msgtql      number or formula 
               sema        1 
               semaem      number or formula 
               semmap      number or formula 
               semmni      number or formula 
               semmns      number or formula 
               semmnu      number or formula 
               semume      number or formula 
               semvmx      number or formula 
               shmem       1 
               shmall      number or formula 
               smbrk       number or formula 
               shmmax      number or formula 
               shmmin      number or formula 
               shmmni      number or formula 
               shmseg      number or formula 

動的にロード可能なモジュールの構成 (第二のフォーム)

ロード可能なカーネルモジュールを構成するために、 config-M オプションで指定したモジュールの構成要素を構築します。 -M オプションを -u オプションと一緒に指定した場合は、 config はロード可能なモジュールを構築し、 kmupdate を呼び出して、メモリ内のそのモジュールのロード可能なイメージを更新します。 ロード可能なイメージを更新することで、既存のロード可能なイメージを 新たに作成したロード可能なイメージで置換します。必要な場合には、 新しい情報でモジュールを再登録し、必要に応じて、 特殊デバイスファイルの再作成などのタイプ固有の初期化を実行します。

ロード可能なモジュールを構成する際、 config は、実行カーネルのシステム記述ファイル、カーネルモジュールのシステム記述ファイル 、およびマスターカーネル構成の情報テーブルを読み込みます。

カーネルモジュールのシステム記述ファイルは、 kmsystem または kmtune システム管理コマンドのみを使用して修正するように注意してください。

ロード可能なモジュールを構成するために、 config は、モジュールで使用するインタフェース関数またはシンボルを調べます。 モジュールがそのマスターファイルの $INTERFACE セクションで暗に示されていないシンボルに依存する場合、構成は失敗します。 config は、次の出力ファイルを生成します。

  • システムの調整可能なパラメータを定義する C プログラムのヘッダファイル (tune.h)

  • 各カーネルモジュールに必要な C プログラムのソースファイル (mod_conf.c)

  • 指定した動的にロード可能なモジュールを生成する makefile (config.mod)

  • モジュール登録エントリーは、指定モジュールを登録します。

上記のファイルが生成された後、 config は、 config.mod を指定して make コマンドを実行し、動的にロード可能なモジュールを生成します。

make が正常に終了すると、 動的にロード可能なモジュールのオブジェクトファイルが生成され、 カーネル機能セットディレクトリに置かれます。

-u オプションが指定された場合、 kmupdateconfig によって実行されます。

カーネルモジュールに関連するすべてのファイルは、モジュールを構成するのに必要です。 カーネルモジュールファイルの詳細については、 kminstall(1M) を参照してください。

ロード可能なモジュール構成のオプション

ロード可能なモジュールを構成する際、 config は、次のオプションを認識します。

-M module_name 

指定したロード可能なモジュールのみを構成します。 この場合には、カーネルファイルは生成されません。 正常に行われた場合は、モジュールのロード可能なイメージが生成されます。

指定さたモジュールがスタブモジュール master(4) を参照) の場合、 config はメッセージを出力し、異常終了します。 カーネル全体の構築は、スタブモジュールを構成するのに必要です。

-m master 

config がソースファイルおよび makefile を作成する際に使用する マスターカーネル構成の情報ファイルまたは、ディレクトリ の名前を指定します。 master がディレクトリである場合、 config は、データ構造を作成するのにそのディレクトリから全ファイルを読み取ります。 master がファイルである場合、 config のデータ構造を作成するためにそのファイルだけを読み取ります。 デフォルトでは、 config はファイルをディレクトリ /usr/conf/master.d から読み取ります。 /usr/conf/master.d は HP-UX オペレーティングシステムの一部であり、 その構造と目的を十分に理解せずに修正してはなりません。

-u  

kmupdate を呼び出して、モジュールを更新します。

カーネルモジュールのシステム記述ファイル

カーネルモジュールの記述ファイルは、 /stand/system.d の下に置かれます。 モジュールのシステムファイルは、モジュール名にならって付けられる一意の名前です。

各ファイルは、3 つの必須セクションと 1 つのオプションのセクションからなります。

$VERSION:  

$VERSION で始まる行は、ファイルフォーマットのバージョン番号を示します。 バージョンは、1 から始まる 10 進数として定義されます。

フォーマットは次のとおりです。

$VERSION version_number

例:

$VERSION 1 

$CONFIGURE:  

$CONFIGURE で始まる行は、モジュールの構成が必要かどうかを示します。 第二フィールドが Y または y の場合は、モジュールは次の構築時に構成されます。 フィールドが N または n の場合は、構築時にモジュールは構成されません。

フォーマットは次のとおりです。

$CONFIGURE 
{Y|y|N
|n}

例:

$CONFIGURE Y

$LOADABLE:  

$LOADABLE で始まる行は、モジュールの構成方法を示します。 第二フィールドが Y または y の場合、 モジュールは動的にロード可能なモジュールとして構成されます。

フィールドが N または n の場合、モジュールはカーネルに静的にリンクされます。

モジュールのマスターファイルに $LOADABLE セクションがない場合、システムファイルにはそのセクションはありません。

フォーマットは次のとおりです。

$LOADABLE 
{Y|y|N
|n}

例:

$LOADABLE Y

$TUNABLE (オプションのシステムパラメータのセクション)
  

$TUNABLE で始まる行と、 $$$ で始まる行の間のセクションは、 モジュールの調整可能なパラメータを示します。

上記で説明したキーワード、例えば、 $VERSION$CONFIGURE は、空白またはタブ以外の文字で行が始まらなければなりません。 フィールドのセパレータは、 1 つの空白、タブ、またはそれらの組み合わせです。

アスタリスク (*) で始まる行は、 コメント行です。

戻り値

config は、正常終了時には 0 を戻します。 エラーが発生した場合には、 0 以外の値が戻ります。

診断

config のエラーメッセージおよび警告メッセージは、すべて標準エラー出力に送られます。 ステータスリポートメッセージは、標準出力に送られます。 これらのメッセージは、それ自信で内容を説明しています。 いくつかのメッセージは、 make または、makefile から呼び出されたコマンドが出力します。

ファイル

/usr/conf/master.d/*
  

デフォルトの入力マスター構成テーブル

/usr/conf/interface.d/*
  

インタフェースファイル

/usr/conf/gen/config.sys
  

makefile のスケルトンの記述が含まれています。

/usr/conf/gen/config.lm
  

カーネルモジュールの makefile のスケルトンが含まれています。

/stand/system  

デフォルトのシステムファイル

/stand/system.d/*
  

デフォルトのカーネルモジュールの記述ファイル

/stand/build/conf.c
  

デフォルトの出力構成表

/stand/build/tune.h
  

デフォルトの出力システムパラメータテーブル

/stand/build/config.mk
  

デフォルトの出力 make(1) スクリプト

/stand/build/config.mod
  

デフォルトのカーネルモジュール make(1) スクリプト

/stand/build/vmunix_test
  

config によって作成されるデフォルトのカーネル

/stand/build/dlkm.vmunix_test/symtab
  

デフォルトのカーネルのシンボルテーブル

/stand/build/dlkm.vmunix_test/mod.d/*
  

デフォルトのカーネルモジュールのロード可能なイメージ

/stand/build/dlkm.vmunix_test/mod_register
  

デフォルトのモジュール登録ファイル

参照

kminstall(1M), kmmodreg(1M), kmsystem(1M), kmtune(1M), kmupdate(1M), make(1), interface(4), master(4)

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2005 Hewlett-Packard Development Company, L.P.