Roads to Linux - 2.0.32カーネルへのバージョンアップ
■カーネルのバージョンアップ
カーネルバージョン2.0.32が急に公開されました。例のPentium F00Fバグに対応する修正だと思われます。これは結構恐いバグなので、ぜひこのバージョンアップは行っておきたいところです(うちのLinuxはPentiumじゃないけど)。
さて、私の環境(というかaic7xxxユーザ全員?)では常に問題になるバージョンアップ方法ですが、今回は恐らくPentiumバグ対応のみに終始しているだろうし、たとえそれ以外の修正が入っていたとしても、aic7xxx周りに変更はないだろうと考えました。そして、いつも起こるトラブルの原因が、前回2.0.31へのバージョンアップ時に想定した通りaic7xxxドライバのパッチ作成方法にまつわるものなのであれば、今回のバージョンアップはまっとうな方法で行えるはずです。
まあ、これでもしも問題が起きたとしたら、またフルセットをダウンロードしてきて、make configをしこしことすべてやり直すだけの話です。
patch-2.0.32.gzを入手し、/usr/srcディレクトリでパッチを当てます。
gzip -dc patch-2.0.32.gz | patch -p0
これで/usr/src/linuxにパッチが当たります。
と、パッチを当てている最中、ふと目の隅にとまった文字が気になり、パッチの中をlessで覗いてみました...なんという事! aic7xxx周辺にもパッチが当たっています。うーん、しかし、前回の2.0.31から日も浅いから、ドライバ担当者のディスクの中もそう状況が変わってはいないだろうし、とりあえずこのまま作業を継続してみる事にします。
さて、次に/usr/src/linuxへ移動し、make configでカーネル設定を行います。前回makeからの変更はありません。今回はさすがに、新規に追加された項目はないようです。
cd linux
make config
設定変更後、makeを行います。
make dep ; make clean
make zlilo
aic7xxx.cのコンパイルで、いつものように変数未使用の警告が出ましたが、恐らく大丈夫でしょう。
make modules ; make modules_install
再起動してみます。問題なく起動できたようです。
いつものように、立ち上がったカーネル/vmlinuzを/vmlinuz.2.0.32にコピーし、/etc/lilo.confに2.0.32用エントリを追加してliloを実行しておきます。
今回は久々にパッチで楽にバージョンアップできました。って、これが普通なんですが。本当はAHA1542にでもSCSIカードを変更すれば、こんな心配をしながらパッチを当てる必要もないのでしょうが、知り合いに取られたまま、恐らくこのまま返ってこないので、そういうわけにもいきません。
あ、次回コンパイル時こそは、各種機能のモジュール化を実施してしまおう。