at posts/single.html

カーネルのバージョンアップ

今までインストール時の2.4.20を使っていたのだけど、そろそろバージョンアップにも挑戦してみようかと思う。

調べたところ、カーネルソースの入手→カーネルの構築(コンパイル)→ブートローダの設定という手順になるみたい。

まずは、カーネルソースの入手から。 Gentooではいくつかの種類のカーネルが用意されているみたい。 うちは、どうやらデスクトップ環境では使わなさそうということがハッキリしてきたので、gs-sources (gsはGentoo Stableの略らしい)にする。「最新のハードウェアサポートを提供するためのチューニングやテストが行われて」いるとのことだし、期待大。 バージョンは最新の2.4.25_pre7-r1にした。

次に、カーネルの構築。 Gentooではgenkernelというツールを使う。 まずはemergeを使ってgenkernelを最新のバージョン(3.0.1)にアップデートした。

genkernelは /usr/src/linux にあるカーネルソースを構築対象とするみたい。 linux-2.4.20-gentoo-r6 へのシンボリックリンクだったのを linux-2.4.25_pre7-gss-r1 へと切り替える。

# rm -f /usr/src/linux
# ln -s /usr/src/linux-2.4.25_pre7-gss-r1 /usr/src/linux
# ls -l /usr/src/
total 3
lrwxrwxrwx    1 root     root           25 Feb 25 23:48 linux -> linux-2.4.25_pre7-gss-r1/
drwxr-xr-x   16 root     root          840 Jan  5 19:24 linux-2.4.20-gentoo-r6
drwxr-xr-x   15 root     root          712 Feb 25 23:50 linux-2.4.25_pre7-gss-r1

カーネルの設定は、2.4.20を構築したときのものを流用する。 設定ファイルはカーネルソースのディレクトリに .config として生成されるが、Gentooでは /etc/kernel にも同じものが作られていてこっちを使ったほうがよさそう。 ということで、おもむろにgenkernelを実行

# genkernel all --kernel-config=/etc/kernels/config-2.4.20-gentoo-r6

すると、カーネルは構築できたものの、モジュールのコンパイルでエラーとなった。

* kernel: Starting compile of linux 2.4.25_pre6-gss modules
* gen_die(): compile of modules failed
* Please see /var/log/genkernel.log for more info on failures

カーネルを linux-2.4.25_pre6-gss にしてみても結果は同じ。 ログはこんな感じ。

os2lvm_vge.c: In function `Clone_Bufferhead':
os2lvm_vge.c:2391: error: structure has no member named `b_inode'
make[2]: *** [os2lvm_vge.o] Error 1
make[2]: Leaving directory `/usr/src/linux-2.4.25_pre6-gss/drivers/evms'
make[1]: *** [_modsubdir_evms] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.25_pre6-gss/drivers'
make: *** [_mod_drivers] Error 2
make: *** Waiting for unfinished jobs....

う〜む。道のりは遠い。 今日はここまで。

参考ページ

関連する日記