カーネルの構築
日時:2004/09/26 18:20
Gentoo Linuxでは、適用しているパッチによって、複数のカーネルソースを用意している。Gentoo Kernel Guideに、各カーネルソースにどのようなパッチが適用されているかが解説されているので、それを見て目的に合ったものを選べばよい。特に希望がない場合は、gentoo-sourcesがよい。
使用するカーネルソースが決まったら、それをインストールする。
これ以外については環境に応じて設定する。ここでのポイントは、余裕のある設定にして「確実に起動すること」を目的にすること。カーネルコンフィグレーションを追求するのは、それからでも遅くはない。
menuconfigを終了したら、カーネルをコンパイルする。2.4の場合は
# emerge gentoo-sourcesemergeが終わったら、カーネルソースへのシンボリックリンクを確認して、
# ls -l /usr/src/linux必要に応じてリンクを張りなおす。
# rm /usr/src/linuxカーネルの構築は、手動でやる方法とgenkernelというツールを使う方法がある。いまは直っているかもしれないが、一時期genkernelを使うと不具合が発生したので、個人的には手動でカーネル構築を行うことにしている。
# cd /usr/src
# ln -s カーネルソース linux
# cd /usr/src/linux後は好みに応じて設定すればよいのだが、Gentoo Linuxでは必須のオプションがいくつかある。
# make menuconfig
Code maturity level options --->ファイルシステムは、カーネル2.4と2.6で多少異なる。2.4では、
[*] Prompt for development and/or incomplete code/drivers
File systems --->とし、2.6では
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
[ ] /dev/pts file system for Unix98
PTYs
File systems --->とする。また、最低でも
Pseudo Filesystems --->
[*] /proc file system support
[*] /dev file system support (OBSOLETE)
[*] Automatically mount at boot
[*] Virtual memory file system support (former shm fs)
Reiserfs supportの中の1つをオン(モジュールではなく)にしなければならない(複数をオンにしてもよい)。次に、2.4の場合は
Ext3 journalling file system support
JFS filesystem support
Second extended fs support
XFS filesystem support
ATA/IDE/MFM/RLL support --->を設定する。
IDE, ATA and ATAPI Block devices --->
<*> Include IDE/ATA-2 DISK support
[ ] Use multi-mode by default
[*] Auto-Geometry Resizing support
これ以外については環境に応じて設定する。ここでのポイントは、余裕のある設定にして「確実に起動すること」を目的にすること。カーネルコンフィグレーションを追求するのは、それからでも遅くはない。
menuconfigを終了したら、カーネルをコンパイルする。2.4の場合は
# make dep && make bzImage modules modules_install2.6の場合は
# make && make modules_installコンパイルが終わったら、構築したカーネルとSystem.map、コンフィグレーションファイルを/bootにコピーする。以下の例は、kernel-2.4.26-gentoo-r9の場合。ここは適宜書き換える。
# cp arch/i386/boot/bzImage /boot/kernel-2.4.26-gentoo-r9必要であれば、そのほかのモジュールもコンパイルして/etc/modules.autoload.d/kernel-2.4を書き換え、
# cp System.map /boot/System.map-2.4.26-gentoo-r9
# cp .config /boot/config-2.4.26-gentoo-r9
# modules-updateを実行しておく。