From: gero@gkminix.han.de (Gero Kuhlmann)
Subject: Re: X386-XConfig (Linux) mit ColorImage 4 und NEC MultiSync 3D  
Organization: gkminix, Hannover, Germany
Date: Thu, 10 Dec 92 03:28:47 GMT

itwill@techfak.uni-bielefeld.de (Torsten Will) writes:
> Wer kann mir helfen?
> Nach Naechten des Rechnen und Probierens habe ich es immernoch nich geschafft
> X nach der Installation so zu configurieren, dass ich arbeiten konnte. Problem
> ist -- naturlich -- die Display-Einstellung. 
> Ich habe nun wirklich keine ausgefallene Hardware:
> - ColorImage 4 (ET3000 Chipsatz, also 512 KB)
>   zB mit. 36MHz bei 800x600, horiz 35.5kHz, vert 56Hz
> - NEC Mutisync 3D
>   horiz 15.5kHz bis 38kHz, vert 50Hz bis 90Hz, (Videobandbreite 45MHz)
> - ausserdem 486DX, 8MB RAM, 55MB Linux-Partition.

Die Sache ist aber wirklich nicht so schwer. Also: bei 36MHz Pixeltakt und
35.5kHz horizontaler Frequenz ergibt das (36000000 / 35500) etwa 1014 Punkte
pro Zeile. Da die VGA-Karte aber einen durch 8 teilbaren Wert verlangt, nehmen
wir einfach etwas weniger, naemlich 1008. Nun willst Du 800 Punkte davon auf
dem Schirm darstellen koennen. Die Differenz betraegt 208 Punkte, die fuer den
Zeilensynchronimpuls zur Verfuegung stehen. Nun nehme ich mal an, dass Dein
Monitor einen Synchronimpuls von etwa 3.8 Mikrosekunden verlangt (musst Du
ggf. im Handbuch nochmal nachsehen). Das ist ein guter Mittelwert, der von
den meisten Multisync-Monitoren wohl verarbeitet werden kann. Diese 3.8
Mikrosekunden entsprechen bei einer Punktfrequenz von 36MHz etwa 136 Punkten
(36*10^6 * 3.8*10^-6). Diese 136 Punkte muessen nun irgendwie in der Synchron-
luecke verteilt werden. Am besten natuerlich zentriert. Ausserdem muessen
mindestens 30 Punkte am Anfang und am Ende der Synchronluecke freibleiben.
Da die Synchronluecke ja 208 Punkte betraegt, passt der Impuls selbst mit seinen
136 Punkten rein. Die Differenz ist 72, geteilt durch 2 gibt 36, und das ist
groesser als 30: bingo! 36 ist aber leider nicht durch 8 teilbar. Also machen
wir 32 draus. So, nun schreibt der Strahl also erstmal die 800 Bildschirm-
punkte. Dann kommt eine Luecke von 32 Punkten (wie oben bestimmt). Danach
folgt dann der Synchronimpuls, der somit bei 832 Punkten anfaengt. Die Zeile
soll nach 1008 Punkten zu Ende sein. 32 Punkte sind wieder Luecke, also muss
der Synchronimpuls nach 976 Punkten seit Anfang der Zeile zu Ende sein.
Nochmal die Kontrolle: 976-832 ergibt 144 Punkte fuer den Synchronimpuls. Das
entspricht 4 Mikrosekunden, ist also recht nah an 3.8 Mikrosekunden.
So, nun noch das vertikale Timing. Das ist nicht sehr kritisch. Die Anzahl der
Zeilen sollte etwa 1.05 mal so gross sein wie die Anzahl der sichtbaren Zeilen.
Bei 600 Zeilen sind dies 630 Zeilen insgesamt. Um eine etwas hoehere Bild-
wechselfrequenz zu erhalten, kann man aber gut 624 draus machen. Damit dauert
dann eine Zeile 28 Mikrosekunden. Die Laenge des Vertikalsynchronimpulses sollte
(zu mindest bei meinem Monitor) etwa 65 Mikrosekunden dauern. Das ergibt dann
2.3 Zeilen pro Impuls. Wir habe aber 24 Zeilen Zeit. Also kann man ohne
Probleme die Impulsdauer auf 8 Zeilen ausdehnen. Setzt man den Synchron-
impuls nun genau in die Mitte der Luecke, so steht bei mir das Bild nicht
in der Mitte. Ich habe daher den Impuls ziemlich an den Anfang gesetzt. Damit
sieht dann der vollstaendige Eintrag wie folgt aus:

"800x600" 36  800 832 976 1008  600 608 616 624

Die resultierende Bildwechselfrequenz ist etwa 57Hz. Das ist ziemlich wenig
(und Deine Augen werden es Dich merken lassen :-) Man koennte ggf. die Werte,
insbesondere die Verticalzeilenzahl noch etwas raffen. So muesste es aber
laufen.

> Bei meiner aktuell am Besten funtionierenden Einstellung (Auszug aus Xconfig)
> |  Virtual 800 600
> |  Clocks 36
> |  Modes "mybest"
> |
> |  ModeDB
> |    "mybest"  36  800 848 960 1016   600 611 622 633

Ich wuerde zunaechst nur durch 8 teilbare Werte benutzen. Einige Werte muessen
naemlich durch 8 teilbar sein damit sie die VGA-Karte richtig verwerten kann.
Ich weiss leider nur nicht genau, welche das sind :-(

> Jadenfalls waere ich demjenigen sehr dankbar, der mir weiterhelfen koennte, denn
> ohne X ist Linux wohl nur die Haelfte wert, richtig?

Das sehe ich garnicht so. M.E. ist eine graphische Benutzeroberflaeche auf einem
PC doch eher ein unnoetiger Resourcenfresser. Sicher, es ist ganz schoen, mit
Graphik herumzuexperimentieren. Und wenn man Graphikprogramme wie z.B. CAD
benoetigt, kommt man um X11 wohl auch nicht herum. Zur taeglichen Routine
(z.B. News lesen :-) stoert das doch eher, solange man nicht die passende
Hardware hat.

Gruss, gero.

-- 
Gero Kuhlmann			Zerberus:  G.KUHLMANN@A-LINK-H.ZER
Donarweg 4			SubNet:    gero@gkminix.sub.org
D-3000 Hannover 51              IN:        gero@gkminix.han.de
Newsgroups: de.comp.os.unix