LinuxとICH7は鬼門?!

Computer, Linux 8月 1, 2005
(Last Updated On: 2018年8月3日)

GigabyteのGA-8I945Gマザーボードを購入しました。このマザーボートを購入した理由はPCI Express x16用のハイエンドグラフィックスカードは必要なかった事と廉価なPCI Expressグラフィックスカードが無かった事、そしてPentinumDを使いたかった為です。
# IntelのxxxGチップセットはグラフィックスカード機能を内蔵しています。
# 16MBくらいのメインメモリは使えるのだろう、と思っていたらGA-8I945G
# は最大でも8MBしか使えません…

945チップセットはICH7によってPATA/SATA IDEインターフェース機能が提供されています。ネットで検索するとSuSEなどのディストリビューションではSATAのみの環境でもインストールできているようですがMomonga Linux 2はインストールでませんでした。ATA HDDのFAQサイトではata_piixかahciでICH7で利用できると書いてあるのですが、SATAデバイスは全く認識されない状態でした。

仕方が無いのでPATAのHDDとDVD ROMをIDE0インターフェース接続してとりあえずインストールした後、いろいろ試して見る事にしました。しかし、このIDE0のインターフェースが悪いのかICH7サポートが悪いのか、DVD ROMをはずしてもhdparmで2MB/秒程度の速度しか出ていません。状態を確認するとDMAさえ使っていませんでした。hdparm -d1でDMAを有効に設定しようと試みても「サポートしていない」旨のエラーでDMAも有効に出来ません。

なんとしてもSATA HDDを使えるようにしなければと思いつつネット検索していると、カーネルのデバイス認識に問題あるため(?)チェックコードを削除するとSATAドライブを認識できたケースがある事を見つけました。kernelに次のパッチを適用してやっとSATA HDDが認識できました。

--- linux-2.6.10/drivers/scsi/ata_piix.c.orig   2005-08-01 10:44:38.000000000 +0900
+++ linux-2.6.10/drivers/scsi/ata_piix.c        2005-08-01 10:44:53.000000000 +0900
@@ -589,12 +589,6 @@
        port_info[0] = &piix_port_info[ent->driver_data];
        port_info[1] = NULL;

-       if (port_info[0]->host_flags & PIIX_FLAG_AHCI) {
-               int rc = piix_disable_ahci(pdev);
-               if (rc)
-                       return rc;
-       }
-
        if (port_info[0]->host_flags & PIIX_FLAG_COMBINED) {
                u8 tmp;
                pci_read_config_byte(pdev, ICH5_PMR, &tmp);

hdparmでも66MB/秒と普通の数値が出ています。cp -ax でPATAにインストールしたMomonga Linux 2をSATAにコピーし、grub.confやinitrdイメージを作り直してパッチ付きカーネルでブートできるようにしました。ここでは書いていませんが、要所要所で適切にBIOSも設定しなければなりません。設定を間違えるとPATAのディスクさえ認識してくれません。ご注意下さい。

他のディストリビューションでSATAのみの環境でのブートを試みたのはKnoppix3.9 日本語版だけですが、これもSATAデバイスを全く認識してくれませんでした。SuSEなら大丈夫(?!)なのかもしれませんが…

GigabyteのGA-8I945GはLinuxで使えない事もないですがお勧めできるM/Bでは無いです。同じシリーズのM/Bも同じかと思います。M/Bの問題と言うより、もしかしてICH7/ICH7RはLinuxにとって鬼門?!

# PS/2マウスコネクタの接触が悪いのか、他の原因なのか分かりませんが
# マウスが動かなくなるのも困ります。抜き差しすると直ります…
# 955チップセットに買い換えるかな…

投稿者: yohgaki