(キーワード: Linux カーネル)
必要なパッケージのインストール
まず最初に、 カーネルのコンパイルに必要なDebianのパッケージをインストールします。
必要となるのは、カーネルのコンパイルにgcc-3.0パッケージ、 Debianのカーネルパッケージ作成にkernel-packageパッケージです。 また、カーネルのコンフィグレーションをテキストコンソールで行う場合には、 libncurses-devパッケージが必要になります。 次のコマンドでこれらのパッケージをインストールしておきましょう。
# apt-get install gcc-3.0 kernel-package libncurses-dev
さらにここで重要なことをやらなければいけません。 それは、Debian 3.0(Woody)のデフォルトのコンパイラがgcc-2.95になっているということです。 このままでは、せっかくgcc-3.0をインストールしても、カーネルのコンパイルにはgcc-2.95が使用されてしまい、コンパイルエラーとなってしまいます。
そこで以下のコマンドでデフォルトのコンパイラを変更します。
# ln -sf /usr/bin/gcc-3.0 /usr/bin/gcc
カーネルソースのダウンロード
適当なサーバから2.4.25のカーネルソースをダウンロードします。 サーバはringサーバのどれかがいいでしょう。 よくわからない人は次のコマンドでダウンロードできるはずです(サイズは約30MB)。 なお、ダウンロード先は/usr/srcとします。
# cd /usr/src # wget http://ring.nihon-u.ac.jp/pub/linux/kernel.org/kernel/v2.4/linux-2.4.25.tar.bz2
ダウンロードしたら以下のコマンド展開しておきましょう。
# tar xfvj linux-2.4.25.tar.bz2
colinuxパッチの適用
ここから、colinuxのパッチが含まれたファイル(colinux-0.6.0.tar.gz)を取得します。 取得したらこのファイルも展開しておきます。
# cd /usr/src # wget http://easynews.dl.sourceforge.net/sourceforge/colinux/colinux-0.6.0.tar.gz # tar xfvz colinux-0.6.0.tar.gz
実際のパッチファイルはcolinux-20040322/patch/linuxです。
これを適用するには以下のコマンドです。
# cd /usr/src/linux-2.4.25 # patch -p1 < ../colinux-20040322/patch/linux
これで、coLinux対応のカーネルソースが準備できました。
カーネルのコンフィグレーション
次にカーネルに組み込む機能を選択します。 ただ、coLinux特有のオプションを設定し忘れると困るので、 colinux-2004-0322/conf/linux-configをベースに行います。
まず、ペースの設定をカーネルのソースにコピーします。
# cd /usr/src/linux-2.4.25 # cp ../colinux-2004-0322/conf/linux-config .
次に、コンフィグレータ(?)を起動します。 telnet(あるいはssh)でconsole環境の人は meke menuconfigを、GUI環境の人はmake xconfigを実行します。 私は、make menuconfigです。
# cd /usr/src/linux-2.4.25 # make menuconfig
すると以下のような画面が現れます。 ここで、下から2番目の「Load an Alternate Configuration File」を 選択して、出てきた画面に「linux-config」を入力します。 これで基本的なcoLinuxの設定が取り込まれます。
後は、メニューから自分の必要なオプションを選択するのみです。 ちなみに、NFSを有効にするためには「File System → Network File System → NFS file system support」を有効(*かM)に します。 私は、ついでに、デフォルトのコードセットをcp932に変更しておきました。
好みのオプションの選択が終わったら、 一番下の「Save Configuration to an Alternate File」を選択して、 自分の設定を適当なファイルにバックアップしておきましょう。
その後は、「Exit」を選択すると、 設定を保存する稼動するかきかれるので「Yes」を選択して終了します。
カーネルのコンパイル
いよいよ、カーネルのコンパイルです。 ここではDebianのしきたりに従って、カーネルをパッケージ化します。 また同時に、カーヘルヘッダファイル、カーネルソースファイルのパッケージも作っておきます。
コンパイルには以下のコマンドを実行します。「revision=」に続く 「colinux.1」は自分の好みの文字列(この設定を識別する文字列)に変更してください。 私は、「ホスト名+そのバージョンでのパッケージ作成回数」で名前を付けています。 この場合は、ホスト名がcolinuxで、2.4.25のパッケージ作成が1回目という意味です。
コンパイルには結構時間がかかるのでのんびり待ちましょう。
# cd /usr/src/linux-2.4.25 # make-kpkg --revision=colinux.1 kernel_image kernel_headers
コンパイルしたカーネル本体はkernel-image-2.4.25-co-0.6.0_colinux.1.debに 含まれれるvmlinuzというファイルです。 しかし、このカーネルは圧縮されており、 そのままcoLinuxでは使用することができません。 そこで、面倒ですが別途、 次のコマンドで圧縮されていないカーネルを作成します (本当はvmlinuzから取り出せるはずなのですが、自信がないのでやめておきます)。
# cd /usr/src/linux-2.4.25 # make vmlinux
作成したカーネルのインストール
まず、作成したカーネルパッケージ(kernel-image-2.4.25-co-0.6.0_colinux.1.deb)を インストールします。 ただ、インストールするカーネルのバージョンと、 現在使用しているバージョンが同じだと/lib/modules以下のディレクトリが バッティングしてしまうので、名前を変更してからインストールします。
# mv /lib/modules/2.4.25-co-0.6.0 /lib/module/2.4.25-co-0.6.0.old # cd /usr/src # dpkg -i kernel-image-2.4.25-co-0.6.0_colinux.1.deb
なお、インストール中の質問(「Would you like to create a boot floppy now?」と 「Would you like to create a boot floppy now?」)には、両方とも「no」とします。
次に、/usr/src/linux-2.4.25/vmlinuxをWindows側にコピーします (こちらに、 Host PCフォルダをマウントする方法が書いてあります)。 その後、coLinuxを一旦終了してから、 vmlinuxをcoLinuxのフォルダ(c:\coLinux)にコピーします。 もちろん、このときには元のファイル(vmlinux)は取っておきましょう。
以上で、カーネルのコンパイル&アップグレードは完了です。 colinux-daemon.exeを実行すれば、新しいカーネルで起動するはずです。
Copyright © 2004-2008 scratchpad All rights reserved.