Fedora Core 3 のカーネル構築に挑戦してみた。
KDDIのミラーから、kernel-2.6.9-1.667.src.rpm, kernel-utils-2.4-13.1.39.src.rpm をダウンロードして、インストールしたあとに、unameコマンドでアーキテクチャを確認してからrpmbuildをする。
# rpm -ivh kernel-*.rpm
# cd /usr/src/redhat/SPECS
# uname -a
Linux xxx.sssg.org 2.6.9-1.667smp #1 SMP Tue Nov 2 14:59:52 EST 2004 i686 i686 i386 GNU/Linux
# rpmbuild -bp –target=i686 kernel-2.6.spec
# cd /usr/src/redhat/SPECS
# uname -a
Linux xxx.sssg.org 2.6.9-1.667smp #1 SMP Tue Nov 2 14:59:52 EST 2004 i686 i686 i386 GNU/Linux
# rpmbuild -bp –target=i686 kernel-2.6.spec
こうすると、カーネルソースは、
/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/
のように、/usr/src/redhat/BUILD以下に展開される。
# cd /usr/src
# cp -r redhat/BUILD/kernel-2.6.9/linux-2.6.9/ .
# cd linux-2.6.9
# cp configs/kernel-2.6.9-i686-smp.config .config
# make oldconfig
# cp -r redhat/BUILD/kernel-2.6.9/linux-2.6.9/ .
# cd linux-2.6.9
# cp configs/kernel-2.6.9-i686-smp.config .config
# make oldconfig
これで、古いカーネルコンフィギュレーションは反映されているはずなので、後は make menuconfig とか、make xconfig を使ってカーネルの設定を変更する。
それで、なんでこんなことをしているかというと、ACARDのRAIDカード(ATP867xのチップが載っている)を使いたかったからで、それ用のパッチを導入したかったのだけれど、2.6.5用のものしかなかったので半分手動でパッチの導入をした。ちょっと苦労したけれど、とりあえずmake xconfigのメニューではPCI/IDEにATP867がでてきたので、チェックをつけて保存した。
そのあとは、次の手順でmakeからインストールまでしてみた。… 結果ですが、RAIDカードは認識されませんでした。どこがいけないのかなぁ。X(
参考になったページ
http://wiki.fedora.jp/?Kernel%2F2.6#content_1_2
http://readlist.com/lists/vger.kernel.org/linux-kernel/1/6789.html