Linux(CentOS4.2)とSiS965(内蔵SiS5513 / SiS182 PATA/SATAコントローラ)ではまったの巻

事前によく調べもせずに、RedHatクローンのCentOS4.2 x86_64 を AMD Sempron 2800+ +SiS761GX+SiS965のマザーボードという構成に入れようとして、はまった。
問題はHDD。


1. SATAは、インストーラが認識しない
最初、SATAのHDDを接続したら、CentOS4.2のインストーラカーネル(2.6.9-22.EL)はSiS182を認識しなかった。
ドライバディスクを作成する手順を探したが、かなりめんどくさそうだったのでSATAはあっさりあきらめ、ATA133のHDDでやることにした。
→BIOS設定に SiS Serial ATA mode という項目があり、IDEかRAIDかを選べる。Windows98系をインストールするときはRAIDにしろとあるので、そうするとパラレルATAエミュレーションモードになるのかもしれない。でも別にそんなモードでは使いたくない。

2. パラレルATA は、UDMAが有効にならない
ATA133のディスクではインストールは出来るものの、どうも妙に時間がかかる。
インストール後に hdparm -t /dev/hda してみたら、 2~3MByte/secしかでない。UDMAが有効になっていない。
lspci してみると、
・MuTIOL Media IO SiS965 (PCIデバイスID: 0x965)
・IDEコントローラ SiS5513(PCIデバイスID: 0x5513)
・SATAコントローラ SiS182(PCIデバイスID: 0x0182)
があるように見えている。

だが、CentOS 4.2のupdateで提供されている最新のカーネル 2.6.9-22.0.2.EL の sis5513.c を見てみると、 コントローラ検出用のテーブル SiSHostChipInfo[] に PCIデバイスID 0x5513の記載が無い…。だから5513系だと認識されないのだった…。デバイスIDはそのものスバリ 5513 なのに…。こんな不条理なことがあってよいものか?

しょうがないので SiSHostChipInfo[] に
{ “SiS5513”, PCI_DEVICE_ID_SI_5513, ATA_133 },
を加えてカーネルビルド…PIOモードで動いてるディスク上では死ぬほど時間がかかる…。
作り直したカーネルで起動したら、 hdparm -t /dev/hda で 60MByte/sec. ほど出るようになりました。
(このへんは 「ASUS K8S-MX + Athlon64 で CentOS4.0 を立ち上げる」 を参考にさせていただきました)
しかし、せっかく yum update で済ましたいからCentOS入れようと思ってるのに、この状況じゃ先が思いやられる。
というわけでこのマシンは家族用のWindowsマシンにすることにしてしまった私でした。
やっぱ、Linux入れるのはコンサバにIntelにしよ…。


追記。kernel 2.6.15.3 ソースを落としてきてちょっと見てみた。
sis5513.c を見たら
{ “SiS965”, PCI_DEVICE_ID_SI_965, ATA_133 },
という行があって、対応しているようだ(ふむ、たしかにSiS965のデバイスIDで検出したほうがいいだろうな…)。その他は特にSiS965専用の処理は入ってないように思える。
sata_sis.c にも SiS182検出が入っている。
このへんの変更は 2.6.15で入ったみたいなので、相当新しいカーネルを使ってるディストリビューションじゃないと、SiS965を使うのはめんどくさそう。

コメント

タイトルとURLをコピーしました