W32 および ET6000 チップセットユーザ向けの情報 Glenn G. Lai , Dirk H. Hohndel , Koen Gadeyne May 16, 1997 The X Japanese Documentation Project January 29, 1999 ____________________________________________________________ 目次 1. W32 チップセットユーザ向けの情報 2. ICS5341 GENDAC が載ったボードでの XF86_W32 の使用 3. STG1703 GENDAC を積んだボードでの XF86_W32 の使用 4. ET6000 ベースのボードでの ET6000 の使用 5. ET4000/W32, ET6000 カードでの XF86_SVGA の使用 6. 謝辞 ______________________________________________________________________ 1. W32 チップセットユーザ向けの情報 XAA アクセラレーション機能を持つ SVGA サーバは、少なくとも速さについて は W32 サーバと同じくらいになったので、XF86_W32 は段階的に無くしている ところです。しかし、XF86_W32 サーバの方が多くのカードをサポートしてい ますし、一部のカードについては色の深さも大きくできます。W32 カードを 使った XF86_SVGA の利用に関する詳しい情報は後で述べます。現時点で は、XF86_W32 でアクセラレーションが有効な全てのカードが XF86_SVGA でも アクセラレーションが有効になるわけではない点に注意してください(厳密に 言うとアクセラレーションが有効になるのは ET6000 と ET4000W32p だけで す)。 以前の XF86_W32 で動作していたけれど新しい XF86_SVGA サーバでは問題が 起きたカードに対しては、XF86_W32 サーバは安定動作すると思われま す。SVGA サーバがうまく動作しなかった時(これは ET4000W32 ISA カードの 一部で起こります)や、全くアクセラレーションが有効にならない時(例えば ET4000W32i 使用時)には、このサーバを使いましょう。 XFree 3.2A 以降、このサーバは更新されていません。つまり一部の(既知の) バグは修正されていないままです。これらのバグは SVGA サーバの Tseng ド ライバ(またはこれに代わるもの)では修正されています。したがって問題に出 会ったならば、このサーバではなく SVGA サーバを試してください。 XF86_W32 は基本的には XF86_SVGA であり、その描画コードを X11R6 の mi/cfb コードに基づくものに完全に置き換え、 ET4000/W32 向けの変更を 行ったものです。このサーバは XF86_SVGA と同じキーワードを受け付けます が、ET4000/W32 シリーズに適用できないキーワードは黙って無視します(例: キーワード "SpeedUp" は何もしません)。このサーバは現在 w32, w32i, w32p, et6000 チップをサポートしています。サポートしているチップの完全 なリストについては、XF86_W32 が起動時に表示するメッセージを見てくださ い。このサーバは 256 しかサポートしていません。 XF86_SVGA の場合と同様に、幅が 4 の倍数である仮想スクリーンを指定する ことができます。仮想スクリーンのサイズは、利用可能なビデオ RAM の量に よって制限されます。XF86_W32 は 1M 以上のビデオ RAM を扱えますが、1K は内部的に使うために予約しています。つまり、RAM を 1M 載せている場合に は、XF86_W32 はメモリが 1023K であると表示します。したがって、指定でき る仮想スクリーンのサイズは 1152x910 ではなく 1152x900 となります。 Tseng のデータシートによると、ほとんどのカードの最大クロック値は 80MHz に設定されています。非インタレースの 1280x1024(x256 色)を 135MHz で使 うためには、(16ビットの RAMDAC バスを持ち)多重化 RAMDAC を積んだ w32p が必要です。これにより、w32p は 135MHz ではなく (135/2 = 67.5) MHz だ けを扱えばよくなります。これを行うには、ICS5341 GENDAC または STG1703 を用いたカードにだけ用意されている特別なコードが必要です。このコードは たいていの場合うまく動作するようですが、ICS5341 の場合だけは 90MHz 付 近の周波数で細い縞が現われてしまいます。 このサーバで問題が起きた場合には、以下のことを試してください: o Device セクションに Option "slow_dram" を記述します。 o Device セクションに Option "pci_burst_off" を記述します。 o Device セクションに Option "w32_interleave_off" を記述します。 o Hercules 製の白黒アダプタが付いている場合、これを外します。 ET4000/W32 シリーズの構成の多くは、これがシステムにあると動作しませ ん。 o ローカルバスが 33MHz で動作するマザーボードを入手します。(全てでは ありませんが)多くの ET4000/W32 ボードは 50MHz のバスではおかしな動 作をすることが確かにあります。待ち状態を 1 つか 2 つ使わなければな らないかもしれませんが、最初は待ち状態無しを試しましょう。 o マシンをコールドブートします。XF86_W32 の起動前には、他の X サーバ も含めてビデオハードウェアをおかしくするようなものは何も動かさない でください。 o ET6000 カードの場合には、Device セクションで chipset "et6000" を指 定してみましょう。このカードは通常、PCI バスからは自動検出できます が、一部のシステムでは、別の VGA カードがオンボードで載っているよう な場合には、これを無効にしてあっても ET6000 サーバが別のカードの方 を使おうとすることがあります。 o XF86_SVGA サーバを試します。これが動作した場合、以下の記述を XF86Config に追加します: Ramdac "generic" (「環境」モニタ用の)組み込みの省電力機能はテストしていないので注意して ください。また、この機能が w32p_rev_c 以降のチップが載っていないボード で動作するとは思わないでください。このオプションは現在、完全に無効に なっています。というのも、このオプションはビデオメモリの内容を壊す(あ るいはサーバをクラッシュさえさせてしまう)からです。SVGA サー バ(XF86_SVGA)は VESA DPMS をサポートしていますし、画面を壊してしまうこ ともありません。 2. ICS5341 GENDAC が載ったボードでの XF86_W32 の使用 GENDAC は通常のクロック検出手続きで見つけることができる標準クロックの 組を与えますが、 ClockChip "ics5341" という行を Device セクションに設定し、ICS5341 が生成できるプログラマブ ルクロック値を使えるようにすることは必らず必要です。 Ramdac "ics5341" という行を指定してもよいですが、RAMDACは正しく自動検出されるはずです。 ICS5341 GENDAC を使っている場合、現在のサーバは 135MHz までの任意の ドットクロック値を受け付けますが、ほとんどのボードでは 86MHz から 100MHz あたりまでの範囲のクロック値では細い縞が現われ、動作しません。 この幅は通常は数 MHz 程度であり、これより大きなクロック値でも小さなク ロック値でもうまく動作します。この問題についての修正は現在作業中で す。(DDH) 3. STG1703 GENDAC を積んだボードでの XF86_W32 の使用 STG1703 は通常のクロック検出手続きで見つけることができる標準クロックの 組を与えますが、 ClockChip "stg1703" という行を Device セクションに設定し、STG1703 が生成できるプログラマブ ルクロック値を使えるようにすることは必らず必要です。 Ramdac "stg1703" という行を指定してもよいですが、RAMDAC は正しく自動検出されるはずで す。 4. ET6000 ベースのボードでの ET6000 の使用 ET6000 と ET4000/W32 のデバイスには似ている点が多いので、ET6000 ドライ バのコードは既存の ET4000/W32 のコードを元にして開発しました。他の W32(外部)クロックチップ/RAMDAC デバイスの場合と同様に、ET6000 の組み込 みクロックチップ/RAMDAC には標準クロック値の組が 8 つ用意されていま す。これは XFree86 の通常の検出手続きでも検出することができます。これ を使わずに、XF86_W32 は常に組み込みのプログラマブルクロックチップと RAMDAC を使用します。したがって、XF86Config ファイルの Device セクショ ンで ClockChip "et6000" や Ramdac "et6000" を指定する必要はありません。一度 ET6000 を扱っていることがわかれ ば、XF86_W32 は自力で処理を行います。現時点ではアクセラレーションのサ ポートは全く不完全であり、 ET4000/W32 が既に用意したもの対して両デバイ ス間の互換でない部分に合わせた変更を行ったものを使っているだけです。大 幅に動作速度を改善することは可能なはずです。Tseng Labs の仕様による と、ET6000 チップの最大ピクセルクロック値は 135MHz です(もっと高いク ロック値のチップも出てくるでしょう)。 このサーバには、2.25MB の MDRAM を積んだ ET6000 カードで使用した時に起 こるバグがあります。サーバは 2.25MB ではなく、2.5MB と検出し、その結果 アクセラレーション付きの操作がほとんど動作しなくなります。2.25MB の MDRAM を積んだカードを使っている場合、XF86Config ファイルに VideoRam 2304 という行を「必ず」追加しなければなりません。 5. ET4000/W32, ET6000 カードでの XF86_SVGA の使用 XFree86-3.2A を始めに、SVGA サーバは XFree86 Acceleration Architecture (XAA) を新しく使っています。この技術を使うと、XF86_SVGA サーバの速度は 同じハードウェアで XF86_W32 を使った場合に比べ、速くはない場合でも同じ くらいの速さにはなります。加えて、一部のカードではより大きい色の深さも サポートしています。逆に現時点では、XF86_W32 が W32 カードに対してサポ ートしている特別な RAMDAC や クロックチップの一部は SVGA サーバではサ ポートされていません。 お使いの W32 カードを使うと SVGA サーバで絵が出ない場合には、以下の操 作を試してください: o Device セクションに Option "slow_dram" を記述します。 o Device セクションに Option "pci_burst_off" を記述します。 o Device セクションに Option "w32_interleave_off" を記述します。 o Device セクションに Option "no_accel" を記述します。 o マシンをコールドブートします。W32 の状態を正常な状態に戻すには、電 源を物理的に切る必要がある場合さえあります。XF86_SVGA を起動する前 にはビデオハードウェアをおかしくするものは何も実行してはいけませ ん。これには、別の X サーバも含まれます。 6. 謝辞 Jerry J. Shekhel さん (jerry@msi.com) は筆者(GGL)にメモリ 1M の Mirage ET4000/W32 VLB ボードをくださいました。初期の開発(X_W32)はこのボードを 使って行いました。 X11R6 と XFree86 プロジェクトは、XF86_W32 のコードの基礎的な部分を提供 してくださいました。 Hercules Computer Technology Inc. は、XF86_W32 の開発用にメモリ 2M の Hercules Dynamite Pro VLB ボードを筆者(GGL)に貸し出してくださいまし た。また、XFree86 プロジェクトに Dynamite Power PCI を寄付してくださ り、DDH さんがこれを使って XF86_W32 の拡張を行いました。 Koen Gadeyne さん (koen.gadeyne@barco.com) は XFree86-3.1.1 用のパッチ キットを作成してくださいました。このパッチキットは本サーバに一部統合さ れています。また、Gadeyne さんは現在もサーバの開発を助けてくださってい ます。 Tseng Labs Europe さんは ET-6000 ベースのボード(Jazz Multimedia G- Force 128) を寄付してくださいました。おかげで ET6000 用コードの開発が 活発になりました。 多くのテスターの方々が X_W32 とその後の XF86_W32 にフィードバックをし てくれました。筆者の落度により X_W32 のテストに参加してくださった方々 を把握しきれていませんが、XF86_W32 のテストに参加してくださった方々を 以下に列挙させていただきます: Linux: bf11620@coewl.cen.uiuc.edu (Byron Thomas Faber) dlj0@chern.math.lehigh.edu (David Johnson) peterc@a3.ph.man.ac.uk (Peter Chang) dmm0t@rincewind.mech.virginia.edu (David Meyer) nrh@philabs.Philips.COM (Nikolaus R. Haus) jdooley@dbp.caltech.edu (James Dooley) thumper@hitchcock.eng.uiowa.edu (Timothy Paul Schlie) klatta@pkdla5.syntex.com (Ken Latta) robinson@cnj.digex.net (Andrew Robinson) reggie@phys.washington.edu (Reginald S. Perry) sjm@cs.tut.fi (M{kinen Sami J) engel@yacc.central.de (C. Engelmann) use cengelm@gwdg.de postgate@cafe.net (Richard Postgate) are1@cec.wustl.edu (Andy Ellsworth) bill@celtech.com (Bill Foster) FreeBSD: ljo@ljo-slip.DIALIN.CWRU.Edu (L Jonas Olsson) $XFree86: xc/programs/Xserver/hw/xfree86/doc/Japanese/README.W32,v 1.1.2.2 1999/11/26 15:23:14 hohndel Exp $ $XConsortium: W32.sgml /main/11 1996/10/19 18:03:45 kaleb $