japan.internet.com
LinuxTutorial2000年11月11日 00:00
文字サイズ文字サイズ小文字サイズ中文字サイズ大

Linux カーネルのコンパイル

この記事のURLhttp://japan.internet.com/linuxtutorial/20001111/1.html
著者:James Andrews
海外internet.com発の記事
tutorial logo

はじめに

RedHat は Linuxではない。 Linux カーネルベースのディストリビューションだ。 Linux カーネルは、 Linux ディストリビューションの残りの部分に基本的なサービスを供給する複雑なプログラムである。

しかし、Windows 95 やMacOS などの商用 OS と違い、 新しい機能の追加や改良は簡単にできる。 ソースコードを自由に利用できるからだ。 Linux ベースの OS では、 ソースから再コンパイルするのは日常茶飯で、 コンパイルを本当にユーザーフレンドリーなものにするのに多大な労力が注がれている。

なぜ新しいカーネルをコンパイルする?

「でもなぜカーネルを再コンパイルするの? そのままでも動くじゃないか」 と思うだろう。 再コンパイルするのには3つの理由がある。 第一に、新製品なので、 ディストリビューション CD にはそれ用のカーネルモジュールがないハードウェアがある。 第二に、OS の改訂で修正されたバグがあるかもしれない。 最後に、新しいソフトウェアがOS の新しいバージョンにしか対応していない。

カーネルソースを入手する

カーネルソースの最新のリリースは ftp.kernel.org で入手できる。 このサイトのミラーは世界中にあるので、 多分どこかすぐ近くにコピーがあるだろう。 OS の最新バージョンの置いてあるサイトを突き止め、 /usr/src にダウンロードする。 それから tar zxf コマンドでアンパックする。

あるいは、すでにカーネルソースがあり、 バージョン数を一つアップグレードする(たとえば2.2.1 から 2.2.2 へ) だけでいいのなら、 パッチファイルを/usr/src にダウンロードし、 以下のようにして古いカーネルソースをアップグレードする。

gzip -dc patch-2.2.2.gz |patch -p0

パッチファイルだとだいぶ小さくなる。


最新バージョンでなくてもいいなら、 ディストリビューション CD から カーネルソース パッケージをインストールするのが一番速い。

設定

ディレクトリを /usr/src/Linux に変更し、

make menuconfig

コマンドを発行する。 これでプログラムがいくつか構築され、 すぐポップアップウィンドウが現れる。 ウィンドウメニューでカーネルの設定を変更できる。

必要な変更を終えたら、設定を保存し、指示に従い、以下を実行する。

make dep; make clean

最初のコマンドはカーネルソース中の相互依存ツリーを構築する。 これらの相互依存は設定時に選んだオプションに影響される。 make clean コマンドは、 以前のカーネルの構築時から残っていて、 現在は必要でないファイルを取り除く。

さあ、準備ができた。

make zImage

を実行しよう。 マシンのチップが Pentium 200 以下なら、 ちょっとコーヒーでも飲んで休憩しよう。 Pentium 90 だったら、約20分かかる。 ダウンロード時に分かったと思うが、 カーネルにはたくさんのソースコードがあるのだ。 終わったら、

make modules

を実行しよう。 これはたいして時間かかららない。

新しいカーネルをインストールする

やれやれ、これで最後だ。 お終いは新しいカーネルのインストールだ。 Intel ベースのシステムでは、 以下のコマンドで、カーネルは /boot の正しい場所にインストールされる。

cp /usr/Linux/src/arch/i386/boot/zImage /boot/newkernel

それから

make modules_install

する。 これはモジュールを /lib/modules にインストールする。 次に、以下のように /etc/lilo.conf を編集し、セクションを追加する。

image = /boot/newkernel
label = new
read-only

次のリブートで、lilo の「new」 カーネルを選択すれば、 新しいカーネルがロードされる。 うまくいったらこれを lilo.conf の最初の位置に移動させると、 毎回デフォルトでブートする。

要約

カーネルのコンパイルは、もし以前にやったことがあるなら、比較的簡単な操作だ。 最初は恐ろしく思えるかもしれないが。

japan.internet.comのウエブサイトの内容は全て、国際法、日本国内法の定める著作権法並びに商標法の規定によって保護されており、その知的財産権、著作権、商標の所有者はインターネットコム株式会社、インターネットコム株式会社の関連会社または第三者にあたる権利者となっています。
本サイトの全てのコンテンツ、テキスト、グラフィック、写真、表、グラフ、音声、動画などに関して、その一部または全部を、japan.internet.comの許諾なしに、変更、複製、再出版、アップロード、掲示、転送、配布、さらには、社内LAN、メーリングリストなどにおいて共有することはできません。
ただし、コンテンツの著作権又は所有権情報を変更あるいは削除せず、利用者自身の個人的かつ非商業的な利用目的に限ってのみ、本サイトのコンテンツをプリント、ダウンロードすることは認められています。

Copyright 2012 internet.com K.K. (Japan) All Rights Reserved.