次のページ 前のページ 目次へ

5. XF86Config

Device セクションの項目と、現在サポートされているオプションを以下に示 します:

AGX-014, AGX-015, AGX-016 と ISA ベースの XGA-1, XGA-2 を使う場合、 XF86Config ファイルの Device セクションで最低限指定しなければならない のは Chipset です。しかし、AGX-01[456] チップの機能を最大限 に利用するためには、RAMDAC も指定すべきです。他のパラメータを使って追 加の機能を選択したり、デフォルト値を上書きしたり、検出を止めて起動時間 を短くすることもできます。XGA 固有の設定は本ドキュメントの最後で説明し ます。一般には XGA の項目を使って AGX-01[456] のデフォルト値 も上書きすることができます。

Ramdac

ビデオボードに載っている RAMDAC のクロックのレートを必ず確かめ、サーバ に指定可能な場合であっても、このレートを越えないようにしましょう。 RAMDAC をオーバークロックさせると、これを壊してしまいます。

一般的にはクロックレートは部品番号に添字として付けられています。ただし、 最上位の桁だけが付いていることや、他のコード(例えばパッケージのタイプ) と混じっていることもあります。例えば、プラスチックの J-lead パッケージ に入っている 85MHz の Bt481 の部品番号は Bt481KPJ85 であり、135MHz の AT&T20C505 の部品番号は ATT20C505-13 です。Sierra のチップの場合に は、クロックレートは部品番号の下に濃いインクで刻印されています。

"normal"

通常の VGA スタイルの RAMDAC(6 ビット DAC)であり、指定が無い場合にはこ れがデフォルト値です。ほとんどのカードはこのパラメータで動作するはずで すが、一部の機能は使えないでしょう。8bpp だけを使用できます。

"bt481"

bt481 RAMDAC (8 ビット DAC をサポートしています)

"bt482"

bt482 RAMDAC(8 ビット DAC をサポートしています)。Hercules Graphite HG210 は BT481 または BT482 を使っています。両者の違いは、BT482 にはハー ドウェアカーソルがあることだけです(まだサポートしていませんが)。 BT481/2 のドットクロック値の制限は 85MHz です。8bpp, 15bpp, 16bpp が サポートされています。

"ATT20c490"

AT&T490 RAMDAC (49[123] を含み、- 8 ビット DAC をサポー トしています)。8bpp 時のドットクロック値の制限は 110MHz です。8bpp, 15bpp, 16bpp がサポートされています。

"SC15025"

Sierra SC15025 および SC15021 RAMDAC(8 ビット DAC をサポートしています)。 SC15025 の制限は 125MHz で、SC15021 の制限は 135MHz です。RAMDAC の実 際のレートを調べましょう。AGX ベースのボードで使われている一部の SC15025 はレートが 110MHz しか出せません。8bpp, 15bpp, 16bpp がサポー トされています。

"herc_dual_dac"

Hercules Graphite Pro の RAMDAC を調べます。80 ピンの Big-RAMDAC が 付いている(2MB モデル)場合には Big-RAMDAC を使いますが、倍速クロックの ピクセル多重化モードしか使いません(高いクロック値だけになります!)。 8bpp モードの低いクロック値や解像度は 44 ピンの Small-RAMDAC に切り替 えることでサポートします。15bpp と 16bpp がサポートされています。

"dac-8-bit" オプションが BT485 RAMDAC を載せた Graphite Pro で動作しな いという報告が以前にありましたが、この点では AT&T20C505 と全く同じ はずなので困ってしまいました。問題の切り分けを行うための起動メッセージ や XF86Config ファイルは送られてきませんでした。

HG210 Graphite ではサポートされていません。

"herc_small_dac"

Hercules Graphite Pro の RAMDAC を調べます。必ず BT481/482 RAMDAC だけ を使うようにします。8bpp, 15bpp, 16bpp と unpacked 形式の 24/32bpp が サポートされています。

HG210 Graphite ではサポートされていません。

"xga"

