|
|
|
|
|
|
|
Linuxでのカーネル再構築方法 |
|
|
Linuxでのカーネル再構築手順
Linuxから、WindowsのNTFSへアクセスしたい場合などは、往々にしてKernelの再構築が必要になります。
*WindowsのNTFSは読み込み専用で使用してください。書き込みはdangerous!とKernelコンフィグレーションにも書い
てあります。
今回はRedHatLinuxの例です。Turboの注意点は記載しておきました。
基本的に、Kernel-2.6系でも基本的には同一手順です。
1.まず今使っているカーネルソースのrpmを入れておきます。(あとで楽出来ます。)
2.カーネルのソースとパッチを入手します。
カーネルソースとカーネルパッチは、www.kernel.orgのftp://ftp/kernel/org/pub/linux/kernel/入
手してください。
tar.gzまたはtar.bz2形式であります。
パッチはtest版(pre*)でもいいでしょう。
例)
linux-2.4.20.tar.gz or linux-2.4.20.tar.bz2
patch-2.4.21-pre7.gz
or patch-2.4.21-pre7.bz2
3.カーネルソースの展開とパッチ適用
まず、作業環境は"root"になり、LANG設定を英語環境(c)で行ないます。
%su -
rootpasswd:
#LANG=c
カーネルのソースは/usr/srcに展開します。
#tar zxvf linux-2.4.20.tar.gz
-C /usr/src/
展開して出来た"/usr/src/linux-2.4.20/"にパッチファイルをコ
ピーします。
#cp patch-2.4.21-pre7.gz
/usr/src/linux-2.4.20/
パッチを適用します。
#zcat patch-2.4.21-pre7.gz
|
patch
-p1
これでパッチが適用されます。
*bz2の場合は、
#bzip2 -d patch-2.4.21-pre7.bz2
#cat patch-2.4.21-pre7|patch
-p1
4.カーネルのコンフィグレーション(既存環境の利用)
ここでカーネルの設定ですが、最初から設定するのはよくわからん!
そういう人は、現在のカーネル設定を引き継ぐことが出来ます。
1.で入れたカーネルのソースrpmを利用します。
RedHatLinuxで、"kernel-2.4.18-i686"を使用している場合、既存カーネルのコンフィグレーションファイルは、
"/usr/src/linux-2.4.18-14/configs/kernel-2.4.18-i686.config"として存在するはずです。
これを先程展開した"/usr/src/kerne;-2.4.20/"にコピーします。
#cp /usr/src/linux-2.4.18-14/configs/kernel-2.4.18-i686.config/usr/src/kerne;-2.4.20/.config
ただし、このコンフィグレーションファイルは、あくまでkernel-2.4.18のものです。先程入手した"kernel-2.4.20"
とは設定する項目数も違います。
そこで、古いコンフィグレーションファイルを新しいkernelにマッチングさせます。
#make oldconfig
このコマンドを発行すると新しく追加された設定項目の設定をどうするか聞かれます。
"y"はカーネルに静的に取り込みます。
"m"はカーネルモジュールとして設定します。(必要な時に読み込むようにします。)
"n"はこの設定を無効にします。
"?"でHelpが見られます。
5.カーネルのシンボリックリンクを作成する。
"/usr/src/"以下にlinuxやlinux-*.*などのシンボリックリンクが作成されています。
これは、アプリケーションのコンパイルや、動作に/usr/src/linuxなどがあると仮定してあるものを、正常に動作させるために必要です。
たとえば、"/usr/src/linux"があった場合は、一旦このシンボリックリンクを削除してから、先程展開したkernelのもで作りなおしま
す。
#rm
/usr/src/linux
#ln -s
/usr/src/linux-2.4.20 /usr/src/linux
これでした準備は完了、いよいよカーネルのコンフィグレーションの開始です。
6.カーネルのコンフィグレーション
GUI環境が使用できるか方は、*kernel2.6で、Gnomeな人は、make
gconfig KDEな人は make kconfig
#make xconfig
でカーネルコンフィグレーション用設定ツールが起動します。
GUI環境がないか方は、
#make menuconfig
か、
#make config
追加したい項目や削除したい項目を設定したら保存してください。
7.コンパイル
やっとカーネルのコンパイルです。*kernel2.6からmake
depは無くなりました。
#make dep
#make clean
#make bzImage
モジュールをコンパイルします。
#make modules
#make
modules_install
#make install
*TurboLinuxでは、make install時にErrorが出ます。
これは、make installでGRUBの設定を書き換えようとするんですが、うまく行かないようです。
理由は、ブートローダーの設定のTurboLinuxで触れています。カーネルのインストール自体は問題ありません。
8.ブートローダーの設定
RedHatLinux
GRUBの設定ファイルは、"/boot/grub/grub.conf"です。
今回入れたkernel-2.4.20ではこんな感じになります。
title
RedHatLinux(2.4.20)
root (hd0,0)
kernel /vmlinuz-2.4.20 ro root=/dev/hda1
initrd /initrd-2.4.20.img
TurboLinux
TurboLinux 10
Desktopでは、GRUBから起動するカーネルは、/boot/vmlinuzというシンボリックファイルになります。
ですが、この方法だと、ひとつのカーネルでしか起動できないので、書き換えます。
これは、私のgrub.confです。参考まで。
*/bootパーティションを作成してますので、kernel
/boot/vmlinuz-2.6.0-test9ではなく、 kernel /vmlinuz-2.6.0-test9になります。
title
Turbolinux(test9)
root (hd0,0)
kernel /vmlinuz-2.6.0-test9 ro root=/dev/hda1 acpi=on
initrd /initrd-2.6.0-test9.img
title
Turbolinux
root (hd0,0)
kernel /vmlinuz-2.6.0-test5_2 ro root=/dev/hda1 acpi=on
initrd /initrd-2.6.0-test5_2
title Solaris
chainloader (hd0,1)0+1
title Windows_OS
chainloader (hd0,0)0+1
*注意点
1,このまま書いてもダメよ!自分の環境に併せて書いてください。もとのカーネルの起動設定を参考に!
2.もとのカーネルから起動できるように、以前のものは残しておく。
3.liloを使用している場合は、編集後、必ず"/sbin/lilo"をrootで実行すること。
これで、カーネルのコンパイル、インストールは終了です。
再起動して新しいカーネルを起動してください。
私の思いは、カーネルぐらい自分でコンパイルしたものを使おうよ、です。
ただし、RedHatNetworkにつなぐと、RedHatの配布カーネルじゃないから責任持てないよっていわれます。
でもどーせFTP版だし、Linuxディストリビュータにどうこうしてくれっていっても始まらないし、、、。
いいんです、これで!
カーネルの再構築に関しては、以下の書籍が参考になるでしょう。
日経Linux 2003年2月号 日経Linux
Linuxカーネル設定ガイド 株式会社翔泳社
ISBN4-7981-0088-9
では、素敵なLinuxライフを!
|
|
|
|
|
|
|
Producted by Tomoya Sakurai
|
|
|