X Window System Problems

By default, the X Window System does not need a configuration file anymore. It is autodetected during startup. Only in case of problems should you proceed and setup and edit 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 work.

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 all sections:

Section "designation"
  entry 1
  entry 2
  entry n
EndSection 

The section types available are listed in Table 9.4, “Sections in /etc/X11/xorg.conf”.

Table 9.4. Sections in /etc/X11/xorg.conf

Type

Meaning

Files

The paths used for fonts and the RGB color table.

ServerFlags

General switches for the server behavior.

Module

A list of modules the server should load

InputDevice

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 computer.

This section is only considered when the option Option "AutoAddDevices" "off" is being used in ServerFlags. SaX2 only inserts a comment.

Monitor

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.

However, the Monitor section is handled differently, if you use RandR 1.2 capable drivers, for example intel, radeon, radeonhd, nouveau, or nv. Do not refer the Monitor inside the Screen section. Instead use the Device section like this:

Option "monitor-OUTPUT" "MONITORNAME"

The placeholder OUTPUT depends on the corresponding driver (and sometimes on the version.) Get a list with the command xrandr (your X has to be started.)

Modes

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 /usr/share/doc/howto/en/html/XFree86-Video-Timings-HOWTO (available in the howtoenh package). To calculate VESA modes manually, you can use the tool cvt. For example, to calculate a modeline for a 1680x1050@60Hz monitor, use the command cvt 1680 1050 60.

Device

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 intel driver, find more information about the available options in the manual page man 4 intel.

Screen

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 (Virtual), the ViewPort and the Modes used with this screen.

For RandR 1.2, the Virtual option does not define the size of the virtual desktop anymore. Instead, it definies the maximal framebuffer size. This is important, if you need a second monitor and want to configure a bigger desktop size.

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.

If you use RandR 1.2 capable drivers (intel, radeon, radeonhd, nouveau, nv), refer to the Monitor section for more information.

ServerLayout

The layout of a single or multihead configuration. This section binds the input devices InputDevice and the display devices Screen.

DRI

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.

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 9.1, “Screen Section of the File /etc/X11/xorg.conf”.

Example 9.1. Screen Section of the File /etc/X11/xorg.conf

Section "Screen"1
  DefaultDepth  162
  SubSection "Display"3
    Depth       164
    Modes       "1152x864" "1024x768" "800x600"5
    Virtual     1152x8646
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "1280x1024"
  EndSubSection
  SubSection "Display"
    Depth       32
    Modes "640x480"
  EndSubSection
  SubSection "Display"
    Depth        8
    Modes       "1280x1024"
  EndSubSection
  Device        "Device[0]"
  Identifier    "Screen[0]"7
  Monitor       "Monitor[0]" 8
EndSection

1

Section determines the section type, in this case Screen.

2

DefaultDepth determines the color depth to use by default unless another color depth is explicitly specified.

3

For each color depth, different Display subsections are specified.

4

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.

5

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 Modeline.

6

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.

7

The Identifier line (here Screen[0]) 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.

8

Use this only, when using non RandR 1.2 capable drivers. See the Monitor section in Table 9.4 for more details.

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[0], the second one Device[1], 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):

Section "Device"
  BoardName     "MGA2064W"
  BusID         "0:19:0"1
  Driver        "mga"2
  Identifier    "Device[0]"
  VendorName    "Matrox"
  Option        "sw_cursor"
EndSection

1

The BusID refers to the PCI or AGP slot in which the graphics card is installed. The X server only needs a BusID if multiple graphic cards are active in the system (including any on-board chips.) The BusID 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.

2

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.so is added to the name, so, in the case of the mga driver, the driver file mga_drv.so is loaded.

For RandR 1.2 compatible drivers, use the Device section to reference to a Monitor section.

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 /usr/share/doc/package_name ). Generally valid options can also be found in the manual pages (man xorg.conf, man 4 <driver module>, and 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.

Monitor and Modes Section

[Important]RandR 1.2 Capable Drivers

If you use an intel, radeon, radeonhd, nouveau, or nv driver, you can not reference the Monitor section from the Screen section anymore. Find more information in Table 9.4, “Sections in /etc/X11/xorg.conf”.

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 may reference 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 is relevant.

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 man cvt.

[Warning]

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 combinations.