推定構築時間: All default options: 4.20 SBU 推定必要ディススペース All default options: 181 MB |
Linux カーネルは全ての Linux システムの中心です。これは Linux を動かしているものです。コンピュータの電源が付けられ Linux システムがブートする時、真っ先にロードされる Linux ソフトウェアの一つがカーネルです。カーネルはシステムのハードウェア構成、シリアルポート、パラレルポート、サウンドカード、ネットワークカード、IDE コントローラー、SCSI コントローラやその他にも多くの物をを初期化します。簡単に言えばつまり、カーネルはソフトウェアが実行できるようにハードウェアを準備します。
インストールされるプログラム: the kernel 及び the kernel headers
Linux は以下のパッケージに依存します: Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.
カーネルの構築はいくつかの段階を踏みます。カーネルの設定、コンパイル、そしてインストールです。 本書のカーネルを設定する方法が気に入らない場合は、その他の方法を探すのにカーネルソースツリーの中の README ファイルを見て下さい。
以下のコマンドを実行してコンパイルの準備をします。
make mrproper |
これはカーネルツリーを完全にクリーンにします。カーネルチームはこのコマンドをそれぞれのカーネルのコンパイルに先立ち実行するよう勧めています。 解凍した後のソースツリーがクリーンであると当てにしてはいけません。
メニュー形式のインターフェイスを通じてカーネルを最適化します。
make menuconfig |
ある状況では make oldconfig の方がより適切でしょう。より詳しい情報については README を見て下さい。
望むのなら、単純にカーネルコンフィグファイル .config をお使いのホストマシンから(それが利用できると仮定します)解凍した linux-2.4.22 ディレクトリにコピーすることでカーネルの設定を飛ばしてもいいでしょう。 しかしこの方法はお勧めしません。すべてのの設定メニューを調べて、ゼロからご自分用のカーネル設定を作成したほうがようでしょう。
POSIX 共有メモリのサポートについては、カーネルの設定オプション "Virtual memory file system support" が有効になっているのを確かめてください。それは "File systems" メニューの中にあって通常デフォルトで有効になっています
依存性を確認して依存性情報ファイルを作ります。
make CC=/opt/gcc-2.95.3/bin/gcc dep |
カーネルイメージをコンパイルします。
make CC=/opt/gcc-2.95.3/bin/gcc bzImage |
モジュールとして設定されたドライバーをコンパイルします。
make CC=/opt/gcc-2.95.3/bin/gcc modules |
カーネルモジュールを使うつもりなら、/etc/modules.conf ファイルが必要となります。 モジュールと一般的なカーネル設定に付属する情報は、通常は linux-2.4.22/Documentation ディレクトリの中にあるカーネル付属文章にあります。 modules.conf の man page と http://www.tldp.org/HOWTO/Kernel-HOWTO.html にあるカーネル HOWTO も情報源となります。
(訳注:カーネル付属文章の日本語訳は Linux JF Project のウェブサイト http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/index.html などで利用できます。)
モジュールをインストールします。
make CC=/opt/gcc-2.95.3/bin/gcc modules_install |
文章なしでは何も完成しないので、カーネルと共にマニュアルページも構築します。
make mandocs |
そして全てのページをインストールします。
cp -a Documentation/man /usr/share/man/man9 |
カーネルのコンパイルは完了しましたが、作成されたファイルのいくつかはまだソースツリーの中にあります。 インストールを完成させるために、二つのファイルが /boot ディレクトリにコピーされる必要があります。
カーネルファイルへのパスは、お使いのプラットフォームに依存します。カーネルをインストールするため次のコマンドを実行します。
cp arch/i386/boot/bzImage /boot/lfskernel |
System.map はカーネルのシンボルファイルです。 実行中のカーネルの「カーネル API に含まれる全関数の関数エントリポイント」と「カーネルデータ構造のアドレス」のマッピング情報が、このファイルに含まれています。 マップファイルをインストールするために以下のコマンドを実行します。
cp System.map /boot |