This section gives a short introduction on how to set up a XFree86
system on your computer. The most important (and most difficult) part
is setting up a Xconfig file. If you have XFree86 2.1.1 and your
graphic card is in the data base, you should use ConfigXF86 to do
this. It is comfortable and safe that way. You can use ConfigXF86 for
many things even if your card and monitor are not known to the
program. Please use it if you have XFree86 2.1.1.
To be able to set up a Xconfig file, you need to read the following
files that reside in /usr/X386/lib/X11/etc:
README, README.Config, VideoModes.doc, and
README.Linux.
Furthermore you need to read the following manpages: Xconfig,
XFree86, XFree86kbd, and that of the server you are going to
use. This section will try to give you an approach to these files as
well as making some of the statements in those more understandable for
the unexperienced user.
The Xconfig file can be located in several places:
/usr/X386/lib/X11. This is the standard location for
the sample Xconfig file, but is in some cases not possible to use
(e.g. a read-only /usr partition)./etc.Xconfig.hostname in /usr/X386/lib/X11./etc/X11. This has several causes, but you should never edit
that file. The XFree86 servers will not expect a Xconfig file at
this location, so
there has to be a link from one of the above places to this location.
Find this link first and access the file using the link. This way you
can be sure your changes will take effect.
To give you some hints, here is a list of what you need to set up
the Xconfig file correctly:
SuperProbe program that comes with
XFree86. It will identify your chipset and you can look at the table
above [cf.
Supported Hardware
],
which server supports this
chipset. Note that SuperProbe can detect far more hardware than
XFree86 supports./usr/X386/lib/X11/etc/README.Config.
This will be done automagically by ConfigXF86. Note that if you
have a programmable clock generator, you have to look in the Xconfig
manpage, whether it is supported. A programmable clock cannot be
detected properly.ps/2 protocol, not the Microsoft protocol). See
The easy sections
for more information.README.Config that is located in
/usr/X386/lib/X11/etc and follow the instructions there to the
point. Especially the caveats that can be found int this file
must be obeyed, otherwise you might damage your hardware.
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.
From XFree86 2.1.1 on there is a great tool available for XFree86,
called ConfigXF86. It was written by Stephen Zwaska, comments and new
database entries should be sent to him (stz@netcom.com). This
utility will give you an easy interface to the database of tested
graphic cards and monitors and it gives you some tools to configure
your Xconfig file correctly. The documentation for ConfigXF86 is
located in /usr/X386/lib/X11/ConfigXF86. Please read this
first, it will help you to run this program. This documentation is
provided in several formats. A text version (ConfigXF86.txt) can
be read online, a PostScript version (ConfigXF86.PS) can be
printed if a PostScript printer is available. ConfigXF86 can be
obtained from sunsite in the directory
/pub/linux/packages/X11/ConfigXF86.
After having read the documentation, start ConfigXF86 as root.
The program cannot be run while a X server is running on the system,
so run ConfigXF86 (and if needed MakeCard) from the console.
You should be able to answer all questions. The program will probe
your system and will (at least partly) recognize the setup. If both
your graphic card and monitor are supported, you should not have any
problems. The only thing you should do is test the video modes and (perhaps)
try to make minor changes to the video modes to suit your monitor
better [cf.
Setting up video modes
].
This utility is very new, so there might be bugs (very probably there are). If you encounter any problems, please report them.
If your card is not supported, try to make a card database file using
the MakeCard program that can be found in
/usr/X386/lib/X11/ConfigXF86. Please read the next two
sections before running it as it may help you with some questions.
Having done that you can run ConfigXF86 and choose the datafile you
just generated.
Don't forget to send the card data file and the monitor data files to
stz@netcom.com so that
other people may benefit from your achievements.
The XFree86 servers parse the Xconfig file in case-insensitive
mode, so you need not woory about Capitalization.
There is no reason to fiddle with the standard paths as provided in
the sample Xconfig file (any distribution that provides a different
path structure should have edited this section of the
Xconfig.sample or the template Xconfig file for ConfigXF86).
The only thing that could be interesting is the use of a fontserver.
Look at the Xconfig manpage if you want use one, anything you
need to know is shown there.
ConfigXF86 will prompt you whether you want to use a fontserver.
This is fairly easy. You should set the ServerNumlock option, but
otherwise only those keyboard modifications that are needed for
international keyboard support should be needed to set [cf.
International keyboard layout
].
So this section should look like:
keyboard
servernumlock
RightAlt ModeShift
The keyword for the mouse section is the
name for the protocol the mouse uses. The available protocol names are
listed in the Xconfig manpage. Some remarks on the mouse keywords:
The Logitech[TM] serial mice use several keywords:
The MouseMan[TM] uses the MouseMan keyword and more recent Logitech
serial mice use the Microsoft keyword. Older Logitech serial mice
use the Logitech keyword.
Any mouse connected to the ps/2 port uses the ps/2 keyword
(even if it is in fact a serial mouse).
As there is some confusion on the
Linux mouse devicenames, here is a list. The standard names confer to
the names as of MAKEDEV 1.2. If you are not sure, which kind of
busmouse you have, look at the startup messages of the kernel. It will
identify the busmouse type. You should make sure that the kernel
busmouse driver is using the same IRQ as the busmouse. If this is not
the case, you have to change this (either on the mouse board or in
the kernel). The IRQ for busmouse devices is given in
/usr/src/linux/include/linux/busmouse.h. The macro
MOUSE_IRQ contains this IRQ. It is set to 5 by default.
There are still distributions around that use old or different device
names than those of /dev/atibm for the ATI XL busmouse (Note: the ATI
GU busmouse is a Logitech or Microsoft busmouse depending on the
version you got)./dev/logibm for the Logitech busmouse (Note: this
uses the Busmouse protocol, not the Logitech protocol)./dev/inportbm for the Microsoft[TM] busmouse (Note: this
uses the Busmouse protocol, not the Microsoft protocol)./dev/psaux for a ps/2 or quickport mouse (uses the
ps/2 protocol)./dev/ttyS? or
/dev/ttyS?? for Linux).MAKEDEV. A list of the major and minor
numbers for the mouse devices can be found in the/dev/MAKEDEV
script. If it is missing you can find it on sunsite in the
/pub/Linux/system/Admin directory [cf
Where do I get XFree86
].
If you have a two-button mouse, you might want to emulate the third
button (emulated by pressing both buttons simultaneously) by setting
Emulate3Buttons in the mouse section. There are quite a lot of
other settings available that are usually not needed. Look at the
Xconfig manpage for a list of available settings.
You should be able to set up this section by using the ConfigXF86
program. If your graphic card is not part of the database, run
MakeCard to build a new data file for your card. Many important things
are probed by MakeCard, but you may need or want to set additional
options. These options are described in the manpage of the server you
want to use (MakeCard will suggest the right one) and in
README.Config. After running MakeCard, run ConfigXF86
to set up the Xconfig file.
If you do not have the ConfigXF86 package, you should follow the
instructions in README.Config to get everything right.
This is the hardest part. Please read VideoModes.doc before doing
anything here. If you are using ConfigXF86 (which is strongly
recommended), and your monitor is not in the database, you should
choose the generic modes and start making own modes from there.
If you do not have ConfigXF86, a tutorial on building modes can be
found in the README.Config and VideoModes.doc files.
ConfigXF86 includes a very neat utility to tune video modes. As
there is no check on the fitness of a mode, you have to check the
mode data against your monitor's specifications before testing the
mode. The first line of the screen for tuning modes gives you
information on the specifications of the mode. You have to check
always that these values are within you monitor's capabilities
before testing that mode.
From version 2.1 on the XFree86 servers are able to read the keytable
from the Linux kernel. So you need to set up only
one keyboard layout file (that for the kernel). There are some
restrictions, though (the kernel can support more keyboard functions
than X11). X11 can only use 4 keytables (i.e. only one modifier is
allowed, called ModeShift).
This can be configured using the ModeShift line in the
Xconfig file. Configurable keys for the ModeShift modifier are
LeftAlt, RightAlt (=AltGr), RightCtl, and ScrollLock.
By default the ModeShift modifier is not used.
Usually the AltGr key is used for national keyboard
modifications. To enable the XFree86 server to read the AltGr keytable
from the kernel, you should put
RightAlt "ModeShift"into the keyboard section of the
Xconfig file.
Besides supporting only one additional keymap X11 cannot use 'dead' keys. A key is called 'dead', if it will not print a character when it is typed but only after a second character is typed. Depending on the following character, the second character is modified by the 'dead' character or two characters will be printed. A typical example are accent keys. Such keys are not supported by X11. So you need to replace all dead keysymbols non-dead equivalents. Here is a list, what you have to change:
dead non-dead
dead_tilde asciitilde
dead_grave grave
dead_circumflex asciicircum
dead_acute apostrophe
dead_diaeresis diaeresis
Instead of supporting dead keys XFree86 supports a Compose key. This
feature is described in the XFree86kbd manpage and can be
modified by assigning the Compose function to one of the keys
mentioned above. By default the ScrollLock key has the
Compose function.
If you still want to have the 'dead' keys on the console, you will
have to use a xmodmap file to map the keys to the right symbols under
X. This is also the method that must be used with earlier versions of
XFree86. On sunsite in the directory /pub/Linux/X11/misc
example xmodmap files for several languages can be found. Note that you
have to set the ModeShift modifier nevertheless to get the right
keytable working.
Please read the kbd.FAQ that comes with the kbd package for
Linux. You will find many hints on modifying your keyboard layout on
the console as well as for X.
To use X, you need a startup file that calls the local modifications,
the window manager and some application you want to have right after
X has started. If you are using startx (or runx) to start X, this
startup file is called 'xinitrc'. There is a standard xinitrc
file, /usr/lib/X11/xinit/xinitrc
/etc/X11/xinit/xinitrc in order to allow
a read-only mounted /usr partition. So you should look at that
location first..xinitrc in your home
directory. After copying the file, you can edit it. Look at the
manpages for startx and xinit for more information.
Note that both the .xinitrc and the .Xresources file
must be readable and executable, so run chmod u+rx .xinitrc
and chmod u+rx .Xresources after editing them.
Sometimes you won't be content with default settings for several
applications which often don't have a configruration file of their
own. You can change some of these defaults by setting X resources
in the .Xresources file in your home directory. Note that you
should know what effects the setting of the resources has to the
programs you use. Read the manpages for the program and for
xrdb before fiddling with the Xresources file. This section is not
needed to set up working X environment, but to customize a working
one.
A resource file looks like an application default file (with the
difference that in the resoucre file resources for several
applications are set, you should use the full names
(Progname.Resourcename) instead of abbreviating the program name by an
asterisk.
Examples of application default files can be found in the
/usr/X386/lib/X11/app-defaults directory.
Which resources are available for a single application is usually
shown in the manpage of the application.
If you are running a colour server, you might want to put
#ifdef COLOR
*customization: -color
#endif
into your .Xresources file if some programs start up b&w and
not colourful. If the upper change is made (it definetly should be in
the system Xresources file, so you might hint that to the distribution
maintainer), a program foo will read both the Foo and the
Foo-color application default file from
/usr/X386/lib/X11/app-defaults, not just the first which is
the usual behaviour. If you want to run X on your system all the time, you could run xdm
from the system startup. xdm is preconfigured on most systems, so
you should not have to edit any of the xdm configuration files.
Usually a runlevel is attached to a X-only system (look into
/etc/inittab), all you have to do to get it working is
changing the default runlevel. On systems that use an init
without runlevels (run man init to see, whether or not), you
should look into the /etc/rc and /etc/rc.local
files, you usually only have to remove comment signs at the beginning
of a line that calls xdm. If no such line is present, you
probably have a system that has no preconfigured xdm. Look at the
manpages to see what has to be done (and complain to the distribution
maintainer, if the distribution contains
XFree86). If you install XFree86 on top of a distribution that is not
providing X support, you should get enough information from the
manpages. Help is also available from the X Faq, look at section
Finding Information
where to get this.
xdm runs by default the .xinitrc [cf
The .xinitrc file
]and the .Xresources [cf
The personal X resource file
] files, so look
at the sections above.
Window managers are a very local issue. There are quite a lot window
managers available [cf.
X related packages
]. Configuration
of one windowmanager is quite different from that of another. You
should look at your .xinitrc file or the system xinitrc
[cf
The .xinitrc file
]
file, which window manager is used (hint: most window managers have a
wm ending) and look at its manpage. Configuration is usually
explained there.
The most common used window managers for Linux are:
twm (part of the XFree86 distribution), fvwm (this seems to
be the most popular), olwm or
olvwm (from the Xview[TM] package), or mwm (part of Motif[TM]).
Once you have set up a Xconfig file, you probably want to run X.
This is not done by running X, but by running startx.
When running it for the first time run startx 2>1
> Xstartup.log
csh users this should read startx >& Xstartup.log .
If you encounter any problems, please look at the Appendix
Some Questions and Answers
and at the XFree86 documentation files in
/usr/X386/lib/X11/etc. These files provide a lot of
information on what to do if problems occur. If you still cannot solve
the problems, procede as in Section
Finding Information
. The FAQs that are
mentioned there provide help on many problems you have with X, so you
should get these and read them, too.
You should make sure that the PATH and MANPATH (or path
and manpath for csh derivates) variables are set correctly.
Next Chapter, Previous Chapter
Table of contents of this chapter, General table of contents
Top of the document, Beginning of this Chapter