AGX-010 に対し、デフォルトの VGA 形式の RAMDAC 制御を上書き指定できる ようにします。

Ramdac 関連のオプション:

"dac_6_bit"

RAMDAC を VGA デフォルトの 6 ビット DAC モードに設定します("normal" の 場合のデフォルト値です)。

サポートしている RAMDAC を 8 ビット DAC に設定します("normal" を除く全 ての場合のデフォルト値です)。

"sync_on_green"

同期信号をG(緑)信号に乗せる合成する機能を持った RAMDAC (BT481/481, AT&T20c490)の場合、この機能を使います。しかし、ボードに必要な装備 があっても、合成のロジックの方が怪しいです。

Chipset:

必ず指定しなければなりません。指定できる値は "AGX-016", "AGX-015", "AGX-014", "AGX-010", "XGA-2", "XGA-1" のいずれかです。AGX ベンダの一 部はチップの上にステッカーを貼っていますが、一般的には、VLB ボードの場 合にはこれは多分 AGX-015 で、ISA ボードの場合には多分 AGX-014 でしょう。 Hercules Graphite Power Pro と Spider Black Widow Plus は AGX-016 チッ プセットを使っています。一般的には、AGX-0{14,15,16} シリーズの古いリビ ジョンのものは問題を起こさないようです(AGX-014 のアクセラレーション無 しの線描画の性能が低いことは除きます)。

注意:何らかのテストを行っているのは AGX-016, AGX-015, AGX-014, XGA-2 だけです。開発の大部分は AGX-015 ベースでメモリ 2MB の Hercules Graphite VL PRO (HG720) で行い、以前のリリースの場合にはテス タのほとんどは AGX-014 ベースのメモリ 1MB の Hercules Graphite (HG210) を使っていました。

筆者が持っている AGX-010 に関するわずかなドキュメントは、XGA アーキテ クチャのクローンに追加の設定用レジスタをいくつか追加したチップについて のドキュメントです。XGA RAMDAC 制御レジスタと拡張 VGA RAMDAC 制御レジ スタのどちらを使うかは決まっていません。3.1.1 より後はデフォルトで VGA 制御レジスタを使うようになりましたが、XGA RAMDAC パラメータを使えば XGA 制御レジスタを強制的に使うこともできます。XGA セクションで説明され ている設定パラメータと同様のパラメータを使って、I/O やメモリアドレスに 関する AGX のデフォルト値を上書きすることができます。

VideoRam:

指定しなければ検出が行われます。このオプションを指定すると、サーバの起 動が少し速くなります。

チューニング用オプション:

バス I/O インタフェース:

"8_bit_bus"

強制的に 8 ビット I/O バスにします。

"wait_state", "no_wait_state"

CPU のアクセス待ち状態の設定とクリアを行います。デフォルト値は POST 設 定です。

"fifo_conserv"

AGX-015 と AGX-016 において、メモリ I/O バッファを無効にします。これは MS-Windows のドライバのデフォルトの 動作です。「タイミングがきわどい」一部の VLB システムでは、このオプショ ンが必要です。このサーバに対するデフォルトの動作では、バッファを無効に します。

"fifo_moderate"

AGX-015/016 のメモリ I/O バッファを有効にしま す。

"fifo_aggressive"

AGX-016 の特大バッファを有効にしま す。どちらのオプションを使った場合も、画面にゴミが残ってしまうことがあ ります。デフォルトでは無効になっています。良いテスト方法は、xbench や x11perf の点線のテストであり、ランダムな点が描画される用であれば fifo_conserv の設定が必要です。今のところ、バッファを有効にして正しく 動作したボードは報告されていません。

メモリのタイミング:

デフォルト値の POST 設定で良いはずです。

"vram_delay_latch", "vram delay_ras", "vram_extend_ras"

VRAM のタイミングに関するオプション

"slow_vram", "slow_dram"

VRAM のタイミングに関するオプショ ンを全てセットします。

"med_dram"

VRAM のラッチ遅延操作をセットし、 他のオプションをクリアします。

