835 lines
43 KiB
Plaintext
835 lines
43 KiB
Plaintext
Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,comp.windows.x.i386unix,comp.answers,news.answers
|
|
From: geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer)
|
|
Subject: Linux XFree86 HOWTO
|
|
Keywords: Linux, XWindows, XFree86
|
|
Summary: HOWTO on installation of XFree86 for Linux
|
|
Followup-To: poster
|
|
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
|
|
|
|
Archive-name: linux/howto/XFree86
|
|
Last-modified: 10 February 1994
|
|
|
|
$Id: XFree86-HOWTO,v 1.6 1994/02/08 00:00:00 geyer Rel geyer$
|
|
|
|
Comments or suggestions on this HOWTO are very welcome, i.e. if you feel that
|
|
something is missing or something is obsolete or wrong, please let me know.
|
|
|
|
The Linux XFree86 HOWTO, version 1.6
|
|
------------------------------------------------------------------------------
|
|
by Helmut Geyer (geyer@kalliope.iwr.uni-heidelberg.de)
|
|
with help from Dirk Hohndel (hohndel@informatik.uni-wuerzburg.de)
|
|
and David E. Wexelblat (dwex@aib.com)
|
|
|
|
This document describes how to obtain, install and configure XFree86[TM]
|
|
version 2.0 for Linux systems. XFree86 is an enhanced version of the X
|
|
Window System, version 11 release 5, with support for many versions of UN*X
|
|
running on Intel i386/486 platforms, including Linux. It support a great
|
|
amount of video hardware for these systems and includes many bugfixes beyond
|
|
the MIT standard release of X.
|
|
|
|
This document is intended to help Linux users install and configure XFree86
|
|
v2.0, which was released on 31 October 1993. It is furthermore intended to
|
|
answer some basic questions about X and programs using X.
|
|
|
|
Please read this file and the referenced documentation files BEFORE
|
|
installing and starting XFree86. IF YOU ARE NOT CAREFUL, YOU MIGHT DAMAGE
|
|
YOUR HARDWARE.
|
|
|
|
This file comes WITHOUT ANY WARRANTY OF FITNESS. If you damage anything
|
|
following these informations, you are on your own. For a complete
|
|
description of the features and the installation please look at the
|
|
documentation files and manuals that come with XFree86 (residing in
|
|
/usr/X386/lib/X11/etc and its subdirs as well as in /usr/X386/man). The
|
|
most important files will be pointed out to you in this HOWTO. Note that
|
|
this HOWTO gives not complete information on setting up XFree86, but that
|
|
you have to get the documentation files for XFree86 (from the file
|
|
xf86-doc-2.0.tar.gz).
|
|
|
|
Other man pages from the stock X11R5 distribution can be found in
|
|
xf86-man-2.0.tar.gz. These manfiles come as sources for the nroff program.
|
|
To read them you will need a working man program as well as the groff
|
|
package for formatting them. Note that it is often required to read
|
|
manpages, so you should install the groff package anyway. (I think it is no
|
|
good idea that in many distributions this package is considered optional).
|
|
|
|
New versions of this document will be posted to comp.os.linux.announce, as
|
|
well as archived on sunsite.unc.edu:/pub/Linux/HOWTO.
|
|
|
|
Contents:
|
|
|
|
0. Introduction - What are X11R5 and XFree86?
|
|
1. Supported Hardware
|
|
2. Where do I get XFree86 and what do I need to run it?
|
|
3. Configuring XFree86
|
|
4. tinyX - a package for systems with low memory
|
|
5. X related packages
|
|
6. Compiling programs that use X
|
|
7. Programming in X
|
|
8. Finding Information on X on the net
|
|
Appendix: Some Questions & Answers
|
|
Copying conditions & Trademarks
|
|
|
|
0. Introduction - What are X11R5 and XFree86?
|
|
|
|
X11R5 is a windowing system for UN*X like operating systems. The X
|
|
Windowing System is issued by the MIT Consortium (look at the X(1)
|
|
manpage for more information) and is put under a very liberal copyright,
|
|
that allows any use of source code provided that the original copyright
|
|
notices are included.
|
|
As X is THE standard windowing system for UN*X operating systems, there
|
|
are a lot of applications using it (both free and commercial).
|
|
|
|
XFree86 is a port of X11R5 that supports several versions of Intel-based
|
|
Unix and Unix-like operating systems. The XFree86 servers are partly
|
|
derived from X386 1.2, which was the X server distributed with X11R5,
|
|
but many of them are newly developed. The accelerated servers that are
|
|
the most important change since XFree86-1.3 are completely new. This
|
|
release consists of many new features and performance improvements as
|
|
well as many bug fixes. The release is available as source patches
|
|
against the MIT X11R5 code, as well as binary distributions for many
|
|
architectures.
|
|
|
|
Note that while the source and installation trees retain the name 'X386'
|
|
name (for simplicity of maintenance of the source tree), there is no
|
|
connection between XFree86 and the commercial X386 product sold by SGCS.
|
|
The XFree86 Core Team maintains technical contacts with SGCS in an
|
|
effort to keep user-affecting changes to the workings of the products
|
|
from diverging too radically. There is no direct involvement of either
|
|
group in the workings of the other.
|
|
|
|
You will find more information on the XFree86-2.0 release and the
|
|
XFree86 project in the file README from the documentation tarfile.
|
|
|
|
1. Supported Hardware
|
|
|
|
As this is the most often asked question, this will be the first
|
|
section. Currently XFree86 (Version 2.0) supports the following
|
|
chipsets in the XF86_SVGA server (note that it depends on the chipset
|
|
whether a card is working and not on the vendor, with Diamond notably
|
|
excluded, cf. the remark at the end of this paragraph):
|
|
|
|
nonaccelerated chipsets:
|
|
Tseng ET3000, ET4000AX, ET4000/W32
|
|
Western Digital/Paradise PVGA1
|
|
Western Digital WD90C00, WD90C10, WD90C11, WD90C30
|
|
Genoa GVGA
|
|
Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000
|
|
ATI 28800-4, 28800-5, 28800-a
|
|
NCR 77C22, 77C22E
|
|
Cirrus Logic GLGD5420, CLGD5422, CLGD5424, CLGD6205, CLGD6215,
|
|
CLGD6225, CLGD6235
|
|
Compaq AVGA (cf the question in the appendix)
|
|
OAK OTI067, OTI077
|
|
accelerated chipsets:
|
|
Cirrus CLGD5426, CLGD5428
|
|
Western Digital WD90C31
|
|
|
|
NOTE that the WD90C33 chipset does NOT work with XFree86-2.0.
|
|
|
|
These chipsets are all supported in 256 color (XF86_SVGA) and in
|
|
monochrome mode (XF86_Mono) with the exception of the ATI and Cirrus
|
|
chipsets, which are only supported in 256 color mode. Note that the
|
|
ET4000/W32 is only supported as a ET4000 clone and none of the
|
|
accelerated functions are used.
|
|
|
|
The monochrome server also supports generic VGA cards (using 64k of the
|
|
video memory as a single bank), the Hercules card and the Hyundai
|
|
HGC-1280. Note that these drivers are not part of the XF86_Mono server
|
|
by default. If you want to use these, you have to reconfigure your
|
|
XF86_Mono server using the LinkKit (or, of course, the source
|
|
distribution - but the LinkKit will need less disk space and less
|
|
compile time). See the Appendix for further information on using a
|
|
Hercules mono card.
|
|
|
|
There is an (experimental) additional server that works on generic VGA
|
|
hardware: XF86_VGA16, a 16 color server.
|
|
|
|
XFree86-2.0 supports the following accelerated chipsets with seperate
|
|
servers:
|
|
|
|
S3 86C911, 86C924, 86C801, 86C805, 86C928 supported by
|
|
the XF86_S3 server
|
|
ATI mach8 supported by the XF86_Mach8 server
|
|
ATI mach32 supported by the XF86_Mach32 server
|
|
IBM 8514/a and true clones supported by the XF86_8514 server
|
|
|
|
No other chipsets are supported; not Weitek P9000, not TIGA, not
|
|
IIT AGX, not Microfield, not the new MGA chipset (as in the
|
|
Matrox card), etc. Support for some of these will likely be
|
|
provided in future XFree86 releases. TIGA will never be
|
|
supported, as it requires licensing materials from TI (and may
|
|
disallow source distributions); Microfield boards will never be
|
|
supported, as they use proprietary and undocumented custom microcode
|
|
interfaces.
|
|
|
|
|
|
NOTE further: The following is a statement of the XFree86 Core Team
|
|
concerning graphic cards by Diamond:
|
|
|
|
All Diamond cards are NOT supported by XFree86 even if they
|
|
have a supported chipset (with the exception of the Cirrus
|
|
chipsets that have an internal clock generator). The reason
|
|
for this is that Diamond has changed the mechanism used to
|
|
select pixel clock frequencies, and will only release
|
|
programming information under non-disclosure. We are not
|
|
willing to do this (as it would mean that source cannot be
|
|
provided). We have had discussions with Diamond over this,
|
|
and they do not intend to change this policy. Hence we
|
|
will do nothing to support Diamond products going forward
|
|
(i.e. don't send us a program to run set their clocks).
|
|
XFree86 DOES NOT SUPPORT DIAMOND HARDWARE. It is possible
|
|
to make some of it work, but we will not assist in doing
|
|
this.
|
|
|
|
|
|
The author of this HOWTO does support this statement completely. If you
|
|
have read this and bought nevertheless a card from Diamond, you will
|
|
damage the idea of free software as Diamond does not support the efforts
|
|
of a free X11 server.
|
|
|
|
However, if you are stuck with a card from Diamond, there is a
|
|
compilation of the needed things to get XFree86 running on some of these
|
|
cards. It is called the Diamond-FAQ and can be obtained from tsx-11 or
|
|
sunsite in the docs directories.
|
|
|
|
Do not ask the XFree86 team about Diamond hardware. You will simply
|
|
annoy them, and get no information.
|
|
|
|
For some of these chipsets there are specific README files (to be found
|
|
in /usr/X386/lib/X11/etc). If there is one for the chipset you use, read
|
|
it!! In these READMEs the specific options that can be used to
|
|
configure the server are explained.
|
|
|
|
More information on the servers can be found in their manpages.
|
|
|
|
Later more on configuring the servers.
|
|
|
|
2. Where do I get XFree86 and what do I need to run it??
|
|
|
|
This section is dedicated to the Linux binary distribution so all file
|
|
names and site names are for Linux only. If you read this file and are
|
|
not using Linux, you should get your hands on the announcement of
|
|
XFree86-2.0 for you OS. In it you will find all necessary information on
|
|
obtaining it.
|
|
|
|
You can get the binary distribution of XFree86-2.0 for Linux via
|
|
anonymous FTP from
|
|
tsx-11.mit.edu:/pub/linux/packages/X11/XFree86-2.0
|
|
or
|
|
sunsite.unc.edu:/pub/Linux/X11/XFree86-2.0
|
|
and all MIRRORS of these two.
|
|
|
|
You can find an incomplete list of sites mirroring these in the
|
|
BBS-list that gets regularly posted to comp.os.linux.announce or can be
|
|
found on both sites in the docs directory.
|
|
|
|
The distribution consists of several gzipped tarfiles (some are too big
|
|
to fit on one floppy disk, you may have to split them):
|
|
|
|
XF86_8514.tar.gz An accelerated server for cards using IBM8514 chips
|
|
XF86_Mach32.tar.gz An accelerated server for cards using Mach32 chips
|
|
XF86_Mach8.tar.gz An accelerated server for cards using Mach8 chips
|
|
XF86_Mono.tar.gz A Monochrome server
|
|
XF86_S3.tar.gz An accelerated server for cards using S3 chips
|
|
XF86_SVGA.tar.gz An SVGA server (most chipsets use this)
|
|
XF86_VGA16.tar.gz A server for 16 colour graphics modes
|
|
xf86-svr-2.0.tar.gz All of the above servers
|
|
xf86-bin-2.0.tar.gz Client programs
|
|
xf86-cfg-2.0.tar.gz XDM configuration files and chooser
|
|
xf86-fnt-2.0.tar.gz Fonts (all of them)
|
|
xf86-kit-2.0.tar.gz Linkkit for building your own X servers
|
|
xf86-lib-2.0.tar.gz Dynamic libraries, bitmaps and minimal fonts
|
|
xf86-man-2.0.tar.gz Manual pages (both client + programmer)
|
|
xf86-pex-2.0.tar.gz PEX libraries and sample clients
|
|
xf86-prg-2.0.tar.gz Static libs, dynamic stubs, configs and
|
|
include files
|
|
xf86-doc-2.0.tar.gz Documentation and release notes for XFree86 2.0
|
|
xf86-doc2-2.0.tar.gz This file contains the manpage for Xconfig that
|
|
has mistakenly been left out of the -doc- file.
|
|
|
|
You will need libc 4.4.1 or newer to run XFree86-2.0. For the
|
|
accelerated servers you need Linux 0.99pl13 or newer (a working complete
|
|
mmap is needed for these).
|
|
|
|
The SVGA, VGA16 and Mono servers will work on Linux 0.99pl12 and newer.
|
|
Furthermore you will need to install David Engel's shared dynamic linker
|
|
ld.so version 1.3 or newer. You can find the most recent version on all
|
|
mirrors of tsx-11 in the /pub/linux/packages/GCC directory.
|
|
|
|
You will need a main memory of at least 8 MB and a virtual memory of at
|
|
least 16 MB (i.e. main memory + swap). It is possible to run X on a 4 MB
|
|
machine if you take some precautions on memory usage (look at section 4,
|
|
where a package for low memory systems is described). Note that you
|
|
should nevertheless have 16 MB of virtual memory. (So if you have 4 megs
|
|
of physical RAM, and 12 megs of swap, you're okay.) It is recommended
|
|
that you have *at least* 8 megs of physical RAM, as swap is very slow.
|
|
With only 4 megs of physical RAM, performance will suffer greatly.
|
|
|
|
If you want to run memory-hog programs from within X (as e.g. gcc) you
|
|
should at least have 16 MB of main memory and another 16MB of swap.
|
|
|
|
You will need about 17 MB of disk space for the complete installation
|
|
without LinkKit, 21 MB with LinkKit. By deleting those servers that you
|
|
don't need and removing the LinkKit after linking your own server, you
|
|
can save several MB of diskspace. A more concise listing on the needed
|
|
disk space and the contents of the distribution files can be found in the
|
|
release notes by Simon Cooper. These can be found in the 00README file
|
|
residing in the XFree86-2.0 directory.
|
|
|
|
Before installing XFree86, you should make a backup of all files that
|
|
you changed. They may not be usable, but they still hold a lot of
|
|
information you might want to preserve. (This includes your old XConfig
|
|
files.)
|
|
|
|
To install the binary distribution you have to do the following as root
|
|
in the / directory with all needed tarfiles from above. To get all
|
|
permission right you should use umask 022.
|
|
|
|
gzip -dc tarfilename | tar xvvof -
|
|
|
|
WARNING: This will overwrite all files from an older XFree86 version, of
|
|
course not the Xconfig file (if you did not link it to Xconfig.sample,
|
|
which you should NOT do). In other words, ionly if Xconfig.sample is
|
|
linked to your Xconfig, it will be overwritten.
|
|
|
|
After installing it, you will have to set it up correctly to match your
|
|
system. This is described in section 3.
|
|
|
|
2.1 What do I do if I want to compile it myself?
|
|
|
|
This is explained in the INSTALL, README and README.Linux files coming
|
|
with XFree86. You should do that, however, only if you want to have some
|
|
special changes to the standard distribution, as you will need a lot of
|
|
CPU time and disk space to do this. If you only want to change the
|
|
configuration of a server, you should use the Link Kit, as this is much
|
|
easier to handle and will not need that much resources by far.
|
|
|
|
For adding drivers to the SVGA server you will only need the Link Kit.
|
|
The Link Kit comes with documentation on writing drivers for SVGA. You
|
|
can find it in the directory /usr/X386/lib/Server/VGADriverDoc.
|
|
|
|
3. Configuring XFree86
|
|
|
|
From version 2.0 on all documentation files for XFree86 are combined in
|
|
one tarfile, xf86-doc-2.0.tar.gz. You have to get this file and look
|
|
through those files to configure XFree86 correctly. The following steps
|
|
are intended as a guide to these files.
|
|
|
|
There is a very good introduction to configuring XFree86 in the
|
|
README.Config coming with XFree86-2.0. Start there to configure XFree86
|
|
and follow the instructions step by step.
|
|
|
|
Furthermore you MUST read the manpages for Xconfig, XFree86 and the
|
|
server you want to set up (one of XF86_SVGA, XF86_Mono, XF86_VGA16,
|
|
XF86_S3, XF86_Mach8, XF86_Mach32 or XF86_8514). Just look in section 1,
|
|
which server supports the chipset of your graphic card and use this.
|
|
|
|
If you are not sure, which chipset your graphic card has (this should
|
|
only happen, if you do not have a manual for your card), you can try to
|
|
identify it by running SuperProbe, a graphic hardware detection program
|
|
that comes with XFree86-2.0. You should, however, rely on the
|
|
information of your manuals and not on that of SuperProbe (even if it is
|
|
in most cases correct).
|
|
|
|
Note that if SuperProbe does not detect your chipset correctly, the
|
|
XFree86 servers will neither. Note further that SuperProbe detects far
|
|
more hardware than XFree86 servers support.
|
|
|
|
There is a list of accelerated graphic cards that are reported to work
|
|
with XFree86-2.0 in the file AccelCards. Look through it to see, whether
|
|
your card is already in the database. While other boards not listed may
|
|
well work, The XFree86 team gives no assurances of that.
|
|
|
|
If you were running XS3, you should take a look at README.XS3, as some
|
|
things did change while incorporating the XS3 server into XFree86.
|
|
|
|
Several people reported problems with the XFree86 configuration that
|
|
could be solved by changing the BIOS configuration of shadowing and
|
|
cacheable areas. The reports which settings had to be changed in order
|
|
to get XFree86 working were partly contradicting, though.
|
|
Due to this fact, I only want to mention that there might be problems
|
|
arising from BIOS setup. If you cannot get it working in spite of
|
|
having followed all hints in the documentation, you might want to
|
|
fiddle with these settings.
|
|
|
|
For configuring you will need the following information on your system:
|
|
|
|
1. The specifications of your monitor (i.e. which vertical and horizontal
|
|
frequences can it handle and which video bandwidth has it). This is
|
|
the most important thing of all as you can toast your monitor using
|
|
incorrect video modes and you will need these specifications to check
|
|
the modes.
|
|
2. You need the name of the chipset (confer the remarks above). Note
|
|
that there are some companies using "s3" as a synonym for "accelerated"
|
|
chipset, so this is often not true. Please check it out in your
|
|
manuals.
|
|
3. Amount of video memory supplied by your card (this is usually detected
|
|
Correctly, but it is better to have the exact number and compare it
|
|
with the detected)
|
|
4. Which dot-clocks are available for your card, or is your dot-clock
|
|
programmable. This is the hardest part for the graphic card setup.
|
|
How to obtain these is described in the README.config.
|
|
NOTE: there is a problem with the clock probing code for the
|
|
WD90C3x chipsets. Please run the XFree86-1.3 server to probe
|
|
for the clocks and put these into your Xconfig file. Having
|
|
done that, you can use the XFree86-2.0 server.
|
|
NOTE: If your RAMDAC can handle pixel clocks higher than 110MHz,
|
|
it is probably one of the more recent high-end RAMDACs. As
|
|
all of these (as far as it is known) use special features to
|
|
make this possible, these RAMDACs should not be run at higher
|
|
clocks than 85 MHz. Support for such RAMDACs (at least for
|
|
some of them) will be in the next release of XFree86. If you
|
|
drive your RAMDAC too high with the current code, you will fry
|
|
it. So if you have such a card, do not use clocks higher than
|
|
85MHz (simply by not putting modes using clocks higher than
|
|
that into the Xconfig file).
|
|
5. The protocol your mouse uses and the device it is connected to. The
|
|
available mouse protocols are listed in the Xconfig manpage. You
|
|
have to use the keyword according to the protocol your mouse uses
|
|
and not the manufacturer,... The standard names of the mouse
|
|
devices for Linux are:
|
|
/dev/atibm for the ATI XL busmouse (NOTE: the ATI GU busmouse
|
|
is in fact a logitech busmouse)
|
|
/dev/logibm for the Logitech busmouse (NOTE: this uses the
|
|
busmouse protocol, NOT the Logitech protocol)
|
|
/dev/inportbm for the microsoft busmouse
|
|
/dev/psaux for a ps/2 or quickport mouse
|
|
NOTE: these are the new device names (as of MAKEDEV 1.2). Some
|
|
distributions and systems have different device names:
|
|
new old major minor device number
|
|
atibm: bmouseatixl 10 3
|
|
logibm: bmouselogitec 10 0
|
|
inportbm: bmousems 10 2
|
|
psaux: bmouseps2 or ps2aux 10 1
|
|
The other supported mice are serial mice and therefore connected
|
|
to one of the serial ports (named /dev/ttyS? or /dev/ttyS?? for Linux).
|
|
|
|
For busmice it is sometimes not easy to see which device they are using.
|
|
Simply put all drivers for busmice into the kernel you use and look
|
|
at the startup messages. These will tell you, which busmouse has been
|
|
detected. From these messages you can get the device name.
|
|
|
|
So now procede as in README.Config. If your Monitor is not listed in the
|
|
modeDB.txt file, you should try one of the generic modes. ENSURE THAT
|
|
THE SPECS OF THE MODES ARE WITHIN THE SPECS OF YOUR MONITOR. If you
|
|
want to tune these modes or to compute a mode of your own, you MUST read
|
|
VideoModes.doc and follow the instructions there. Before trying a mode,
|
|
compute the specs of this mode and again look if your monitor does
|
|
support it. Here is no further description of computing VideoModes,
|
|
as you should not do this without having read VideoModes.doc.
|
|
|
|
WARNING: Do NOT EVER share Xconfig files with people who do not have
|
|
EXACTLY the same Configuration (i.e. graphic card AND monitor). By
|
|
doing this you could toast your monitor. It isn't so hard to
|
|
figure out modes (that is, for multisync monitors) and you surely
|
|
shouldn't ever use a mode that you didn't check by yourself to be
|
|
within your monitor's specs. Even if you have exactly the same
|
|
setup you should check all modes yourself before trying
|
|
them. There are many people who run their hardware out of specs
|
|
which may not damage their hardware but could yours.
|
|
|
|
|
|
3.1 Configuring the keyboard for non-US-layout
|
|
|
|
If you do not change the standard settings, the server will start up
|
|
with an US-american keyboard layout regardless which keyboard layout was
|
|
configured for the kernel. If you want to have a different layout, look
|
|
at the xmodmap(1) manpage. There are example Xmodmaps available at
|
|
sunsite.unc.edu:/pub/Linux/X11/misc for several languages and keyboard
|
|
layouts.
|
|
Note that you might need to define a map for several special keys (as
|
|
e. g. Meta, Compose, ..) in the Xconfig file to make complete use of
|
|
these keymaps. For information on the keyboard capabilities of
|
|
XFree86 read the XFree86kbd(1) manpage. Furthermore you should
|
|
|
|
4. tinyX - a XFree86 based package for low memory systems
|
|
|
|
If you have not enough memory to run the stock XFree86 distribution, you
|
|
might try to get this package. It is based on XFree86, so the difficult
|
|
parts of the configuration (setting up the Xconfig file) are
|
|
identical. To run it you need at least 4 MB RAM and another 8 MB swap
|
|
space. There are now several tinyX versions, one for each of the
|
|
different servers supplied by XFree86-2.0. Please read the above
|
|
description of the servers to get the right version of tinyX. These
|
|
packages are named like
|
|
|
|
tinyX-YYY-2.0.tar.gz, where YYY denotes the server name (without
|
|
leading XF86_)
|
|
|
|
You can find tinyX on sunsite.unc.edu in the /pub/Linux/X11 hierarchy.
|
|
Please look in your neighbourhood for a Mirror of it (cf. the BBS-list
|
|
that can be found on most linux sites). You untar it as root from
|
|
/. After this you have to setup a Xconfig file as described in section
|
|
3. The documentation and READMEs for tinyX as well as most of the
|
|
XFree86-2.0 documentation files can be found in /readmes. Read the
|
|
XFree86 documentation files _before_ setting up a Xconfig file as they
|
|
are required for this.
|
|
|
|
The tinyX documentation includes a lot of useful information on memory
|
|
saving techniques. You should follow at least some of these suggestions,
|
|
as running X while swapping constantly is no fun at all :-(. If you are
|
|
running out of memory your system will lock up completely (in many cases
|
|
the only way out is to turn off power or to make a hard reset - both is
|
|
very dangerous for your filesystem). So read these files before starting
|
|
X so that this does not happen.
|
|
|
|
As tinyX does not include all documentation available with XFree86-2.0,
|
|
you might notice that you are pointed to a file that is not included.
|
|
In this case you must get the rest of the documentation files (and
|
|
perhaps the manpages, too) from any XFree86-2.0 site (cf. 2.). If you
|
|
have enough disk space for that, this is highly recommended anyway.
|
|
|
|
Note that XFree86 specific manpages (as the Server manpages,...)
|
|
are not in the *-man-* but in the *-doc* files.
|
|
|
|
|
|
5. X - related packages
|
|
|
|
There are a lot of packages that are related to X. I mention two here,
|
|
because they have a great influence on the look-and-feel of X.
|
|
|
|
- The xview3L5.1.tar.gz package
|
|
|
|
This package is a port of SUN(TM)'s xview3.2 package by Kenneth
|
|
Osterberg to Linux. It includes the xview toolkit, a set of extensions
|
|
to X. It will give you the look-and-feel of the Open Look(TM)
|
|
extension to X (many will know that from Open Windows(TM) from SUN).
|
|
|
|
To install it, untar the tarfile as root in some directory (e.g.
|
|
/usr/src), read the documentation that comes with it (most important
|
|
the README and run the INSTALL script. Note that you need about 25MB
|
|
free disk space to install it completely (with examples). This is
|
|
partly due to the fact, that for some time all files are twice on the
|
|
disk. After running the INSTALL script and removing the xview3L5.1
|
|
directory you will need about 11 MB (including all examples). If you
|
|
do not want to install the examples , you will need about 9 MB. If you
|
|
do not want to compile or program any program that uses xview, you can
|
|
spare another 2.5 MB.
|
|
|
|
For running Xview you will need at least 8 MB of RAM, better 16 MB. To
|
|
run xview with XFree86-2.0 you should get the ld.so package version
|
|
1.3 or newer.
|
|
|
|
- There is a port of Motif(TM) to Linux.
|
|
|
|
This is commercial software, so you will have to pay for it. You can
|
|
find an advertisement from Metrolink (the company that provided the
|
|
port to Linux) on tsx-11:/pub/linux/advertisements.
|
|
|
|
These packages provide different window managers than the standard twm
|
|
that comes with XFree86. There are several further window managers that
|
|
you can find on sunsite:/pub/Linux/X11/Window-managers. All these use
|
|
different setups, so you have to read the documentation on the window
|
|
managers to set them up correctly.
|
|
|
|
There are a lot of programs available for X. Look through the
|
|
/pub/Linux/X11 hierarchy at sunsite.unc.edu or at the usr.X11
|
|
directories of /pub/linux/binaries and /pub/linux/sources at
|
|
tsx-11.mit.edu for many of them.
|
|
|
|
|
|
6. Compiling Programs that use X
|
|
|
|
If you have the source code for a program that uses X11, usually it will
|
|
be shipped with an Imakefile instead of a Makefile. What to do now?
|
|
|
|
Run "xmkmf" in the directory that containes the Imakefile. If there is a
|
|
hierarchy of directories with Imakefiles, you usually only have to run
|
|
xmkmf in the root directory of that hierachy. You can configure the rest
|
|
by typing make Makefiles. This will build the Makefiles in all
|
|
directories in the hierachy. Then you should run "make depend". Don't be
|
|
afraid if include files like stddef.h, varargs.h, ... are not found,
|
|
they are gcc proprietary header files and therefore not in the standard
|
|
include directories (the Imakefiles use makedepend, not gcc -M). After
|
|
that you can make the program by running make and you can install it
|
|
(usually in /usr/X386/bin) by running "make install", installing of the
|
|
manpages is done by running make "install.man". Of course, before even
|
|
making xmkmf, you should have read the documentation that comes usually
|
|
with such packages.
|
|
|
|
|
|
7. Programming in X
|
|
|
|
If you want to write programs that use the X Window System, you should
|
|
get some books on the X Window System. Most Subroutines provided by X
|
|
are documented in a manpage (residing in /usr/X386/man/man3), but these
|
|
will not provide enough information on programming in X if you do not
|
|
know some generals about X.
|
|
|
|
There is a rather complete series on X by O'Reilly, called "The
|
|
definitive Guides to the X Window System", consisting of many volumes
|
|
(you will probably not need all of them). For more information check out
|
|
the O'Reilly and Associates Catalog from anonymous FTP on ftp.ora.com.
|
|
I suggest reading Volume 1, "Xlib Programming Manual", and Volume 4, "X
|
|
Toolkit Intrinsics Programming Manual", if you are serious about writing
|
|
X apps. As it turns out Xt (volume 4) is used for most X applications,
|
|
and you only need low-level Xlib stuff (volume 1) for certain things.
|
|
|
|
8. Finding information on X on the net.
|
|
|
|
For general X questions you should read the FAQ and the Xt-FAQ from the
|
|
comp.windows.x newsgroup (you can achieve them
|
|
from ftp.x.org in the directory /contrib or
|
|
from rtfm.mit.edu in /pub/usenet_by_hierarchy/comp/windows/x
|
|
by anonymous ftp).
|
|
This is the newsgroup for general X questions.
|
|
|
|
If you have questions on the XFree86 package and cannot find an answer
|
|
in the documentation files (XFree86, Xconfig, XF86_* manpages or the
|
|
README files in /usr/X386/lib/X11/etc) you may want to post a question
|
|
to a newsgroup. The appropriate newsgroup for that purpose is
|
|
comp.windows.x.i386unix, as this newsgroup is dedicated to the XFree86
|
|
system. If you have a problem with the server and want to post a
|
|
question to this newsgroup, you should provide enough information for
|
|
those that want to help you. It is no good idea telling: XFree86 is not
|
|
working, what do I have to do? Here some things that should be included
|
|
in all postings that are concerned with server problems:
|
|
|
|
- which Operating System and which release of it are you running
|
|
- which hardware do you have (at least bus type (ISA/EISA/VLB), graphic
|
|
card (including chipset, video RAM type (D/VRAM), size and speed))
|
|
- a concise decription of the problem
|
|
- a printout of the server startup (you can generate that by
|
|
redirecting the stderr output)
|
|
- the used parts of the Xconfig (It is NOT a good idea to include all
|
|
lines commented out by a leading #, as this then will be the largest
|
|
part of your post and most people will already know the copyright
|
|
statements :-)
|
|
|
|
Furthermore you should say what steps of trouble-shooting you already
|
|
did (there are some mentioned in the XFree86 documentation files and in
|
|
the Appendix).
|
|
|
|
There are some other newsgroups that cover X related topics:
|
|
comp.windows.x.apps - for X applications
|
|
comp.windows.x.intrinsics - for X intrinsic
|
|
comp.windows.x.motif - for the Motif(TM) extension to X
|
|
comp.windows.open-look - for OpenLook(TM) and the xview extensions to X
|
|
|
|
Note that some of these groups have FAQ lists that are posted regularly
|
|
to the groups. As always with regular postings these can be obtained
|
|
from rtfm.mit.edu via anonymous ftp.
|
|
|
|
Please do not post X related questions to _any_ newsgroup of the
|
|
comp.os.linux.* hierarchy. You will get better answers to your questions
|
|
in those newsgroups dedicated to those questions, as nearly all those
|
|
questions are not linux-specific.
|
|
|
|
Appendix: Some Questions & Answers
|
|
|
|
Q: I started X by running 'X'. I get the stippled background, but no window
|
|
at all. What am I doing wrong?
|
|
A: Running X starts only the server, no window-manager and no applications.
|
|
The usual way to start X is running 'startx'.
|
|
|
|
Q: I used XS3 up to now, what changed in XFree86-2.0
|
|
A: The most important things that changed, are described in the README.XS3
|
|
file coming with XFree86-2.0.
|
|
|
|
Q: Is there support for 16-bit or 24-bit colour modes?
|
|
A: No, there is only support for 1-bit, 4-bit and 8-bit colour in the moment.
|
|
The 4-bit server is in addition in an experimental stage, so there
|
|
are bugs and problems using it. Most of the known problems are
|
|
mentioned in the manpage.
|
|
|
|
Q: I have a Logitech serial mouse but it does not work with the Logitech
|
|
keyword.
|
|
A: The Logitech keyword is for older Logitech serial mice, more recent
|
|
Logitech serial mice use the MouseMan or MicroSoft keyword.
|
|
Logitech serial mice plugged into a ps/2 port use the ps/2 keyword.
|
|
|
|
Q: My server is unable to find some of the fonts.
|
|
A: First check that the directories in the font path in
|
|
/usr/X386/lib/X11/Xconfig are named correctly and contain fonts. If that
|
|
is the case, running mkfontdir in all of those directories may help you.
|
|
|
|
Q: I have the problem that the fonts are not restored correctly after
|
|
leaving X. My screen looks totally garbled.
|
|
A: This is not yet completely resolved. There are utilities called
|
|
runx , restoretext,... coming with svgalib (sunsite:/pub/Linux/libs)
|
|
that help sometimes.
|
|
|
|
Q: I had a normal SVGA card up to now with 1 MB of video RAM. With it
|
|
I could do a virtual resolution of 1152x900 or 1024x1024. Why does
|
|
it not work on my new s3 card?
|
|
A: All but the most recent revisions of the s3 chips cannot use a line
|
|
length of 1152, so a length of 1280 is used for this resolution.
|
|
Furthermore the s3 server needs 1k for the cursor, so a virtual
|
|
resolution using 1MB will not work.
|
|
NOTE, that you will need some memory on the graphics card for font
|
|
and pixmap caching if you want to get maximum performance from your
|
|
graphic card. So the memory is NOT wasted, but will get you a great
|
|
performance boost. Try running some font or pixmap specific
|
|
mode of x11perf with maximal allowed virtual resolution (e.g.
|
|
1024x1023) and with 1024x768 and compare the results!
|
|
Recommended resolutions are 1024x768 and 1152x800 for 1MB cards.
|
|
The latter resolution leaves not too much memory to the font cache,
|
|
so you will have a performance loss using large fonts.
|
|
For normal use with fonts <= 18 points it should be OK, though.
|
|
|
|
Q: I have a s3 card and it does not work properly. The screen gets
|
|
distorted when dragging windows and it frequently locks up.
|
|
A: First try to use options nomemaccess or nolinear. If both does not help
|
|
and you have a s3 928, try specifying chipset s3_generic in your
|
|
Xconfig. If nothing helps, it might be a incompatibility
|
|
problem between your graphic card and your motherboard. Try to see if the
|
|
card works in a different system, if you can get your hands.
|
|
|
|
Q: I have a s3 Localbus card and the server cannot find a high memory
|
|
area. Then it disables direct memory access. What should i do?
|
|
A: There are some strange problems with Localbus cards. It is being worked
|
|
upon. Put option "nolinear" _and_ option "memaccess" into your Xconfig
|
|
file. This will enable to use the 64k aperture that is supported
|
|
even for ISA cards. This will furthermore prevent the following problem:
|
|
Due to a bug in the linear frame buffer code, the s3 processor is
|
|
not reset correctly, once a large (i.e. >= 1024k) linear frame buffer
|
|
is found. Thus the server will not work after that if it fails to
|
|
find the high memory area until a hard reset is sent to the chip (i.e.
|
|
even a normal reboot will not reset the system).
|
|
|
|
Q: I have a WD90C3x based graphic card. XFree86 seems not to probe the
|
|
clocks correctly. What can I do?
|
|
A: Yup, there is a bug in the clock probing code in XFree86-2.0. It is
|
|
not in XFree86-1.3. So run the XF86_SVGA server from 1.3 just to probe
|
|
the clocks and put the probed clocks into your Xconfig file. After that
|
|
the XF86_SVGA server from 2.0 will get the right clocks. The XFree86-1.3
|
|
package can still be found on tsx-11 and sunsite.
|
|
|
|
Q: I have a Diamond Viper card. Why does it not work?
|
|
A: In addition to being a Diamond product, this card is based on the
|
|
P9000 chip by Weitek. This chip is not yet supported by XFree86, so
|
|
you have only a chance to get it working with one of the generic
|
|
servers (i.e. Mono or VGA16). You will have nevertheless the clock
|
|
setting problem that prevents the other diamond cards from working.
|
|
|
|
Q: I have a card with the Compaq AVGA chip. It does not work.
|
|
A: Yes, the AVGA support seems to be completely broken in 2.0. Please
|
|
get the SVGA server from the XFree86-1.3 distribution. This should
|
|
work.
|
|
|
|
Q: Are there some notes on tuning the performance of my X system?
|
|
A: Yes there are. They are posted monthly to the comp.windows.x
|
|
newsgroup and can also be found on rtfm.mit.edu in the
|
|
appropriate subdirectory.
|
|
|
|
Q: I want to reconfigure my XF86_S3 or XF86_VGA16 server using the LinkKit.
|
|
After editing sited.def and running mkmf, make will not work.
|
|
A: There is a little bug in the Imakefile for the LinkKit. You can either
|
|
change the line 326 in the Imakefile from
|
|
#if XF86SVGAServer || XF86MonoServer
|
|
to
|
|
#if XF86SVGAServer || XF86MonoServer || XF86VGA16Server || XF86S3Server
|
|
or you can configure the XF86_Mono or XF86_SVGA server additionally for
|
|
building. Then all will work.
|
|
|
|
Q: I have a SPEA/Video 7 Mercury card. It is 928 based but I cannot
|
|
get it working correctly.
|
|
A: The Mercury uses a clock chip that is not yet supported by XFree86.
|
|
So you cannot use it at the moment. This will (probably) be solved in
|
|
the next XFree86 release.
|
|
|
|
Q: I have a busmouse and am running selection. The server has problems with
|
|
recognizing the mouse.
|
|
A: Selection has some problems with busmice. XFree86 cannot open the mouse
|
|
device if selection is running on it. So kill selection before staring
|
|
XFree86.
|
|
|
|
Q: The server dies with the message "Cannot find a free VT".
|
|
A: XFree86 needs a free VT to run on. So if you have put a getty process on
|
|
every virtual console in you /etc/inittab, XFree86 will not be able
|
|
to start. I suggest to let /dev/tty8 (for kernel messages) and /dev/tty7
|
|
(for XFree86) free of a getty process.
|
|
|
|
Q: Why is the XF86_Mono server not working with my hercules card, I
|
|
thought this card was supported?
|
|
A: The hercules driver (as well as the BDM2 driver) is not part of
|
|
XF86_Mono by default. Get the LinkKit and you can include it.
|
|
You will need about 4 MB free disk space and about 5 minutes for
|
|
building the server (on a 486/30).
|
|
No version of XFree86 up to at least 2.0 properly sets a Hercules
|
|
mono display when switching to text mode (such as when you switch
|
|
VTs or exit from XFree86). You will therefore also want to make a
|
|
small change to the Linux kernel to work around this problem. If
|
|
you have a kernel version 0.99.15 or later, you can edit the file
|
|
"console.c" in the kernel source directory "linux/drivers/char/"
|
|
by adding the line:
|
|
#define CONFIG_HGA
|
|
near the top of the file. Alternatively, you can add the line:
|
|
bool 'Hercules monochrome display support' CONFIG_HGA y
|
|
to "linux/config.in" (then do a 'make config'). Re-make the kernel,
|
|
install it, and re-boot.
|
|
This change to the kernel ensures that the Hercules display is always
|
|
in text mode immediately after a VT switch. This feature is worth
|
|
having, even if future versions of XFree86 do not have the text-mode
|
|
switching problem.
|
|
|
|
Q: I cannot get a working 1280x1024 interlaced mode on my S3 card.
|
|
A: Yes, that's true. It does not work in the moment. Read README.late
|
|
to fix it.
|
|
|
|
Q: I have severe problems with getting a mode on my new (805 rev. D or
|
|
928 rev. E) S3 graphic card with pixel clocks higher than 65MHz.
|
|
A: There seems to be a problem with some undocumented S3 registers
|
|
that come with these new chips. It is worked upon and should be
|
|
fixed in the next release.
|
|
|
|
Q: When will be the next XFree86 release?
|
|
A: This cannot be said at the moment. If a new version is released,
|
|
you will hear early enough of it.
|
|
|
|
Q: The server tells me that I cannot use a higher clock frequency
|
|
than 80 MHZ (ATI Mach32) or 85MHz (S3 928). The docs of the card tell me
|
|
that it is possible to do far more.
|
|
A: This comes from problems with the RAMDAC code that does not support
|
|
some RAMDACs completely yet. These are the RAMDACs for the ATI Mach32
|
|
cards and the Bt485 and its clones for S3 cards. Therefore the pixel
|
|
clock gets restricted to sane settings. This will be fixed in the next
|
|
release.
|
|
There are other High-End RAMDACs that suffer from the same restriction.
|
|
In general you should not use any clock higher than 85MHz if your
|
|
RAMDAC can handle pixel clocks higher than 110MHz.
|
|
|
|
There are a lot strange phenomena reported that cannot be handeled here.
|
|
If your card has a switch for bus waitstates, it helps in many cases
|
|
to put this to the 1WS setting. You should also look at the remarks
|
|
above on setting some BIOS values. As many reports (especially on BIOS
|
|
setting) are contradicting, you should try several settings.
|
|
|
|
------------------------- Copying conditions ---------------------------------
|
|
|
|
Copyright Helmut Geyer 1994
|
|
|
|
A verbatim copy of the XFree86-HOWTO may be reproduced and distributed in
|
|
any medium physical or electronic without permission of the author.
|
|
Translations works are similarly permitted without express permission if it
|
|
includes a notice on who translated it. Commercial redistribution is allowed
|
|
and encouraged; however, the author would like to be notified of any such
|
|
distributions.
|
|
|
|
Short quotes may be used without prior consent by the author. Derivative work
|
|
and partial distributions of this HOWTO have to either include a verbatim
|
|
copy of this file or make a verbatim copy of this file available. If the
|
|
latter is the case, a pointer to the verbatim copy must be stated at a
|
|
clearly visible place. If you want to do either of the last possibilities,
|
|
you should contact the author.
|
|
|
|
In short, we wish to promote dissemination of this information through as
|
|
many channels as possible. However, we do wish to retain copyright on the
|
|
HOWTO documents, and would like to be notified of any plans to redistribute
|
|
the HOWTOs. We further want that ALL information provided in the HOWTOs is
|
|
disseminated. If you have questions, please contact Matt Welsh, the Linux
|
|
HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
|
|
|
|
--------------- Trademarks -------------------
|
|
|
|
XFree86 is a trademark of The XFree86 Project, Inc.
|
|
Motif is a trademark of the Open Software Foundation.
|
|
SUN and Open Windows is a trademark od SUN Microsystems.
|
|
Open Look is a trademark of AT&T.
|
|
|
|
------------------------------------------------------------------------------
|
|
Helmut Geyer geyer@kalliope.iwr.uni-heidelberg.de
|
|
|
|
|
|
|