Logo address

VGA PROBLEMS

2000/10/08

インストレーションの段階で VGA カードの種類が認識されない場合にはグラフィックスモードに入らす
%
のプロンプトが現れる。
この時にインストーラは VGA カードに関する情報をフロッピーディスクに落とす。
ファイル名は vgainfo.txt である。
以下にその例を載せる。
------------ vgainfo.txt --------------
aux/vga: controller not in /lib/vgadb
0xC0000 55 AA 60 EB 4D 37 34 30 30 30 37 E8 72 2A 2A 52  U.`.M740007.r**R
0xC0010 45 53 45 52 56 45 44 20 AB 00 6E 01 20 49 42 4D  ESERVED ..n. IBM
0xC0020 20 43 4F 4D 50 41 54 49 42 49 4C 49 54 59 20 2A   COMPATIBILITY *
0xC0030 2A 2A 67 DB 00 00 90 10 30 31 2F 30 35 2F 32 30  **g.....01/05/20
0xC0040 30 30 00 00 47 20 59 20 36 2E 30 30 43 20 20 20  00..G Y 6.00C
0xC0050 20 20 E9 C3 54 07 43 6F 70 79 72 69 67 68 74 20    ..T.Copyright
0xC0060 31 39 39 38 20 54 52 49 44 45 4E 54 20 4D 49 43  1998 TRIDENT MIC
0xC0070 52 4F 53 59 53 54 45 4D 53 20 49 4E 43 2E 00 00  ROSYSTEMS INC...
0xC0080 00 07 07 43 6F 70 79 72 69 67 68 74 20 31 39 39  ...Copyright 199
0xC0090 30 20 50 68 6F 65 6E 69 78 20 54 65 63 68 6E 6F  0 Phoenix Techno
0xC00A0 6C 6F 67 69 65 73 2E 00 01 00 00 50 43 49 52 23  logies.....PCIR#
0xC00B0 10 00 84 00 00 18 00 00 00 00 03 60 00 00 00 00  ...........`....
0xC00C0 80 00 00 0E 20 32 35 36 00 0E 20 35 31 32 00 0E  .... 256.. 512..
0xC00D0 20 37 36 38 00 0E 31 30 32 34 00 0E 32 30 34 38   768..1024..2048
0xC00E0 00 0E 34 30 39 36 00 07 4B 20 20 00 0E 56 47 41  ..4096..K  ..VGA
0xC00F0 00 0E 45 47 41 00 0E 43 47 41 00 0E 4D 44 41 00  ..EGA..CGA..MDA.
main->snarf
vga->snarf
vga->dump
vga misc             67
vga feature          00
vga sequencer        03 00 03 00 02
vga crt              5F 4F 50 82 55 81 BF 1F - 00 4F 0E 0F 00 00 07 80
                     9C 8E 8F 28 1F 96 B9 A3 - FF
vga graphics         00 00 00 00 00 10 0E 00 - FF
vga attribute        00 01 02 03 04 05 14 07 - 38 39 3A 3B 3C 3D 3E 3F
                     0C 00 0F 08 00
vga apz                     0
vga linear                  0

vmf 25175000 vmdf 0 vf1 0 vbw 0
vga->init
dbdumpmode
type=vga, size=640x480x1
frequency=25175000
x=640 (0x280), y=480 (0x1E0), z=1 (0x1)
ht=800 (0x320), shb=664 (0x298), ehb=760 (0x2F8)
shs=664 (0x298), ehs=760 (0x2F8)
vt=525 (0x20D), vrs=491 (0x1EB), vre=493 (0x1ED)
hsync=0, vsync=0, interlace=0
vga->dump
vga flag             Fdump|Finit|Fsnarf
vga misc             E3
vga feature          00
vga sequencer        03 01 0F 00 06
vga crt              5F 4F 52 9F 53 1F20B 3E - 00 40 00 00 00 00 00 00
                    1EB 2D1DF 28 001EB1EC C3 -7FF
vga graphics         00 00 00 00 00 00 05 0F - FF
vga attribute        00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F
                     01 FF 0F 00 00
vga apz                     0
vga linear                  0

main->exits
------------------------------------------

Plan9 はこのファイルの先頭に現れる 16進数で示したメモリーのダンプリストに現れる特徴のある文字列に
基づいてVGAカードの種類を決定している。
この例では、このVGAカードは TRIDENT MICROSYSTEMS 社ものである事が分る。この例ではチップの
型番までは分らないが、大抵はもっと詳しい情報が載っているのである。
さて、こうした特徴ある文字列とその開始位置は配布 FD のファイル
vgadb
の ctlr で記述されている情報と比較される。例えば vgadb の
ctlr
	0xC00DC="MACH64CTPCIU"				# ATI Graphics Xpression
	0xC00E7="MACH64GPPCIM"				# ATI xpert@work
	0xC00E7="MACH64GBPCIM"				# ATI xpert@work
	0xC00E7="MACH64GZPCIM"				# Rage IIC AGP
はダンプで表示されたメモリの特徴のある文字列とその位置を表しているのである。

インストーラがグラフィックスモードに入れずに
%
のプロンプトを出す場合には2通りの可能性がある。
1. そのチップはサポートされていない
2. そのチップはサポートされているが、認識できない
後者であれば vgadb の ctlr エントリに認識に必要な情報を加えてやれば解決する。
(残念ながら筆者の TRIDENT はサポートされていない)