10.1 Manually Configuring the X Window System
By default, the X Window System is configured with the SaX2 interface,
described in Section 2.2,
Setting Up Graphics Card and Monitor, (↑ Start-Up ). Alternatively it can be
configured manually by editing the its configuration files.
WARNING: Faulty X Configurations can Damage Your Hardware
Be very careful when configuring your X Window System. Never start the X
Window System until the configuration is finished. A misconfigured system
can cause irreparable damage to your hardware (this applies especially to
fixed-frequency monitors). The creators of this book and openSUSE
cannot be held responsible for any resulting damage. This information has
been carefully researched, but this does not guarantee that all methods
presented here are correct and cannot damage your hardware.
The command sax2 creates the
/etc/X11/xorg.conf file. This is the primary
configuration file of the X Window System. Find
all the settings here concerning your graphics card, mouse, and monitor.
IMPORTANT: Using X -configure
Use X -configure to configure your X setup if previous
tries with openSUSE's SaX2 have failed. If your setup involves
proprietary binary-only drivers, X -configure cannot
The following sections describe the structure of the configuration file
/etc/X11/xorg.conf. It consists of several sections,
each one dealing with a certain aspect of the configuration. Each section
starts with the keyword Section
<designation> and ends with
EndSection. The following convention applies to
The section types available are listed in
Table 10-1 Sections in /etc/X11/xorg.conf
The paths used for fonts and the RGB color table.
General switches for the server behavior.
A list of modules the server should load
Input devices, like keyboards and special input devices (touchpads,
joysticks, etc.), are configured in this section. Important
parameters in this section are Driver and
the options defining the Protocol and
Device. You normally have one
InputDevice section per device attached to
The monitor used. Important elements of this section are the
Identifier, which is referred to later in
the Screen definition, the refresh rate
VertRefresh, and the synchronization
frequency limits (HorizSync and
VertRefresh). Settings are given in MHz,
kHz, and Hz. Normally, the server refuses any modeline that does not
correspond with the specification of the monitor. This prevents too
high frequencies from being sent to the monitor by accident.
The modeline parameters for the specific screen resolutions. These
parameters can be calculated by SaX2 on the basis of the values
given by the user and normally do not need to be changed. Intervene
manually at this point if, for example, you want to connect a fixed
frequency monitor. Find details of the meaning of individual number
values in the HOWTO files in
(available in the howtoenh package). To
calculate VESA modes manually, you can use the tool
cvt. For example, to calculate a modeline for a
[email protected] monitor, use the command cvt 1680 1050
A specific graphics card. It is referenced by its descriptive name.
The options available in this section strongly depend on the driver
used. For example, if you use the i810 driver,
find more information about the available options in the manual page
man 4 i810.
Combines a Monitor and a
Device to form all the necessary settings
for X.Org. In the Display subsection,
specify the size of the virtual screen
ViewPort, and the
Modes used with this screen.
Note that some drivers demand that all of the used configurations
must be present in the Display section at
some place. For example, if you use a laptop and want to use an
external monitor that is bigger than the internal LCD, it might be
necessary to add a bigger resolution than supported by the internal
LCD at the end of the Modes line.
The layout of a single or multihead configuration. This section binds
the input devices InputDevice and the
display devices Screen.
Provides information for the Direct Rendering Infrastructure (DRI).
Monitor, Device, and
Screen are explained in more detail. Further
information about the other sections can be found in the manual pages of
X.Org and xorg.conf.
There can be several different Monitor and
Device sections in
xorg.conf. Even multiple
Screen sections are possible. The
ServerLayout section determines which of these
sections is used.
10.1.1 Screen Section
The screen section combines a monitor with a device section and
determines the resolution and color depth to use. A screen section might
resemble Example 10-1.
Section determines the section type, in this case
DefaultDepth determines the color depth to use by
default unless another color depth is explicitly specified.
For each color depth, different Display subsections
Depth determines the color depth to be used with
this set of Display settings. Possible values are
8, 15, 16,
24, and 32, though not all of
these might be supported by all X server modules or resolutions.
The Modes section comprises a list of possible
screen resolutions. The list is checked by the X server from left to
right. For each resolution, the X server searches for a suitable
Modeline in the Modes
section. The Modeline depends on the
capability of both the monitor and the graphics card. The
Monitor settings determine the resulting
The first resolution found is the Default
Ctrl+Alt++ (on the number pad), switch to the next
resolution in the list to the right. With
Ctrl+Alt+– (on the number pad), switch to the
previous. This enables you to vary the resolution while X is running.
The last line of the Display subsection with
Depth 16 refers to the size of the virtual
screen. The maximum possible size of a virtual screen depends on the
amount of memory installed on the graphics card and the desired color
depth, not on the maximum resolution of the monitor. If you omit this
line, the virtual resolution is just the physical resolution. Because
modern graphics cards have a large amount of video memory, you can
create very large virtual desktops. However, you may no longer be able
to use 3D functionality if you fill most of the video memory with a
virtual desktop. If, for example, the card has 16 MB of video RAM, the
virtual screen can take up to 4096x4096 pixels in size at 8-bit color
depth. Especially for accelerated cards, however, it is not recommended
to use all your memory for the virtual screen, because the card's
memory is also used for several font and graphics caches.
The Identifier line (here
Screen) gives this section a defined name
with which it can be uniquely referenced in the following
ServerLayout section. The lines
Device and Monitor
specify the graphics card and the monitor that belong to this
definition. These are just links to the Device
and Monitor sections with their corresponding
names or identifiers. These sections are discussed
in detail below.
10.1.2 Device Section
A device section describes a specific graphics card. You can have as many
device entries in xorg.conf as you like, provided
their names are differentiated using the keyword
Identifier. If you have more than one graphics
card installed, the sections are simply numbered in order. The first one
is called Device, the second one
Device, and so on. The following file shows
an excerpt from the Device section of a computer
with a Matrox Millennium PCI graphics card (as configured by SaX2):
The BusID refers to the PCI or AGP slot in
which the graphics card is installed. This matches the ID displayed by
the command lspci. The X server needs details in
decimal form, but lspci displays these in
hexadecimal form. The value of BusID is
automatically detected by SaX2.
The value of Driver is automatically set by
SaX2 and specifies which driver to use for your graphics card. If the
card is a Matrox Millennium, the driver module is called
mga. The X server then searches through the
ModulePath defined in the
Files section in the
drivers subdirectory. In a standard installation,
this is the /usr/lib/xorg/modules/drivers
directory or the /usr/lib64/xorg/modules/drivers
directory for 64-Bit operating systems directory.
_drv.o is added to the name, so, in the case of
the mga driver, the driver file
mga_drv.o is loaded.
The behavior of the X server or of the driver can also be influenced
through additional options. An example of this is the option
sw_cursor, which is set in the device section.
This deactivates the hardware mouse cursor and depicts the mouse cursor
using software. Depending on the driver module, there are various options
available, which can be found in the description files of the driver
modules in the directory
. Generally valid options can also be found in the manual
pages (man xorg.conf,
man 4 <driver
man 4 chips).
If the graphics card has multiple video connectors, it is possible to
configure the different devices of this single card as one single view.
Use SaX2 to set up your graphics interface this way.
10.1.3 Monitor and Modes Section
Like the Device sections, the
Monitor and Modes
sections describe one monitor each. The configuration file
/etc/X11/xorg.conf can contain as many
Monitor sections as desired. Each
Monitor section references a
Modes section with the line
UseModes if available. If no
Modes section is available for the
Monitor section, the X server calculates
appropriate values from the general synchronization values. The server
layout section specifies which Monitor section
Monitor definitions should only be set by experienced users. The
modelines are an important part of the Monitor
sections. Modelines set horizontal and vertical timings for the
respective resolution. The monitor properties, especially the allowed
frequencies, are stored in the Monitor section.
Standard VESA modes can be generated with the utility
cvt. For more information read the manual page of cvt
Unless you have in-depth knowledge of monitor and graphics card
functions, do not change the modelines, because this could severely
damage your monitor.
Those who try to develop their own monitor descriptions should be very
familiar with the documentation in
/usr/share/X11/doc. Install the package
xorg-x11-doc to find PDFs and HTML pages.
Manual specification of modelines is rarely required today. If you are
using a modern multisync monitor, the allowed frequencies and optimal
resolutions can, as a rule, be read directly from the monitor by the X
server via DDC, as described in the SaX2 configuration section. If this
is not possible for some reason, use one of the VESA modes included in
the X server. This will work with most graphics card and monitor