Files
oldlinux-files/Linux-0.98/Yggdrasil-0.98.3/usr/X386/lib/X11/etc/CONFIG
2024-02-19 00:21:16 -05:00

592 lines
30 KiB
Plaintext

I. Release notes
II. Videotiming configuration tutorial
*******************************************************************************
I. Release notes:
-----------------
o before atempting to start X386 run the script:
/usr/lib/X11/X386/etc/install.sh !!!
(This is ISC's version, but look at it what really happens, and do the
same for your OS)
o if you start X11 form the console - vt, there MUST be a free /dev/vt??
o VPIX will only run with a version of X11R4 that supports TCP/IP.
o You cannot switch to a different virtual terminal using <Alt><F?> or
any other key combination. Use <Ctrl><SysReq><F?> instead. ISC folks
use by default <Alt><SysReq><F?>.
o The hot key combination <Ctrl><Alt><Bksp> will kill the server with no
questions asked.
SCO notes:
The SCO version has some minor flaws at present. But then again the OS
and development system do too.
o The screen may go blank after stopping the server. Hit enter a couple
times or run 'clear'.
o No shared library support unless you have the newest DevSys, 3.2.2.
o The CAPS and NUM lock work but don't light up.
o Check /usr/lib/X11/X386/README_SCO for more details.
Jim Kelly
uunet!microsoft!jimke
SVR4 notes:
o There may be problems with vt-switching
******************************************************************************
II. Videotiming configuration tutorial
---------------------------------------
(written by Chin Fang, fangchin@leland.stanford.edu)
Content:
1. Introduction
2. Get'em now
3. Some preliminaries
4. Lets get to work
1. Introduction
X386 allows it's users to configure their video subsystem and thus encourages
a near optimum use of existing hardware. If you would like to use X386
but do not feel having enough understanding about the configuration process,
then this tutorial should provide you with enough background after you go
thru it.
Since most 386 Unix systems' video subsystems compose of a multi-scanning
type monitor and a SVGA, so only setup for this type subsystems is covered.
2. Get'em now
Before you start setting up X386 on your system, you need to collect a few
data and facts first. They are the following:
(1) your monitor's sync frequency ranges for both horizontal and vertical
directions
(2) your video adapter (SVGA) driving frequency bandwidth
Sync frequency ranges are usually tabulated in your monitor's user's manual,
under specification. SVGA's spec. in it's user's manual usually provides
the driving frequency bandwidth (and/or clock timings available). If not, the
best way is to use the TURBO Pascal program clock.exe to detect the available
clock timings (driving frequencies). It has to be done eventually to write
the X386 configuration file Xconfig, so you may wish to run it as soon as
possible. (clock.exe is provided as part of X386 distribution, so is it's src)
Note, some analog monitors like NEC 2A and one Parkard Bell 14" model,
only provide discrete sync frequencies for both horizontal and vertical
directions. They can be configured too, and the procedure is similar.
Only difference is that your room for configuration is severely limited
by the built-in monitor characteristics. SPECIAL CARE SHOULD BE TAKEN
WHEN X386 IS CONFIGURED FOR SUCH MONITORS!!
Another fact you may like to know is that your SVGA card may not employ
crystals as sources of video driving frequencies. Instead, some newer
boards have a chip, most likely voltage controlled, for providing driving
frequencies. An example would be like Swan Technology's SVGA uses a VCO
(voltage controlled oscillator). Still, clock.exe should be able to reveal
how many driving frequencies (clock timings) are available from such a
chip oscillator.
Finally, it's nice to get to know your monitor's video bandwidth if
you intend to use high resolution and to drive such resolution at a
high driving frequency, say 65Mhz. This is not a part of X386
config process. But knowing it will enable you make more intellgent
choices sometimes.
Video bandwidth together with the employed driving frequency may affect
your display's quality (like sharpness for fine details). However, most of
the time one can ignore this. More explainations will be given below.
Video Bandwidth is also tabulated in monitor's spec sheet.
3. Some preliminaries
When we talk about display, it's always NECESSARY to consider three things
together:
(1) your monitor's sync frequency ranges for both horizontal and vertical
(2) your video adapter's driving frequency bandwidth (from crystals for ex.)
(3) your software's video hardware device driver.
and to a lesser extend, your monitor's video bandwidth. But for now
lets concentrate on the three mentioned above.
The sync frequency ranges of your monitor together with your video
adapter's bandwidth determines the ultimate resolution that you can
use. But it's up to the driver to untap any potential of your
hardware. Superior hardware combination without an equally
competent device driver is a waste of money. On the other hand,
having a versatile device driver but not so good hardware combo, at
least one can explore the limit of them. This is the design
philosophy of X386.
4. Lets get to work
How to determine a good resolution for your monitor? Please read the following
Definition: screen refresh rate => it's the DRIVING clock frequency divided
by the product of horizontal frame length and vertical frame
length.
Q. what is driving clock frequency?
A. it's the oscillatory frequency of the crystal(on your
video board) employed by your graphics software's video
driver. For instance, if your driver uses 36 Mhz out of
25 28 0 40 36 40 45 58
32 36 31 35 50 48 33 65 (all in Mhz, for Sigma Legend)
then the driving frequency is 36Mhz. Nothing else.
This is the frequency used by the driver to determine
how frequent to update (thus refresh) screen image.
Q. What's frame length for horizontal and vertical directions?
A. It's the number of clock ticks (measured in terms of the
driving timing) for your monitor's electron gun to impart
a beam of electrons onto the screen and sweep such a beam
from left side of the tube to the right side and back.
Similarly, for vertical direction, from bottom to top and
back to bottom.
Q. Why this has anything to do with resolution?
A. A desired resolution in fact should be called the portion
of frame length during which an electron beam creates visible
image to your eyes! Any image is created with your eyes's
retention and the fast moving electron beam sweeping across
your monitor. At any instant, there is in fact ONLY ONE dot
hitting the screen, but due to your eyes retention, you
see a block of image.
Now it should be helpful to look at two pictures to
get better idea:
_______________________
| | A horizontal frame
|->->->->->->->->->->-> | length is the time
| )| required for an
|<-<-<-<-<-<-<-<-<-<-<- | electron beam tracing
| | a pattern as shown on
| | left
| |
| |
|_______________________|
_______________________
| ^ | A vertical frame
| ^ | | length is the time
| | v | required for an
| ^ | | electron beam tracing
| | v | a pattern as shown on
| ^ | | left
| | v |
| ^ | |
|_______|_v_____________|
It is always helpful to think that the image on a
screen is formed by an electron beam tracing in a
zigzag pattern, ie, the beam moves left <-> right
and at the same time up <-> down too.
Q. So what does this have anything to do with screen refresh
rate?
A. By definition, one hertz (hz) is one cycle per second.
So, if your horizontal frame length takes x ticks, ver.
frame length takes y ticks, then to cover the entire screen,
a rectangular area, takes x times y ticks. Since your
driving frequency provides say N ticks per second by
definition, then obviously your monitor's electron gun(s)
can impart a dot on the screen and sweep it from left
to right and back and from bottom to top and back (which
takes total xy ticks) N/xy times/sec. This IS your
screen's refresh rate! Because that's how many times your
screen can be updated thus REFRESHED per second!
Q. Why I have to know this?
A. You need to understand this concept to "design" a
good resolution which not only provides you a steady
image, but also utilizes your hardware in a near
optimum manner.
Q. So how do I get a desired resolution?
A. Simple! Jut look at your monitor's data sheet, normally
part of your users' manual. Make sure it's type, ie.
fixed frequency or multiscaning. The later is much
flexible if not better.
THE FOLLOWING DISCUSSION DOES NOT APPLY TO THE FORMER!!
Then, use your horizontal max sync frequency, say 55khz
try out the clock frequencies listed or detected by
clock.exe. As an example, say for Sigma Legend, there is
a 65 Mhz clock oscillatory driving frequency available.
And from above assumption, your monitor can sync up to
55 Khz in horizontal. To get max REFRESH rate and
at the same time get non-interlaceness, do the following:
Obviously, if your clock cycles only N times per second,
and if your monitor electron beam syncs at x times per
second, the using the definition of frame length above,
you can only have so many horizontal frames per second:
N/x, in our sample, it would be 65Mhz/55khz=1181 times.
But due to VGA's hardware restrictions, you can only have
multiple of eight number of frames per second in the
horizontal direction. So round it off -> 1176.
This represent the MINIMUM frame length that you can
use. You can, of course, get longer frame length by
using lower sync frequencies. In so doing, you may
not be able to raise viewing resolution, but you WILL
pay the price of lower refresh rate. Following the
explainations below you will find out why. Assuming,
of course, the same driving frequency is still used.
Take 80 percent of this clock ticks, or 944 ticks for your
viewing image. This is a rule of thumb! Don't ask why!
Take 75% of 944 as your vertical ticks for viewable image,
you have 708 ticks. A rule of thumb is 1.05 times of ticks
should be the vertical frame length ->743 ticks. Here I
implicitly assumed that you like the Golden ratio.
Please note that Golden ratio is not a requirement
at all.
So your screen refresh rate is 65Mhz/1176*743=74.4 hz!
THIS IS EXCELLENT! Don't settle on anthing less IF POSSIBLE!
The image at this update rate (or screen refresh rate)
WILL LOOK STEADY EVEN TO VIDEO CAMERAS! (well... I know
in this case it is not likely. Please keep reading to
find out why)
And you got 944x708 to boot. Not bad at all! You
can even improve it further to put it into almost 76 Hz
by using the fact that your monitor in horz. direction
ofen can sync at higher frequency then 55 khz by about
2khz or so and the fact that in vertical direction,
you can lower the frame length somewhat. (ie, take less
than 75% of 944 in the example above)
All this is simple arithematics and simple facts about
oscilloscopes. No black magic at all!
But MAKE SURE that your monitor electron guns can sync
up to 76 Hz vertical. (NEC 4D CANN'T for instance. It
goes only up to 75 Hz in vertical)
Q. What else do I need to know?
A. You need to know when and where to place sync
pluses. Recall the two pictures above? Only part
of the time required for tracing such a frame is used
for displaying viewable image (ie. your resolution).
Lets say for the horizontal direction, it takes H ticks
to trace the frame, and h ticks for viewable data.
Obviously, h < H by definition. For concretness, lets
assume both start at the same instant as shown below:
|___ __ __ __ __ __ __ __ __ __ __ __ __
|_ _ _ _ _ _ _ _ _ _ _ _ |
|_______________________|_______________|_____
0 h H unit: ticks
^ ^
| |
<----->
s
Now, we would like to place a sync plus of length s
like shown above, ie, between the end of clock ticks
for display data and the end of clock ticks for the
entire frame. Why so? because if we can achieve
this, then your screen image won't shift to the right
or to the left. It will be where it supposed to be
on the screen, covering squarely the monitor's viewable
area.
Q. But I don't know how to get sync plus's length s, what
can I do about it?
A. Because this is the only tricky part of configuration,
I want to get you understand all basics first before
I overwhelm you with jargons. Now let's talk.
In general, we have to do a little trial and error for
this part. But most of the time, we can safely assume
that a sync plus is about 3.5 to 4.0 micro second in
length, as documented in some monitors user's manual
in the spec section.
For concretness again, let's take 3.8 micro second to
be s, which btw, is not a bad value to start with.
Now, using the 65Mhz clock timing above, we know s is
equivalent to 247 clock ticks (= 65x10**6 * 3.8 *10**(-6))
[recall M=10**6, micro=10**(-6)]
Go back to the picture above, how do we place the
247 clock ticks as shown in the picture?
Now it's time for you to get your calculator!
Using our example, h is 944 and H is 1176. The difference
between the two is 1176-944=232 < 247! Obviously we
have to do some adjustment here. What can we do?
The first thing is to raise 1176 to 1184, and lower 944
to 936. Now the difference = 1184-936= 248. Hmm, closer.
Next, instead using 3.8, we use 3.5 for calculating s;
then, we have 65*3.5=227. Looks better. But 248 is not
much higher than 227. It's normally necessary to have
30 or so clock ticks between h and the starting value of s
and the same for the ending value of s and H. AND they
have to be multiple of eight! Are we stuck?
NO! let's do this, 936%8==0, (936+32)%8==0 too. But
936+32=968, 968+227=1195, 1195+32=1227. Hmm.. this looks
not too bad. But it's not a multiple of 8, so lets
round it up to 1232.
But now we got ourself in another potential trouble,
the sync plus is no longer placed right in the middle
between h and H anymore. Happily, using our calculator
we find 1232-32=1200 is also multiple of 8 and
(1232-32)-968=232 corresponding using a sync plus of
3.57 micro second long, still reasonable.
In addition, 936/1232~0.76 or 76%, still not far from
80%, so it should be all right.
Furthermore, using the current horizontal frame length, we
basically ask our monRPor`4o`sync at 52.7khz(=65Mhz/1232)
which is within it's capability. No problems.
Using rules of thumb we mentioned before, 936*75%=702,
This is our new vertical resolution. 702*1.05=737, our
new vertical frame length.
Screen refresh rate = 65Mhz/(737*1232)=71.6 Hz. THIS
IS STILL EXCELLENT! KEEP IT.
Q. But did you forget about how to place sync plus in the
vertical direction?
A. I intentionlly did so. Let's deal one thing at a time.
For vertical direction, we usually would like to place
sync plus as shown below:
|___ __ __ __ __ __ __ __ __ __ __ __ __
|_ _ _ _ _ _ _ _ _ _ _ _ |
|_______________________|_______________|_____
0 v V unit: ticks
^ ^
| |
<----->
sv
Note in the picture, we start the sync plus at the end
of the vertical display data ticks. Since by the defintion
of frame length, a vertical tick is the time for tracing a
complete HORIZONTAL frame, therefore in our examlple, it
is 1232/65Mhz=18.95us. Experience shows that a vertical
sync plus should be in the range of 50us and 300us.
As an example let's use 150us, which translates into 8
vertical clock ticks (150us/18.95us~8).
Q. Are we done already so far? I am tired!
A. YES! we are almost done. All we need to do from now on
is to write our result into Xconfig as follows:
#name clock horizontal timing vertical timing flag
936x702 65 936 968 1200 1232 702 702 710 737
No special flag necessary. Now we are REALLY done.
Q. Then what is the memory requirement for such a resolution?
A. Memory requirment: 936x702/1024~642K video RAM. So if
you have one meg, you have extra for virtual terminal
switching. See, this is good compromise!
However, if you only have 512K on board, then you can't
use it. Even you have a good monitor, without enough
video ram, you can't take advantage of your monitor's
potential. On the other hand, if your SVGA has one meg,
But your monitor can display at most 800x600, then high
resolution is beyond your reach either. But the extra
video ram can always be used for useful things like
running multiple servers and virtual terminal switching
Please read X386.man for details.
Q. The example you gave is not a standard, can I use it?
A. WHY NOT? There is NO reason whatsover why you have to use
640x480, 800x600, or even 1024x768. X386 driver lets you
config your hardware with a lot freedom. It usually takes
two to three minutes to come up the right one.
The KEY is high refresh rate with reasonable viewing area.
NOT Hi Res at the price of flickerness!
Q. It this the ONLY resolution given the two 65Mhz and 55Khz
timings?
A. ABSOLUTELY NOT!! You are encouraged to follow the general
procedure and do some trial and error to come up a setting
that's really to your liking. Believe me, it's fun.
Furthermore, you need to read X386.man to see how to set
up different resolutions for the server, and how to use
hot key combos to chose them at run time. That way, you
can setup different resolutions for different needs.
Q. You mentioned video bandwidth earlier, why you have not
discussed it yet?
A. Because I don't think you can use it for your X386
configuration. Most of the time you simply can ignore this
monitor characteristics. With a SVGA and most hi res
monitors, you CANN'T even reach the limit of your monitor's
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
video bandwidth. The following are examples
Brand Video Bandwidth
NEC 4D: 75Mhz
Nano 9070 50Mhz
Nano 9080i 60Mhz
Mitsubishi HL6615 110Mhz
Mitsubishi Diamon San 100Mhz
IDEK MF-5117 65Mhz
IOCOMM Thinksync-17 CM-7126 136Mhz
HP D1188A 100Mhz
Philips SC-17AS 110Mhz
Most well known SVGA cards provide driving frequency ONLY
up to 65Mhz. So obviously, judging from above samples,
video bandwidth is not a factor you need to worry about.
Q. Then why almost all monitor makers are making a big fuss
about it? And what it is anyway?
A. Simply put, your monitor employes electronic signals
to represent data (or image to your eyes). Such signals
always come in in wavy form once they are converted into
analog form from digitized form. They can be considered
as combinations of many simpler wave forms each one of
which has a fixed frequency, many of them are in the Mhz
range, eg, 20Mhz, 40Mhz, or even 70Mhz. Your monitor
video bandwidth is the capability of it's internal circuts
to process such high frequency signals without distorting
their forms.
So, if a monitor has a board bandwidth, like CM-7126
listed above, then clearly any signal containing components
having frequencies lower than 136Mhz would come thru it's
circuits with their wave form intact. Other models can
not claim so.
Consequently, fine details of images can be displayed
without lossing fidelity. Shapeness is thus maintained.
I emphasize that video bandwidth is just one factor in
getting high quality image. There are other things to
be considered as well. For more info, consult your
librarian.
Q. But I don't have a pricy hi-res monitor. Mine is only
a humble NEC Multisync II, should I care?
A. Still NO! NEC Multisync II can't even display 800x600
per it's spec. It can only display 800x560. For such
a low resolution, you never need any high clock timing
provided by your SVGA, most likely you can only use
32Mhz and 36Mhz, both of them are still not too far from
the monitor's rated video bandwidth 30Mhz.
At these two driving frequencies, your screen image may
not be as shape as it should be, but definitely of tolerable quality. Of course it would be nicer if NEC Multisync II
had a video bandwidth higher than, say, 36Mhz. But this
is not critical for common tasks like text editing, as long
as the difference is not significant so as to cause severe
image distortion (if so your eyes would tell you right away).
If you only want 640x480, then only 25Mhz or 28Mhz are
good choices. Both of which are lower than 30Mhz. So you
are even safer in this case.
Q. You just mentioned two standard resolutions. In Xconfig,
there are many standard resolutions available, can you tell
me whether I still need to "tinker" with X386's config?
A. Absolutely! Take, for example, the "standard" 640x480
listed in the current Xconfig. It employes 25Mhz driving
frequency, frame lengths are 800 and 525 => refresh rate
~ 59.5Hz. Not too bad. But 28Mhz is a commonly available
driving frequency from many SVGA boards. If we use it to
drive 640x480, following the procedure we discussed above,
you would get frame lengths like 812 and 505. Now the
refresh rate is raised to 68Hz, a SIGNIFICANT improvement
over the standard one! Your eyes will tell you if you
don't trust my words.
Q. I don't believe your emphasis on refresh rate! Using your
definition, I got like 45Hz but I feel fine.
A. Owing to the geometry of our pupils, when you face your
monitor, and if you are using a dark background, with
a good constrast for foreground color, and low to medium
intensity, you shouldn't feel too bad even at 45Hz.
The acid test is this: open a xterm with pure white back-
ground and black foreground using xterm -bg white -fg black
and make it so large as to cover the entire viewable area.
Now turn your monitor's intensity to 3/4 of it's setting,
and turn your face away from the monitor. Try peeking at
your monitor sideways. If you don't sense any flicker or
if you feel the flickering is tolorable to you. Then that
refresh rate is fine with you. Otherwise you better do
something about it.
Different individuals have different sensitivity/tolerance
to flickering. Above 60Hz is HIGHLY recommanded. Remember
even florescent lights are refreshed at 60Hz, we still often
use them in clusters to reduce flickering?
Q. But how about interlace/non-interlace?
A. The key word in video watching is NON-FLICKER! The point
is that non-interlace is just part of the game! With non
interlace alone BUT low screen refresh rate, your eyes will
suffer badly!!!! Interlace-ness just worsen the flickering
at the same refresh rate. If you can manage to get high
enough refresh rate, say 90 Hz for interlace display, you
WILL NOT feel any flicker!! (But I doubt this is feasible)
So, CONCLUSION => NON-INTERLACENESS != NON-FLICKER!
Q. Can you summarize what we have discussed so far?
A. Sure! It would be:
(1) for any fixed driving frequency, raising max resolution
incurs the penalty of lowering refresh rate and thus
introducing more flickering.
(2) if a high resolution is desirable and your monitor
supports such, try to get a SVGA card that provides
a matching high driving frequency. The higher, the
better!