"fast_vram", "fast_dram"

VRAM のタイミングに関するオプショ ンを全てクリアします。POST 設定をクリアするために VRAM のオプションを 直接指定するならば、このオプションを指定しなければなりません。

デバッグ用:

一般的には必要無いはずです:

"noaccel"

(AGX,XGA) フォントキャッシュを無効にします。

"crtc_delay"

(AGX) XGA モードを強制的に CRTC 遅延にします。

"engine_delay"

AGX-015 専用? 追加の VLB 待ち状態を加えます。

"vram_128", "vram_256"

VRAM 遷移 周波数を設定します。128Kx8 の VRAM の場合は vram_128 です。デフォルト では、このビットは POST 設定からずっと変化しません。

"refresh_20", "refresh_25"

スクリー ンのリフレッシュ動作の間のクロックのサイクル数です。デフォルトでは、こ のビットは POST 設定からずっと変化しません。

"screen_refresh"

AGX-016 において、ブランク無しのイ ンターバル間の画面リフレッシュを無効にします。デフォルトでは、これらは ずっと有効になったままです。

"vlb_a", "vlb_b"

VLB トランザク ションのタイプです。デフォルトでは、このビットは POST 値からずっと変化 しません。

仮想解像度:

現在のサーバは仮想的な画面幅にどんな値でも指定できるようになりました。 しかし実際に使える CTRC のライン幅は、グラフィックスエンジンの使用中に は制限されますし、チップのリビジョンにも依存します。使用するメモリの量 を決めるのは仮想画面の幅ではなく、CRTC のライン幅です。現在のサーバは 未使用の CTRC のラインのメモリは全く利用しません。CTRC のライン幅は以 下の規則によって決まります:

AGX-014 : 512, 1024, 2048 (AGX-010 も同じ)
AGX-015 : 512, 1024, 1280, 2048
AGX-016 : 512, 640, 800, 1024, 1280, 2048
XGA,AGX-010 : 512, 640, 800, 1024, 1280, 1152, 2048

仮想解像度が物理解像度よりずっと大きい場合に、画面をパンすると縞が出る ことを筆者は経験しました。マウスを少し動かすと縞は無くなります。 Hercules のマニュアルによると、この現象は MS-Windows 用のドライバでも 起こるそうです。

このサーバは少なくとも 64KB の作業領域を必要とします。フォントキャッシュ や大きな作業領域が必要ならばメモリを追加すると良いでしょう。

AGX の Clocks 値:

クロック値の自動検出がサポートされていますが、当然ながらいつもの警告と 免責事項は当てはまります。検出を行うと、モニタの許容範囲を越える周波数 がモニタにかかることがあります。したがって、万全を期すならば、検出を行 う間にはモニタの電源を切っておくとよいでしょう。

一度クロック値を調べると、その値を XF86Config に書き込むことができます。 こうすると、それ以降のサーバ実行時にはクロック値の検出は不要になり、起 動が速くなります。クロックの検出を行うには、-probeonly オプションを付 けて X サーバを実行する必要があります。表示されるクロック値はハードウェ アの入力クロック値であり、8bpp の直接クロッキング RAMDAC モードにおけ るピクセルクロック値に一致します。サーバは、現在の色の深さで利用できる RAMDAC のモードに合わせて適切な掛け算や割り算を行います。利用可能なピ クセルクロック値は起動メッセージ中に表示されるでしょう。

メモリ 2MB の Hercules Graphites で "herc-dual-dac" という RAMDAC 指定 を行った場合、古いバージョンのサーバは倍にした値やゼロにした値を含む追 加のクロックを 16 個生成しました。これらの値は現在は必要ないので、全て のクロック値が利用可能であることを確認するためにクロック値の再検出や再 入力を行うべきです。

チップセットが AGX-015 であり、ICS1494M 9251-516 クロックチップを積ん だ 2MB の Hercules Graphite VL Pro では以下のクロック値が検出されまし た:

               25.18  28.80  32.70  36.00  40.00  45.00  50.40  64.70
               70.10  76.10  80.60  86.30  90.40  95.90 100.70 109.40
