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 日からの予定。では、良いお年を〜。
詳しくはこちらの記事をどうぞ!
この記事にコメントする