PowerEdge SC430にはCentOS 4.2を入れようと思ってたんだけど、とりあえずそのままRAIDカードとHDDを移設して起動させてみた。
が、そのままではUSBキーボードが認識されないし、Gigabit EtherデバイスBroadcom 5751も認識されない。OSが起動したはいいけど、まったく手も足も出せない状態になってしまった。^^;;
以前のサーバで使っていたNIC(Intel Ether Express)をPCIに刺して何とかネットワークからログインできるようにした。NICで助かった。^^;;
まずはディスプレイドライバがないためにXloginが表示できなくなっていたのでXGI社のVolari Z7ドライバをインストール。
Xloginが動いて、USBマウスは認識して使えることが分かった。ならUSBキーボードも認識しそうなものだと思ってUSBポートを差し替えると、認識するポートを見つけた。SC430には合計7つのUSBポートが付いているが、なぜかそうのうちの3つしかUSBキーボードもマウスも認識してくれない。なんでなんだろう、、、
とりあえずGigabit Ether Broadcom 5751を使えるようにするためにドライバを落としてきてmakeするが宣言がないものがあってコンパイルが通らない。READMEをきちんと読むと、なんとkernel 2.4.24以上に対応らしい。現在のkernelバージョンは2.4.20だ。;_;
がんばってkernelを2.4の最新にすることにした。なんか大掛かりなことになってきた。^^;;
kernel.orgからkernel 2.4.32をダウンロードする。このkernelは2005年11月16日にリリースされたようだ。結構新しいじゃないですか。 サイズは30M強くらいなのであっという間にダウンロードできる。
/usr/srcに展開してmake xconfigでカーネルのオプション設定を行うが、以前のカーネル(2.4.20)設定をそのまま使うことにした。kernelをmakeする。
make dep
make bzImage
make modules
make modules_install
これらには数十分程度かかる。(昔は一日仕事だったよなぁ。)
ビルドがすんだら/bootへ必要なものをコピー。
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.32
cp System.map /boot/System.map-2.4.32
cp vmlinux /boot/vmlinux-2.4.32
cp .config /boot/config-2.4.32
initrdの作成。
cd /boot
mkinitrd initrd-2.4.32 2.4.32
/bootにはいくつかのカーネルバージョンのmodule-info-2.4.*というファイルがあるが、これはどういしたらいいんだろう。だいたいこれって誰のためのファイルなんだろう。分からないので、とりあえず昔のカーネルバージョンのmodule-info-2.4.20-20.9をmodule-info-2.4.32という名前でコピーしてよしとした。^^;;
grubに新しいエントリを作成して再起動。おぉぉ起動する。
Gigabit Etherもドライバを入れなくても認識した。ディスプレイドライバも入れ直すことなく認識。USBポートもすべて使えるようになった。さすがに新しいカーネルだけあって、最新のハードウェアをサポートしているようだ。
しかしdmesgを確認すると、メモリの確保ができなくていくつものサービスがkillされている。
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
悩んだあげく、mt-daapd(iTunesへのデータの共有サービス)がメモリをたくさん消費していて気になってたことを思い出した。mt-daapdを起動しないようにしたら問題なくOSを起動できるようになった。起動直後のメモリfreeも格段に増えた。
#これはたぶんmt-daapdの作りが悪いか設定が悪いんだろう。
ということで無事になんとかPowerEdge SC430に載せ換えることができた。
#当分このままだろうな。