カーネル構築コマンドの概要
1999 年 1 月 24 日
Michael Elizabeth Chastain, <mailto:mec@shout.net>

    翻訳:JF プロジェクト
      翻訳者:川崎 貴彦
      校正協力者:森本 淳


=== はじめに

いつの日か、この件に関する全てのことを取り上げ、そして、もう少し整理す
るつもりです。それまでのあいだは、このファイルで現在のシステムについて
記述します。


=== クイックスタート

初めてカーネルを構築しているのならば、必要なコマンドは次のとおりです。

    make config
    make dep
    make bzImage

'make config' のかわりに、全画面テキストインターフェースの
'make menuconfig', または、Tcl/Tk を使用する X インターフェースの
'make xconfig' を実行することもできます。

'make bzImage' は、新しいカーネルイメージを arch/i386/boot/bzImage に
作成します。'make bzdisk' または 'make bzlilo' を使うこともできます。

lilo の使い方に関する詳しい情報については、lilo のドキュメントを参照し
てください。'loadlin' プログラムを使えば、MS-DOS から Linux をブートさ
せることもできます。

ハードウェアの問題により、または lilo や loadlin のバージョンが古過ぎ
るという理由により、'make bzImage' が機能しないコンピュータもあります。
カーネルイメージが小さいならば、このようなシステムでは 'make zImage',
'make zdisk', または 'make zlilo' を使ってもよいでしょう。

ソースツリーのトップディレクトリに 'vmlinux' という名前のファイルを見
つけても、それは単に無視してください。これは中間形式のファイルであり、
それからブートすることはできません。

その他のアーキテクチャ:上記の情報は i386 用のものです。他のアーキテク
チャには、'bzImage' ファイルはありません。あなたのアーキテクチャ用の適
切な 'zImage' または'vmlinux' を単に使用してください。

注意:'zImage' ファイルと 'bzImage' ファイルの違いは、'bzImage' が異な
るレイアウトとローディングアルゴリズムを使用しているという点です。この
ため、'bzImage' はより多くの領域を占めます。両方のファイルとも gzip 圧
縮を使います。'bzImage' の 'bz' とは、'big zImage' のことであり、
'bzip' を意味しているわけではありません!

=== トップレベル Makefile ターゲット

ここに、トップレベルで利用可能なターゲットを挙げます。

    make config, make oldconfig, make menuconfig, make xconfig

        Linux カーネルの設定を行います。他の何かを実行する前に、ほとん
        どの場合、これを実行しなければなりません。

        config 行指向のインターフェース
        oldconfig 行指向のインターフェース、以前の値を再利用する
        menuconfig curses ベースの全画面インターフェース
        xconfig X window system インターフェース

    make checkconfig

        #include <linux/config.h> の欠落しているインスタンスについてソー
        スツリーをチェックする小さな Perl スクリプトを実行します。人に
        よっては、ときどきこれを実行する必要があります。なぜなら、これ
        らのシンボルがインクルードされていない場合に、C プリプロセッサ
        が何も言わずに間違った出力をしてしまうからです (プリプロセッサ
        は、プリプロセッサ・ディレクティブ内の定義されていないシンボル
        を、0 と定義されているかのように扱ってしまいます)。
        #include <linux/config.h> を不必要に使用した場合も報告されます
        が、これらは無視することができます。というのは、CONFIG_* 依存
        関係が、問題が起きないようにうまく処理してくれるからです。

        カーネルの設定を行わなくても、'make checkconfig' を実行するこ
        とができます。また、'make checkconfig' は、どのファイルも修正
        しません。

    make checkhelp

        Config.in ファイル内には存在するのに scripts/Configure.help 内
        で文書化されていないオプションについてソースツリーをチェックす
        る、もう一つの小さな Perl スクリプトを実行します。もう一度言い
        ますと、人によってはこれをときどき実行する必要があります。もし
        もあなたが設定オプションを追加しようとしているなら、あなたのパッ
        チを公開する前に make checkhelp を実行しておくのが親切だと言え
        るでしょう。

        カーネルの設定を行わなくても、'make checkhelp' を実行すること
        ができます。また、'make checkhelp' は、どのファイルも修正しま
        せん。

    make dep, make depend

        'make dep' は、ロング形式 'make depend' の同義語です。

        このコマンドは二つのことを行います。最初に、どの .o ファイルが
        どの .h ファイルに依存しているかということに関する依存関係情報
        を計算します。この情報を、.hdepend という名前のトップレベルファ
        イルと、各ソースディレクトリごとに存在する .depend という名前
        のファイルに記録します。

        次に、もしも CONFIG_MODVERSIONS が有効ならば、'make dep' は、
        シンボルをエクスポートする全てのファイル用に、シンボルバージョ
        ン情報を計算します(常駐ファイルもモジュールファイルも、両方と
        もシンボルをエクスポートすることがあるということに注意してください)。

        もしも CONFIG_MODVERSIONS を有効にしないのであれば、'make dep' 
        は、最初にカーネルを設定した直後に一回だけ実行すれば十分です。
        .hdepend ファイルと .depend ファイルは、設定からは独立しています。

        もしも CONFIG_MODVERSIONS を有効にするのならば、設定を変更する
        たびに 'make dep' を実行しなければなりません。というのも、モジュー
        ルシンボルバージョン情報は、設定に依存するからです。
 
[続く ...]