Hercules によると実際の値は以下のようになります:
               25.175 28.322 32.512 36.000 40.00 44.90 50.35 65.00
               70.00  75.00  80.00  85.00  90.00 95.00 100.0 108.0
XF86Config で "normal", "bt481", "herc_small_dac" のいずれかを RAMDAC に指定し、お使いのクロックチップがこれに一致する場合、これらの値がクロッ ク表示で使われます。

クロックの検出では、最初のクロック値が 25.175MHz であることを想定し、 残りの値を求める際にはこの値を使います。2 番目の値が 28.322MHz でない 場合、ウォーニングが出力されます。ウォーニングが出力された場合には、他 の方法で検証を加えることなしに検出されたクロック値を使ってはいけません。

AGX-014 やそれ以降の AGX の場合、外部クロック選択の行だけが使われます。 これはビデオボードのクロックチップの値に対応するクロック値を示します。

AGX-010 の場合、最初の 8 つのクロック値には標準の XGA 内部クロック選択 が使われ、次の 8 つのクロック値は AGX 独自の拡張に基づいて決められます。 XGA-1 の場合にはクロック値は 8 つだけしか使用できません。XGA-2 はプロ グラマブルクロックを使うので、クロック値やクロックチップ行は必要ありま せん。

許される最大のピクセルクロック値は一般的には 85MHz ですが、一部の RAMDAC はもっと高い値をサポートしています。いずれにしても、RAMDAC につ いては調べておくべきです。AGX ベースのボードで使われている RAMDAC の一 部は、バージョンによってはサーバが想定しているよりも低い値しか出せませ ん。ですから、レートを調べてその値を越えないようにしなければなりません。

モード:

Mach8 と違う点を 1 つ指摘しておくと、AGX の CTRC は水平同期の開始が水 平ブランクの開始と一致するのを好みません(垂直同期も同じ問題を持ってい るかもしれないので、もう少しテストする必要があります)。インタレースモー ドと +/-sync フラグがサポートされていますが、テストはほとんど行われて いません。インタレースモードの場合、行数が必ず奇数になるようにしてくだ さい。

現在はダブルスキャンモードがサポートされていますが、サポートされている 最小のクロック値は一般に 25MHz です。したがって、400x300 より小さい解 像度はほとんどのモニタでサポートされていないことが多いでしょう。ダブル スキャンモードのタイミングを作る際には、垂直のタイミングは見かけの解像 度にします。例えば、400x300 の場合タイミングは 600 行でなく300 行を記 述します。

例:

Hercules HG720(メモリ 2MB の VLB AGX-015 で BT481 と AT&T20C5050 RAMDAC を積んでいます)用に、筆者は XF86Config の "Device" セクションを以下のような設定にしています:

             Section "Device"
                 Identifier "HG720"
                 VendorName "Hercules"
                 BoardName  "Graphite VL Pro"
                 Chipset    "AGX-015"
                 Clocks     25.2  28.3  32.5  36.0  40.0  45.0  50.4  65.0
                            70.00  75.00  80.00  85.00  90.00 95.00 100.0 108.0
                 Videoram   2048
                 RamDac     "herc_dual_dac"
                 Option     "dac_8_bit"
                 Option     "no_wait_state"
             EndSection
Spider Black Widow Plus (メモリ 2MB の VLB AGX-016 で Sierra SC15021 RAMDAC を積んでいます)用の設定は以下です:
             Section "Device"
                 Identifier "SBWP"
                 VendorName "Spider"
                 BoardName  "Black Widow Plus"
                 Chipset    "AGX-016"
                 Clocks      25.2  28.3  39.9  72.2  50.0  76.9  36.1  44.8
                             89.0  119.8 79.9  31.5 110.0  64.9  74.9  94.9
                 Videoram   2048
                 RamDac     "SC15025"
                 Option     "dac_8_bit"
                 Option     "no_wait_state"
             EndSection

次のページ 前のページ 目次へ