Sun フレームバッファー使用の手引き

第 1 章 TurboGXplus フレームバッファー

この章では、TurboGXplusTM カードを備えたシステムを設定する方法について説明します。また、画面の解像度に合わせて TurboGXplus の設定を変更する方法や、複数のモニターを使用するための設定方法についても説明します。

TurboGXplus がサポートするモニター

TurboGXplus カードがサポートするモニターの一覧を以下に示します。


注 -

表 1-1 のモニターの機種および仕様は、予告なく変更される場合があります。詳細は、購入先にお問い合わせください。


表 1-1 TurboGXplus がサポートするモニター

モデル 

パーツ番号 

種類/大きさ/FCC 

モニター ID センスコード 

S標準の解像度と リフレッシュレート 

X248A 

365-1068-01 

カラー 21 インチ 

2 

1280 x 1024、76 Hz (注 1) 

GDM-20D10 

365-1167-01 

カラー 20 インチ 

4 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

1280 x 1024、67 Hz 

1280 x 1024、76 Hz 

GDM-1955A15 

365-1081-01 

カラー 19 インチ 

3 

1152 x 900、66 Hz 

GDM-1962 

365-1095-01 

カラー 19 インチ 

4 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

1280 x 1024、67 Hz 

GDM-1962B 

365-1160-01 

カラー 19 インチ 

4 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

1280 x 1024、67 Hz 

GDM-1604A15 

365-1079-01 

カラー 16 インチ 

3 

1152 x 900、66 Hz 

GDM-1662B 

365-11593-01 

カラー 16 インチ 

6 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

CPD-1790 

365-1151-01 

カラー 16 インチ 

3 

1152 x 900、66 Hz (注 1) 

1024 x 768、77 Hz  

X449 

365-1286-01 

カラー 15 インチ 

0 

1024 x 768、77 Hz 

GDM-20S5 

365-1168-01 

グレースケール 20 インチ 

2 or 

4* 

1280 x 1024、76 Hz or 

1152 x 900、76 Hz (注 2) 

1280 x 1024、67 Hz 

17SMM4 A 

365-1100-01 

グレースケール 17 インチ 

6 

1152 x 900、76 Hz 

M20P110 

365-1099-01 

グレースケール 19 インチ 

4 

1152 x 900、76 Hz  

Non-Sun 

-- 

Unknown 

7 

1152 x 900、66 Hz 

注 1. 電源投入時のデフォルトの解像度です。 

注 2. モニター ID センスコードは、背面にあるスイッチで選択することができます。 

デフォルトの画面解像度

モニター ID センスコードに対応するデフォルトの画面解像度を、表 1-2 に示します。

表 1-2 TurboGXplus のモニターセンスコード

コード 

画面解像度 

7 

1152 x 900、66 Hz 

6 

1152 x 900、76 Hz 

5 

1024 x 768、60 Hz 

4 

1152 x 900、76 Hz 

3 

1152 x 900、66 Hz 

2 

1280 x 1024、76 Hz 

1 

1600 x 1280、76 Hz 

0 

1024 x 768、77 Hz 

画面解像度の設定

TurboGXplus フレームバッファーに画面解像度を設定する場合には、不揮発性メモリーに格納された PROM スクリプトである nvramrc を実行する必要があります。PROM はデバイスの調査する際に、変数 use-nvramrc? の値を調べ、真の場合はnvramrc 内の FORTH コードを実行します。それ以外の場合は probe-sbus (Ultra 以前のシステムの場合)、probe-all (Ultra システムの場合)、install-console、banner を呼び出します。

probe-sbus または probe-all ステージと、install-console ステージの間に解像度を初期化する例を、以下に示します。

初めに probe-sbus または probe-all が呼び出されてデバイスを調べます。これによりデバイスツリーが作成され、デバイスが初期化されます。

次の行では、モニターの表示設定値を含む vsetup という FORTH ワードを定義しています。


例 1-1 probe-sbus ステージと install-console ステージ間の解像度の初期化


#!/bin/sh
eeprom fcode-debug¥?=true
eeprom use-nvramrc¥?=true
eeprom nvramrc='probe-sbus        (または probe-all)
: vsetup " 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET" ;
vsetup 4
" /sbus/cgsix@1" " override" execute-device-method drop
install-console
banner

以下の行は、モニタービデオの設定値を表しています。表 1-3 では、この行に含まれる設定値について説明しています。



" 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET"

表 1-3 ビデオ設定の仕様

値 

説明 

117000000 

ピクセル周波数、ドットクロック (Hz) 

71691 

水平周波数 (Hz) 

67 

垂直周波数 (Hz) 

16 

水平フロントポーチ (ピクセル数) 

112 

水平同期幅 (ピクセル数) 

224 

水平バックポーチ (ピクセル数) 

1280 

水平表示ピクセル (ピクセル数) 

2 

垂直フロントポーチ (ライン数) 

8 

垂直同期幅 (ライン数) 

33 

垂直バックポーチ (ライン数) 

1024 

垂直表示ライン (ライン数) 

COLOR 

カラーモニターフラグ 

0OFFSET 

同期ペデスタルフラグなし 

vsetup 4 の行では、ビデオ文字列をスタック上にプッシュしています。数字の 4 は、解像度を変更するモニターのセンスコードを定義しています。サポートされているモニターコードについては、表 1-4 を参照してください。使用する数値は、TurboGXplus フレームバッファーに装備されたモニターと一致させてください。

