Configuring XFree86: A Step-By-Step Guide : Configuring the Video Hardware
Previous: The Easy Parts of XF86Config
Next: Configuring the Monitor and its Modes

## 4. Configuring the Video Hardware

The video hardware is described in the "Device" sections. Multiple device sections are permitted, and each section describes a single graphics board.

Be sure to read the server manual pages and the chipset-specific `README` files for any non-generic information that may apply to your setup.

To create a Device section you need to collect the data for your hardware, and make some configuration decisions. The hardware data you need is:

- Chipset
- Amount of video memory
- Dot-clocks available or clock chip used (if programmable)
- Ramdac type (for some servers)

The server, in general, is capable of filling these on its own, but it is best to fully specify things in the `XF86Config` file, so that no mistakes are made. The 'Chipset' is one of the keyword strings for a configured driver (which can be displayed by running 'X -showconfig'). Of the accelerated servers, only some have chipset drivers currently. The amount of memory is specified in KBytes, so 1M of memory would be specified as 1024.

The dot-clocks are the trickiest part of card configuration. Fortunately a large database of collected dot-clocks is available. A list of Device entries for some graphics boards can be found in the `Devices' file. If you find one for your card, you can start with that. Also, the first part of the `modeDB.txt` file lists information for a myriad of SVGA cards. For accelerated cards, you can also look in the `AccelCards' file. If you are fortunate, your card is listed in one place or the other. If you find your card, copy the numbers from the database to the Clocks line in your `XF86Config` file, exactly as they appear in the database, without sorting, and leaving any duplicates. Note that some of the newer accelerated cards use a programmable clock generator, in which case a ClockChip line is used in your `XF86Config` file to identify the type of clock generator. (e.g. 'ClockChip "icd2061a"', which would be used for a #9 GXe board).

If you can't find a listing for your board, you can attempt to have the server detect them. Run the command 'X -probeonly >/tmp/out 2>&1' (for sh or ksh) or 'X -probeonly >&/tmp/out' (for csh). Be sure that the `XF86Config` file does not contain a Clocks line at this point. Running this will cause your monitor to freak out for a couple of seconds, as the server cycles through the clocks rapidly. It should not damage your monitor, but some newer monitors may shut themselves off because things may go out of spec. Anyhow, when this gets done, look in the file /tmp/out for the detected dot-clocks. Copy these to the Clocks line in your `XF86Config` file, exactly as they appear in /tmp/out. Don't sort them or rearrange them in any way.

It is possible that your board has a programmable clock generator. A symptom of this will be a printout of only 2 or 3 clock values, with the rest all zeros. If you run into this, and your board is not listed in the databases, contact the XFree86 team for help, or post a message to comp.windows.x.i386unix. Note that most current Diamond hardware falls into this category, and Diamond will not release the programming details, so we can't help you. There are some ethically questionable solutions available that you can inquire about on netnews; we do not advocate these methods, so do not contact us about them.

Some servers (S3 and AGX) require you to identify the type and speed of the RAMDAC your board uses in order to get the most out of the hardware. This is done by adding 'Ramdac' and 'DacSpeec' entries. For details of the supported RAMDACs, refer to the appropriate server manual page. Note, in previous versions of XFree86 the RAMDAC type was specified with an Option flag.

You may need to specify some Option flags for your hardware The server manual pages will describe these options, and the chipset-specific `README` files will tell you if any are required for your board.

Configuring XFree86: A Step-By-Step Guide : Configuring the Video Hardware
Previous: The Easy Parts of XF86Config
Next: Configuring the Monitor and its Modes