カーネルのコンパイル

スポンサーリンク

coLinuxで標準でついてくるカーネルはsmbfsも組み込まれているので、 ほとんどの場合そのままつかっても問題ありません。

しかし、私としてはnfsの機能が組み込まれていないので、 カーネルを再構築する必要がありました。 また、xfsなどのファイルシステムを使いたい人も再構築する必要があります。

(なお、最近(0.6.1以降?)の標準のカーネルにはNFS機能が入っています。)

ここでの作業は全てcoLinux内でrootとなって行います (本当はrootでなくても良いところがあるのですが)。

スポンサーリンク

必要なパッケージのインストール

まず最初に、 カーネルのコンパイルに必要な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に変更しておきました。

menuconfig

好みのオプションの選択が終わったら、 一番下の「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を実行すれば、新しいカーネルで起動するはずです。

コメント

タイトルとURLをコピーしました