VIA C3とLinux 2.6.24(Debian)
VIA C3とLinuxカーネル2.6.24で引っかかったので書いておきます。
先日自宅サーバのDebian testingでLinuxカーネルを2.6.22から2.6.24にアップしたところ、起動できなくなってしまいました。このマシンはCPUにVIA C3 Nehemiah 1GHzを搭載するもので、カーネルはlinux-image-2.6.24-1-686を利用していました。一応2.6.22をホールドして運用していたのですが、やはり気になります。
ネットで探すと、こちらなどに同様のことが書かれています。ここではすでに解決したとなっていますが、Debianパッケージのlinux-image-2.6.24-1-686 2.6.24-6ではやはり起動しません。
ということで、Debian流のカーネル構築を試してみました。
基本的にはDebian GNU/Linux スレッドテンプレを参考に作業しました。注意したところを書いておくと、
- /boot/config-2.6.24-1-686を.configにコピーしてoldconfigする。
- menuconfigするときに、Processor type and featuresのProcessor familyでVIA C3-2を選ぶ。
- make-kpkgでカーネルを作る時に、--initrdを指定する。
- インストールしたときに、サフィックスをつけ忘れたためか、grubの順番が2番目になったので手動で先頭に移動。
というようなところで、実際はすんなりできてしまいました。ただし、後ろでmewestとかfreshreaderのクローラとか走っていたこともあって、ビルドには4時間くらいかかっていました。
とりあえず2.6.24でブートできるようになりました。次のバージョンではそのまま動くといいのですが。
(2008/09/15追記)
結局2.6.24以降、配布されるカーネルではVIA C3でのブートは実現していません。
何度か試しておそらくこれでいいだろうと思われる手順をメモしておきます。
- aptitudeでカーネルのソースパッケージを取得
- 適当なところに展開。1GB以上の空き容量は必須。
- 配布カーネルが入れてあればそのconfigを.configにコピー
- make oldconfigで設定を引き継ぎ。
- カーネルその他につけるバージョン文字列の追加分を決めておく。これはそのままカーネルバージョンの後ろにつくので、「-」で始まる文字列にする。
- VIA C3のための設定をする。--append-to-versionには上で決めた文字列を指定する。
make-kpkg --append-to-version=-100-c3 --config menuconfig configure
メニューでプロセッサをVIA C3-2にする。
- ビルドする。
fakeroot make-kpkg --append-to-version=-100-c3 --initrd kernel-image
append-to-versionにはおなじ文字列を指定する。
- 最終的に、上記だとlinux-image-2.6.26-100-c3みたいなパッケージができる。
もし何かあってやり直したくなったら、make-kpkg cleanする。
ということで、別マシン上のVMware上でビルドする感じになってます。