先日 RADEON 9600 を突っ込んだキューブマシンの Pandora ですが、 こいつがマザーボードに SiS 651 を使っていて、 4.9-RC には鬼門のチップセットなんですね。 ATA の認識時にハングアップします。 で、こいつにインストールする場合なんですが…。 まずは BIOS Setup を起こします。
IDE の UltraDMA を Disabled にします。
こうすると、FreeBSD 4.9 のカーネルは WDMA2 という謎のモードで認識してくれて、 一応ちゃんとブート・インストールできます。
遅いけどね (^^;。
で、インストールしたら /usr/src/sys/dev で、 このパッチを partch -p0 < ata.diff で適用して、 カーネルをコンパイル・インストールします。 こんなインチキパッチだよ。 以前 sos にメールしたのですが、 これはちょっと UDMA のネゴなどの観点からはインチキすぎるそうなので、 正しい実装は ATAng の方を見てくれ、らしい。 でもまあ、とにもかくにも動くので、いいとしよう。
diff -ur ata.orig/ata-dma.c ata/ata-dma.c --- ata.orig/ata-dma.c Wed Oct 22 23:43:52 2003 +++ ata/ata-dma.c Mon Oct 27 10:02:31 2003 @@ -638,6 +638,7 @@ ata_find_dev(parent, 0x06401039, 0) || /* SiS 640 */ ata_find_dev(parent, 0x06451039, 0) || /* SiS 645 */ ata_find_dev(parent, 0x06501039, 0) || /* SiS 650 */ + ata_find_dev(parent, 0x06511039, 0) || /* SiS 651 */ ata_find_dev(parent, 0x07301039, 0) || /* SiS 730 */ ata_find_dev(parent, 0x07331039, 0) || /* SiS 733 */ ata_find_dev(parent, 0x07351039, 0) || /* SiS 735 */ diff -ur ata.orig/ata-pci.c ata/ata-pci.c --- ata.orig/ata-pci.c Wed Oct 22 23:43:52 2003 +++ ata/ata-pci.c Mon Oct 27 10:02:38 2003 @@ -198,6 +198,7 @@ ata_find_dev(dev, 0x06401039, 0) || ata_find_dev(dev, 0x06451039, 0) || ata_find_dev(dev, 0x06501039, 0) || + ata_find_dev(dev, 0x06511039, 0) || ata_find_dev(dev, 0x07301039, 0) || ata_find_dev(dev, 0x07331039, 0) || ata_find_dev(dev, 0x07351039, 0) ||
で、shutdownした後、BIOS の DMA 設定を元に戻して再起動。
めでたく UDMA100 で認識。本当は UDMA133 までいけるはずなんだけどね。
ついでに、RADEON 9600 を XFree86 4.3.0 で使うことを、 ダメもとで試みてみるけど…、xf86cfg がそもそもグラフィックモードで上がってこない。 で、テキストモードでやってみるが…。 やっぱりダメくさい。 残念。