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

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

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

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

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


注 -

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


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

モデル 

パーツ番号 

種類/大きさ/FCC 

モニター ID センスコード 

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

X248A 

365-1068-01 

カラー 21 インチ 

1280 x 1024、76 Hz (注 1) 

GDM-20D10 

365-1167-01 

カラー 20 インチ 

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 インチ 

1152 x 900、66 Hz 

GDM-1962 

365-1095-01 

カラー 19 インチ 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

1280 x 1024、67 Hz 

GDM-1962B 

365-1160-01 

カラー 19 インチ 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

1280 x 1024、67 Hz 

GDM-1604A15 

365-1079-01 

カラー 16 インチ 

1152 x 900、66 Hz 

GDM-1662B 

365-11593-01 

カラー 16 インチ 

1152 x 900、76 Hz (注 1) 

1152 x 900、66 Hz 

CPD-1790 

365-1151-01 

カラー 16 インチ 

1152 x 900、66 Hz (注 1) 

1024 x 768、77 Hz  

X449 

365-1286-01 

カラー 15 インチ 

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 インチ 

1152 x 900、76 Hz 

M20P110 

365-1099-01 

グレースケール 19 インチ 

1152 x 900、76 Hz  

Non-Sun 

-- 

Unknown 

1152 x 900、66 Hz 

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

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

デフォルトの画面解像度

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

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

コード 

画面解像度 

1152 x 900、66 Hz 

1152 x 900、76 Hz 

1024 x 768、60 Hz 

1152 x 900、76 Hz 

1152 x 900、66 Hz 

1280 x 1024、76 Hz 

1600 x 1280、76 Hz 

1024 x 768、77 Hz 

画面解像度の設定

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

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 

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

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

垂直同期幅 (ライン数) 

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-consolebanner) では、表示装置の端末ドライバをインストールして、リセット時または再起動時にバナーを表示します。

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 章「複数のモニターの接続」を参照してください。