GentooLinux のインストール : カーネルコンパイル
いよいよ恐怖のカーネルコンパイルです。他の多くのディストリビューションと違い、 GentooLinux はユーザーが手動でカーネルをコンパイルするのが基本です。genkernel というスクリプトで自動化する方法もありますが、これだと汎用的なカーネルができてしまい、用途に最適なシステムを構築できるという GentooLinux の良さが損なわれます。 GentooLinux を使うなら手動コンパイルです!(゜▽゜)
カーネルソースのダウンロード
GentooLinux では、適用されるカーネルパッチの種類によっていくつかのカーネルソースが用意されています。ここでは最も一般的な gentoo-souces を使います。その他のカーネルについては、Gentoo Linux カーネルガイドを参照してください。
以下のコマンドで gentoo-sources のソースがダウンロードできます。
USE="-doc" emerge gentoo-sources
カーネルのコンフィギュレーション
以下のコマンドでカーネルのコンフィギュレーションを開始します。
cd /usr/src/linux make menuconfig
テキストベースのメニューが表示されます。操作方法は以下のようになっています。
| キー操作 | 説明 |
|---|---|
| ↑ | カーソルを上に移動 |
| ↓ | カーソルを下に移動 |
| スペース | ビルドに含めるかどうかの設定を変更 |
| Enter | サブメニューに移動 |
| Esc×2 | 上の階層に移動、ルートであれば設定終了 |
| ? | その項目のヘルプを表示 |
設定項目の最後に "--->" とあるのは、その下にサブメニューがあることを示します。その項目で Enter を押すと、サブメニューに移動です。また、サブメニューのない設定項目の先頭の記号は以下の意味になります。
| 記号 | 説明 |
|---|---|
| [ ] もしくは < > | ビルドに含めない |
| [*] もしくは <*> | カーネルバイナリに含めてビルド |
| <M> | モジュールとしてビルド |
設定項目は多岐にわたっていますので、以下では最低限必要な設定のみをご紹介します。あとはお好みによって変更してください。
プロセッサの設定
Processor type and features --->
Processor family --->
[ ] Symmetric multi-processing support
- Processor family
- Pentium4、PentiumM、Athlon、Athlon64 など、けっこう細かく設定できます。私が試したときはデフォルトで Pentium4 だったので、もしかしたら CPU タイプを自動判別している(?)かもしれませんが、もし適切な設定でなかったら修正しておきましょう。
- Symmetric multi-processing support
- 仮想マシンの構築時に CPU の数を「One」にしていたなら、無効にしたほうが軽くなります。もちろん、「Two」にしたときは有効にしないと意味がありません。
VMware 特有の設定
VMware の仮想マシンに搭載されているデバイスなどをサポートするため、以下の設定をする必要があります。とくに、「AMD PCnet32 PCI support」は必ずモジュールとしてビルドしてください。でないと、 VMwareTools をインストールするときに支障が出ます。
Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
[*] Automatic kernel module loading
Device Drivers --->
Fusion MPT device support --->
<*> Fusion MPT ScsiHost drivers for SPI
SCSI device support --->
<*> SCSI disk support
SCSI low-level drivers --->
<*> SYM53C8XX Version 2 SCSI support
(0) DMA addressing mode (64bit CPU なら 1 がいいかも)
ATA/ATAPI/MFM/RLL Support --->
<*> ATA/ATAPI/MFM/RLL support
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
<*> Include IDE/ATA-2 DISK support
<*> Include IDE/ATAPI CDROM support
[*] PCI IDE chipset support
[*] Generic PCI bus-master DMA support
<*> Intel PIIXn chipset support
Networking support --->
[*] Networking device support
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
[*] EISA, VLB, PCI and on board controllers
<M> AMD PCnet32 PCI support
私は試していませんが、サウンド機能を有効にするには以下の設定も必要なようです。
Device Drivers --->
Sound --->
[*] Sound card support
Advanced Linux Sound Architecture --->
<*> Advance Linux Sound Architecture
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
PCI devices --->
<*> (Creative) Ensoniq AudioPCI 1371/1373
すべて設定したら、ルートメニューまで戻ってさらに Esc キーを 2 回押し、コンフィギュレーションを終了します。
カーネルのコンパイル
以下のコマンドでカーネルコンパイルを行います。
make && make modules_install
カーネルの構成にもよりますが、意外と早く終わります。コンパイルが終了したら、以下のコマンドで /boot にコピーしておきます。
cp arch/i386/boot/bzImage /boot/kernel-2.6.14-gentoo-r5 cp .config /boot/config-2.6.14-gentoo-r5
カーネルモジュールの設定
ネットワークドライバをモジュールとして構築したので、起動時にそれが有効になるように設定します。起動時に読み込むモジュールは、/etc/modules.autoload.d/kernel-2.6 に記述します。以下のように nano で編集します。
nano -w /etc/modules.autoload.d/kernel-2.6
最終行に "pcnet32" とだけ追加して、保存します。もし他にも読み込むべきモジュールがあれば、1 行 1 モジュールで記述します。
以上でカーネルのコンパイルは終了です。明日は残りの環境設定を済ませて・・・といきたいところですが、さすがに元日は作業時間が取れません(^^;。続きは 2 日からの予定。では、良いお年を〜。
詳しくはこちらの記事をどうぞ!

この記事にコメントする