X86_64の落し穴

ファイルサーバの続き。

ハードウェアを組み上げて、電源を入れてみる。ちょっとした配線ミスを直して無事起動する。起動したら、HDDを認識させるわけだが、認識しない。

dmesgを見る限り、インターフェイスを認識しているのだが、HDDがまるで見えていない。配線ミスした時に壊したかと思い、あれやこれや配線をいじったり、SATAカードを交換してみたりとかするのだが、動かない。HDDの箱が悪いのかと思い、直接つないでみても動かない。マザーに元々あるインターフェイスにHDDを繋ぐと動くので、HDDは壊れていない。だからつまりは、インターフェイスカードがまともに動いていない。

HDDが見えてないというのはわかったのだが、その理由がわからない。SATAドライバはいろいろと問題があるものだということがわかったので、Libata-tj-stableでパッチを取って来て入れてみたのだが、動かない。カードが悪いのかと思ってネットを探すと、むしろ「玄人志向で動くようになりました」的な話ばかりで、トラブったという話は皆無。

他のマシン(IA32)で試してみると、このカードもちゃんと動く。だから、カードも壊れていない。

実はファイルサーバはAMD64なものだから、64bitカーネルにしている。だから4GBの壁はないはず。だからメモリも4GBにしている。そこで「もしや」と思い、1GB抜いてみたら… ちゃんと動いた。

要するに、玄人志向のカードのチップ(Sil 3132)のドライバは、32bitまででしかテストがされていないらしい。4GBだと動かない。思うに、「Linuxで問題なく動いているカードとドライバ」と言われているものは、あくまでもIA32の範囲のことであり、それ以上となると要確認ということなわけだ。

そんなわけで、メモリは3GBになってしまった。せっかく買って来たのになぁ。