カスタムカーネルを構築するには (以下のステップは全てrootとして実行) :
![]() | 注記 |
---|---|
ここの例では、カーネルバージョンとして2.4.21-1.1931.2.399.entを使っています(カーネルバージョンが異なる場合があります)。 カーネルバージョンを確認するには、uname -r コマンドを入力します。2.4.21-1.1931.2.399.entを返ってきた 実際のバージョンに置き換えてください。 |
シェルプロンプトを開き、/usr/src/linux-2.4 ディレクトリに移動します。これ以降のコマンドは、 すべてこのディレクトリで実行しなければなりません。
カーネルを構築するときは、ソースツリーを既知の状態にしておくことが重要です。したがって、最初に、 make mrproperコマンドを発行して、ソースツリーに 散らばっている可能性がある前回の構築作業の残りと共に設定 ファイルを削除することをおすすめします。 /usr/src/linux-2.4/.configファイルとして すでに設定ファイルが存在する場合は、このコマンドを実行する 前に別のディレクトリへバックアップをとっておき、後でコピーして元にもどします。
最初は、デフォルトの Red Hat Enterprise Linuxカーネルの設定で使用することをおすすめします。これを行なうには、システムのアーキテクチャ用設定ファイルを/usr/src/linux-2.4/configs/ ディレクトリから/usr/src/linux-2.4/.configにコピーします。システムに 複数のプロセッサがある場合は、キーワードsmpを 含むファイルをコピーします。システムに4ギガバイト以上のメモリがある場合は、 hugememのキーワードを含むファイルをコピーします。
次に、設定をカスタマイズします。推奨される方法としてmake menuconfig コマンドを使いLinux Kernel Configuration プログラムを実行します。X Window Systemは必要ありません。
設定が完了したら、終了ボタンをクリックして はいを選択し、新しいカーネル設定ファイル (/usr/src/linux-2.4/.config)を保存します。
設定に変更を加えなかった場合にも、続行する前にmake menuconfigコマンド(または、カーネル設定の他の方法のどれか)の実行が必要です。
カーネル設定のために利用できる他の方法として以下のような方法があります。:
make config — 対話型のテキストプログラム。コンポーネントは リニア形式で表示され、ひとつづつ答えていきます。この方法は X Window Systemを必要としません。前の質問に戻って答えを変更することはできません。
make xconfig — この方法にはX Window Systemとtk パッケージを必要です。但し、この方法では、設定ファイルの構文解析が 信頼できない為、推奨できません。
make oldconfig — これは、既存の設定ファイル (.config)を読み取り、以前になかった新規の質問に 回答を要求するだけの非対話型のスクリプトです。
![]() | 注記 |
---|---|
kmod とカーネルモジュールを使用するには、設定中にkmod support とmodule version (CONFIG_MODVERSIONS) supportに Yesと答えます。 |
/usr/src/linux-2.4/.config ファイルを作成したら、make depコマンドを使用して正しく依存関係をセットアップ します。
make cleanコマンドを実行し、 構築用にソースツリーの準備をします。
既存のカーネルが上書きされないようにカスタム カーネルのバージョン番号は変更 したものを付けることをお薦めします。 ここで説明している方法は、万一の場合、最も簡単なリカバリ方法です。その他の可能性については、 http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html、 または、/usr/src/linux-2.4にある Makefileをご覧ください。
デフォルトでは、 /usr/src/linux-2.4/Makefileには、EXTRAVERSIONで始まるラインの末尾にcustomという単語があります。その文字列を加えることにより、システムは、作動する古いカーネルと新しいカーネル(バージョン 2.4.21-1.1931.2.399.entcustom)を同時に持つことができます。
システムが複数のカスタムカーネルを含む 場合は、最後に日付(または、 別の識別子)を 加えるとよいでしょう。
x86、AMD64、Intel® EM64T には、make bzImageでカーネルを構築します。Itanium アーキテクチャには、make compressedでカーネルを構築します。S/390 と zSeries アーキテクチャには、make imageでカーネル構築をし、iSeries と pSeries アーキテクチャにはmake bootでカーネルを構築します。
make modules で設定されたモジュールはすべて構築します。
make modules_installコマンドを使用してカーネル モジュールをインストールします(実際なにも構築されていない場合も)。コマンド内の 下線(_)に注意してください。 これでカーネルモジュールをディレクトリパスの /lib/modules/<KERNELVERSION>/kernel/drivers(ここでKERNELVERSIONは、Makefileで指定したバージョン)にインストールします。この例では、/lib/modules/2.4.21-1.1931.2.399.entcustom/kernel/drivers/となります。
make installを使用して新しいカーネルと関連ファイルを該当ディレクトリに コピーします。
/bootディレクトリにカーネルをインストールすることに加えて、このコマンドは新しい initrdイメージを構築して、 新しいエントリをブートローダー設定ファイルに追加する /sbin/new-kernel-pkgスクリプトの実行もします。
システムにSCSIアダプタがあり、SCSIドライバがモジュールとしてコンパイルされた場合、 あるいは、カーネルがモジュールとしてext3サポートで構築された場合 (Red Hat Enterprise Linuxではデフォルト)、initrd イメージが必要となります。
initrdイメージ及び ブートローダに修正が加えられるとしても、正しく行なわれたか確認して 2.4.21-1.1931.2.399.entの代わりにカスタムカーネルバージョンを使用することを確認してください。これらの修正の確認についての説明は、項39.5と 項39.6を参照して ください。