Red Hat Linux 8.0 uses XFree86 version 4.2 as its base X Window System, which includes the various necessary X libraries, fonts, utilities, documentation, and development tools.
Red Hat no longer provides the older XFree86 version 3 server packages. Before upgrading to the latest version of Red Hat Linux, be sure that your video card is compatible with XFree86 version 4 by checking the Red Hat Hardware Compatibility List at http://hardware.redhat.com/hcl/.
The X server includes many cutting-edge XFree86 technology enhancements such as hardware 3-D acceleration support, the XRender extension for anti-aliased fonts, a modular driver based design, support for modern video hardware and input devices, and many other features.
The Red Hat Linux installation program installs the base components of XFree86. You may choose to install any optional XFree86 packages.
The X Window System resides primarily in two locations in the file system:
/usr/X11R6/ directory — This directory contains X client binaries (in the bin directory), assorted header files (in the include directory), libraries (in the lib directory), and manual pages (in the man directory), and various other X documentation (in the /usr/X11R6/lib/X11/doc/ directory).
/etc/X11/ directory — The /etc/X11/ directory hierarchy contains all of the configuration files for the various components that make up the X Window System. This includes configuration files for the X server itself, the X font server (xfs), the X Display Manager (xdm), and many other base components.
Display managers such as gdm and kdm, as well as various window managers and other X tools, also store their configuration in this hierarchy.
XFree86 version 4 server is a single binary executable: /usr/X11R6/bin/XFree86. This server dynamically loads various X server modules at runtime from the /usr/X11R6/lib/modules/ directory, including video drivers, font engine drivers, and other modules as needed. Some of these modules are automatically loaded by the server, whereas some are optional features that you must specify in the XFree86 server's configuration file, /etc/X11/XF86Config, before they can be used. The video drivers are located in the /usr/X11R6/lib/modules/drivers/ directory. The DRI hardware accelerated 3-D drivers are located in the /usr/X11R6/lib/modules/dri/ directory.
The XFree86 server configuration files are stored in the /etc/X11/ directory. The XFree86 version 4 server uses /etc/X11/XF86Config. When Red Hat Linux is installed, the configuration files for XFree86 are created using information gathered during the installation process.
While there is rarely a need to manually edit these files, it is useful to know about the various sections and optional parameters found in them.
Each section begins with a SectionName line and ends with an EndSection line. Within each of the sections, you will find several lines containing an option name and at least one option value, occasionally seen in quotes. The following sections explore the most useful sections of an XFree86 version 4 file and the roles of various popular settings.
To review the current configuration of your XFree86 server, type the xset -q command. This provides you with information about the keyboard, pointer, screen saver, and font paths.
For more information, refer to the XF86Config man page.
This section specifies information about the video card used by the system. You must have at least one Device section in your configuration file. You may have multiple Device sections in the case of multiple video cards or multiple settings that can run a single card. The following options are either required or widely used:
BusID — Specifies the bus location of the video card. This option is only necessary for systems with multiple cards and must be set so that the Device section will use the proper settings for the correct card.
Driver — Tells XFree86 which driver to load in order to use the video card.
Identifier — Provides a unique name for this video card. Usually, this name is set to the exact name of the video card used in the Device section.
Screen — An optional setting used when a video card has more than one head, or connector, to go out to a separate monitor. If you have multiple monitors connected to one video card, separate Device sections must exist for each of them with a different Screen value for each Device section. The value accepted by this option is a number starting at 0 and increasing by one for each head on the video card.
VideoRam — The amount of RAM available on the video card in kilobytes. This setting is not normally necessary because the XFree86 server can usually probe the video card to autodetect the amount of video RAM. But because some video cards XFree86 cannot correctly autodetect, this option allows you to specify the amount of video RAM.
Direct Rendering Infrastructure (DRI) is an interface that primarily allows 3-D software applications to take advantage of the 3-D hardware acceleration capabilities on modern supported video hardware. In addition, DRI can improve 2-D hardware acceleration performance when using drivers that have been enhanced to use the DRI for 2-D operations. This section is ignored unless DRI is enabled in the Module section.
Because different video cards use DRI in different ways, read the /usr/X11R6/lib/X11/doc/README.DRI file for specific information about your particular video card before changing any DRI values.
This section sets paths for services vital to the XFree86 server, such as the font path. Common options include:
FontPath — Sets the locations where the XFree86 server can find fonts. Different fixed paths to directories holding font files can be placed here and separated by commas. By default, Red Hat Linux uses xfs as the font server and points FontPath to unix/:7100. This tells the XFree86 server to obtain font information by using Unix-domain sockets for inter-process communication (IPC). See the “Fonts” section later in this chapter for more information concerning XFree86 and fonts.
ModulePath — Allows you to set up multiple directories to use for storing modules loaded by the XFree86 server.
RgbPath — Tells the XFree86 server where the RGB color database is located on the system. This database file defines all valid color names in XFree86 and ties them to specific RGB values.
This section configures an input device, such as a mouse or keyboard, that is used to submit information to the system via the XFree86 server. Most systems have at least two InputDevice sections, one each for the keyboard and the mouse. Each section includes these two lines:
Driver — Tells XFree86 the name of the driver to load to use the device.
Identifier — Sets the name of the device, usually the name of the device followed by a number, starting with 0 for the first device. For example, the first keyboard InputDevice would have an Identifier of Keyboard0.
Most InputDevice sections contain lines assigning specific options to that device. Each of these lines start with Option and contain the name of the option in quotes, followed by the value to assign to that option. Mice usually receive options such as Protocol, PS/2, and Device, which designates the mouse to use for this section. The InputDevice section is well commented, allowing you to configure additional options for your particular devices by uncommenting certain lines.
This section tells the XFree86 server which modules from the /usr/X11R6/lib/modules/ directory to load. Modules provide the XFree86 server with additional functionality.
You should not edit these values.
This section refers to the type of monitor used by the system. While one Monitor section is the minimum, there may be one Monitor section for each monitor in use with the machine.
Be careful when manually editing values in the options of the Monitor section. Inappropriate values in this section could damage or destroy your monitor. Consult the documentation that came with your monitor for available safe operating parameters.
The following options are usually configured during installation or when using the X Configuration tool:
HorizSync — Tells XFree86 the range of horizontal sync frequencies that are compatible with the monitor in kHz. These values are used as a guide by the XFree86 server so that it will know whether to use a particular Modeline entry's values with this monitor.
Identifier — Provides a unique name for this monitor, usually numbering each monitor starting at 0. The first monitor would be named Monitor0, the second Monitor1, and so on.
Modeline — Used to specify the video modes that are used by your monitor at particular resolutions, with certain horizontal sync and vertical refresh resolutions. Modeline entries are usually preceded by a comment that explains what the mode line specifies. If your configuration file does not include comments for the various mode lines, you can scan over the values (also called mode descriptions) to uncover what the mode line is attempting to do. See the XF86Config man page for detailed explanations of each mode description section.
ModelName — An optional parameter that displays the model name of the monitor.
VendorName — An optional parameter that displays the vendor that manufactured the monitor.
VertRefresh — Lists the vertical refresh range frequencies supported by the monitor in kHz. These values are used as a guide by the XFree86 server so that it will know whether to use a particular Modeline entry's values with this monitor.
This section binds together a particular Device and Monitor that can be utilized as a pair and contain certain settings. You must have at least one Screen section in your configuration file. The following options are common:
DefaultDepth — Tells the Screen section the default color depth to try in bits. 8 is the default, 16 provides thousands of colors, and 32 displays millions of colors.
Device — Signifies the name of the Device section to use with this Screen section.
Identifier — Identifies the Screen section so that it can be referred to by a ServerLayout section and be utilized.
Monitor — Tells the name of the Monitor section to be used with this Screen section.
You may also have a Display subsection within the Screen section, which tells the XFree86 server the color depth (Depth) and resolution (Mode) to try first when using this particular monitor and video card.
This section contains miscellaneous global XFree86 server settings. These settings may be overridden by options placed in the ServerLayout section. Among the most useful settings are these two:
DontZap — Prevents the use of the Ctrl-Alt-Backspace key combination to immediately terminate the XFree86 server.
DontZoom — Prevents cycling through configured video resolutions using the Ctrl-Alt-Keypad-Plus and Ctrl-Alt-Keypad-Minus key combinations.
This section binds together a Screen section with the necessary InputDevice sections and various options to create a unified collection of preferences used by the XFree86 server as it starts. If you have more than one ServerLayout section, and the one to use is not specified on the command line when bringing up the XFree86 server, the first ServerLayout section in the configuration file is used.
The following options are used in a ServerLayout section:
Identifier — A unique name used to describe this ServerLayout section.
InputDevice — The names of any InputDevice sections to be used with the XFree86 server. Most users will only have two lines here, Keyboard0 and Mouse0, the first keyboard and mouse configured for the system. The options CoreKeyboard and CorePointer refer to the fact that these are the preferred keyboard and mouse, respectively, to use with the XFree86 server.
Screen — The name of the Screen section to use. The number to the left of the name of the Screen section refers to the particular screen number to use in a multi-head configuration. For standard single-head video cards, this value is 0. The numbers to the right give the X and Y absolute coordinates for the upper-left corner of the screen, by default 0 0.
Below is an example of a typical screen entry:
Screen 0 "Screen0" 0 0