その次の行では、解像度を変更するデバイスのパスを示す文字列 /sbus/cgsix@1 を、FORTH のスタックにプッシュしています。cgsix@1 の "1" は、SBus スロット番号を表します。

SBus スロット 1 上の cgsix フレームバッファーを変更する例を以下に示します。


例 1-2 SBus スロット 1 上の cgsix フレームバッファーの変更


ok nvedit
0: probe-sbus                    (または probe-all)
1: : vsetup " 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET" ;
2: vsetup 4
3: " /sbus/cgsix@1" " override" execute-device-method drop
4: install-console
5: banner
6: ^C
ok nvstore
ok setenv use-nvramrc? true
ok setenv fcode-debug? true

"override" 文字列は、FORTH のスタック上にあるデータを使用して解像度を再設定する cgsix の fcode PROM の、実際のエントリポイントです。execute-device-method は、実際に override を呼び出し、成功・失敗フラグを返します。このフラグは、execute-device-method の後に続く drop コマンドでは無視されます。

残りの 2 行 (install-console と banner) では、表示装置の端末ドライバをインストールして、リセット時または再起動時にバナーを表示します。

UNIX スクリプトによるモニターの設定

UNIX スクリプトを使用して、TurboGXplus を 1280 x 1024、67 Hz の解像度に設定する例を以下に示します。


例 1-3 UNIX スクリプトの使用例


#!/bin/sh
eeprom fcode-debug¥?=true
eeprom use-nvramrc¥?=true
eeprom nvramrc='probe-sbus        (または probe-all)
: vsetup " 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET" ;
vsetup 4
" /sbus/cgsix@1" " override" execute-device-method drop
install-console
banner
`

CPROM によるモニターの設定

PROM を使用して、TurboGXplus を 1280 x 1024、67 Hz の解像度に設定する例を以下に示します。


例 1-4 PROM の使用例


ok nvedit
0: probe-sbus                    (または probe-all)
1: : vsetup " 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET" ;
2: vsetup 4
3: " /sbus/cgsix@1" " override" execute-device-method drop
4: install-console
5: banner
6: ^C
ok nvstore
ok setenv use-nvramrc? true
ok setenv fcode-debug? true

TurboGXplus がサポートする解像度のコードを以下に示します。

表 1-4 TurboGXplus の解像度コード

画面解像度 

コード 

1024 x 768、60 Hz 

" 64125000,48286,60,16,128,160,1024,2,6,29,768,COLOR"

1024 x 768、70 Hz 

" 74250000,56593,70,16,136,136,1024,2,6,32,768,COLOR"

1024 x 768、77 Hz 

" 84375000,62040,77,32,128,176,1024,2,4,31,768,COLOR"

1152 x 900、66 Hz 

" 94500000,61845,66,40,128,208,1152,2,4,31,900,COLOR"

1152 x 900、76 Hz 

" 108000000,71808,76,32,128,192,1152,2,4,31,900,COLOR,0OFFSET"

1280 x 1024、67 Hz 

" 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET"

1280 x 1024、76 Hz 

" 135000000,81128,76,32,64,288,1280,2,8,32,1024,COLOR,0OFFSET"

1600 x 1280、76 Hz 

" 216000000,101890,76,24,216,280,1600,2,8,50,1280,COLOR,0OFFSE"

PROM による 1 台のモニターの設定

スロット 2 の TurboGXplus カードに 16 インチのモニターを接続して、1024 x 768、60 Hz に設定する例を以下に示します。


例 1-5 PROM による 1 台のモニターの設定


ok nvedit
   0: probe-sbus                  (または probe-all)
   1: : vsetup " 64125000,48286,60,16,128,160,1024,2,6,29,768,COLOR" ;
   2: vsetup 6
   3: " /sbus/cgsix@2" " override" execute-device-method drop
   4: install-console
   5: banner
   6: ^C
ok nvstore
ok setenv use-nvramrc? true
ok setenv fcode-debug? true

UNIX スクリプトによる 1 台のモニターの設定

UNIX スクリプトを使用して、スロット 2 の TurboGXplus カードを 1024 x 768、60 Hz に設定する例を以下に示します。


例 1-6 UNIX スクリプトによる 1 台のモニターの設定


#!/bin/sh
eeprom fcode-debug¥?=true
eeprom nvramrc='probe-sbus         (または probe-all)
: vsetup " 64125000,48286,60,16,128,160,1024,2,6,29,768,COLOR" ;
vsetup 6
"/sbus/cgsix@2" " override" execute-device-method drop
install-console
banner
`
eeprom use-nvramrc¥?=true

UNIX スクリプトによる複数のモニターの設定

スロット 1 の TurboGXplus カードを 1152 x 900、76 Hz に設定し、スロット 3 の TurboGXplus カードを 1280 x 1024、67 Hz に設定して、2 台の 19 インチモニターを使用する UNIX スクリプトの例を以下に示します。


例 1-7 UNIX スクリプトによる複数のモニターの設定


#!/bin/sh
eeprom fcode-debug¥?=true
eeprom nvramrc='probe-sbus       (または probe-all)
: vsetup1 " 108000000,71808,76,32,128,192,1152,2,4,31,900,COLOR,0OFFSET" ;
vsetup1 4 
" /sbus/cgsix@1" " override" execute-device-method drop
: vsetup2 " 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET" ;
vsetup2 4
" /sbus/cgsix@3" " override" execute-device-method drop
install-console
banner
`
eeprom use-nvramrc¥?=true

複数のモニターの使用方法についての詳細は、第 9 章「複数のモニターの接続」を参照してください。