------------------------------------------------------------------------------
Fire GL2, Fire GL3, Fire GL4 Graphics Accelerator
Fire GL2, Fire GL3 and Fire GL4 Video Driver for Linux
Driver Version 4.0.3-1.9.20
Driver Version 4.1.0-1.9.20
Driver Version 4.2.0-1.9.20
------------------------------------------------------------------------------

Please read the entire contents of this document. Information in this file may not appear in printed documentation or online help.

NOTES:

(1) There are also separate drivers for XFree86 4.1.0 and 4.2.0 which are individual XServer versions and a bit different from X4.0.3 binaries. 
Despite this the installation procedure for the drivers is just the same.

(2) The term 'Fire GL' used in this document refers to the following graphics accelerators: Fire GL2, Fire GL3, Fire GL4.

This READ-ME file contains the following information:

1. GENERAL INFORMATION
1.1 Requirements
1.2 List of Product Files

2. INSTALLING THE FIRE GL SERIES VIDEO DRIVER
2.1 How to get the correct binary distribution package
2.2 Installing the driver using the Install.sh script
2.3 Generating a kernel with ISSE support (Kernel 2.2.x)
2.4 Generating a customized kernel module
2.5 Enabling AGP support

3. CHANGING THE VIDEO SETTINGS
3.1 Changing the settings using the firegl23config program

4. CONFIGURATION FEATURES AND INFORMATION

5. OPTIONS

6. NOTES, PROBLEMS, AND LIMITATIONS

7. SERVICE, SUPPORT, AND SOFTWARE UPGRADES

 

1. GENERAL INFORMATION
----------------------

This driver is based on the xfree86 version mentioned in the document header.
(see http://www.xfree86.org/4.0/ for documentation)
You must install this version of xfree86 before installing the drivers for the Fire GL accelerator.

If your Linux distribution does not include the current version of XFree86, you must download the xfree86 binaries from
'ftp://ftp.xfree86.org/pub/XFree86/4.0.3/binaries/'.
'ftp://ftp.xfree86.org/pub/XFree86/4.1.0/binaries/'.
'ftp://ftp.xfree86.org/pub/XFree86/4.2.0/binaries/'.

Since the driver binaries for Fire GL3, Fire GL2, and Fire GL4 are identical, the references in the following documentation will mention only Fire GL. 
There is no difference in the setup for the users of the Fire GL2/3/4. 

1.1 Requirements
----------------

1. Only Linux/x86 versions based on libc 6.2 (=glibc 2.2) are supported.

2. XFree86 Version 4.0.3, 4.1.0 or 4.2.0 must be installed beforehand.

Note: If you are a RedHat 7.0 user you are required to get a new plugin capable libGL.so.1.2 from XFree86.org. A full update to XFree86 Version 4.0.3 or later is highly recommended.

3. If you have a processor that is ISSE capable and install an ISSE enabled Linux kernel, the Fire GL driver can use a highly optimized ISSE OpenGL client driver.
(ISSE: Internet Streaming Single-Instruction, Multiple-Data Extensions; an extension of the IA-32 instruction set in Pentium III processors)

At the moment you can add ISSE support to the Linux kernel as follows:

- apply a patch to the kernel (see 2.3)
- recompile the kernel
- install the recompiled kernel.

NOTE: The AMD 3DNow! enhanced OpenGL driver does not need a kernel patch.

NOTE: Kernel 2.4.x comes with Pentium 3 support already built in. You do not need the ISSE kernel patch.

4. To generate version-specific kernel modules on your local machine, you need a full kernel sources tree on your workstation machine.

1.2 List of product files
-------------------------

ReadMe.txt - This document.
Install.sh - The installer script.
Uninstall.sh - The uninstall script.
fglibc22-X40.tgz - Binary distribution for ix86 systems with libc6.2 (=glibc2.2)
( distributions that are newer than SuSE 7.0 or RedHat 7.0).

2. INSTALLING THE FIRE GL VIDEO DRIVER
--------------------------------------

2.1 How to get the correct binary distribution package
------------------------------------------------------

First determine which binary distribution you need for your system.

To find out which binary distribution you need, download the script  'Install.sh' and run it:

sh Install.sh -check

This should provide information on which binary distribution is suitable for your system. 
NOTE: Getting the correct binary distribution information may prevent you from wasting time by downloading the wrong distribution.

2.2 Installing the driver using the Install.sh script
-----------------------------------------------------

Save the script 'Install.sh' and the downloaded binary distribution file into a single directory (choose a temporary location with enough space).
Get super user (root) privileges and change (cd) to the selected directory.
Then run the installer script as follows:

sh Install.sh

When the driver files are installed, the system asks you to configure the settings. Answer 'Y' when prompted for calling firegl23config. This will start the firegl23config program.

Respond to the questions of the firegl23config program and save the settings to /etc/X11/XF86Config.

2.3 Generating a kernel with ISSE support (Kernel 2.2.x)
--------------------------------------------------------

If your kernel does not have Pentium III ISSE support, you need a kernel patch to get benefit from the Pentium III ISSE instruction set.

+++ The Fire GL driver was tested with a patched kernel 2.2.14 +++

The patches on 'http://people.redhat.com/mingo/mmx-patches/' may be useful.
Please note that all these patches still represent only 'alpha' or 'beta' code. Our experience with version "mmx-2.2.14-A0" was quite positive.

You must only use the exactly matching kernel source from www.kernel.org.
Any distribution-specific kernel, e.g. 2.2.14-5.0 from RedHat or 2.2.14.SuSE may not work.
+++ It is highly recommended to backup the old kernel sources before applying the patch! +++

Extract the kernel sources to a directory of your choice, typically in /usr/src.
Make sure that the new linux kernel sources are referenced by a symbolic link called /usr/src/linux before continuing.

Copy the patch file to /usr/src and extract it from there:

- for a gzip-packed patch use

'zcat piii.gz | patch -p0 -E' 

- for unpacked patches use 

'cat piii | patch -p0 -E' 

No queries or errors are displayed if your kernel matches exactly the kernel the patch was designed for.

Change to '/usr/src/linux' and type 'make menuconfig' to start the kernel configuration program. 
Enter "Processor type and features". Select "PIII/Xeon/Deschutes" as Processor family to display ISSE or MMX2 menu items. For a fully working, ISSE-capable kernel select the following options:

- Processor type and features
(PIII/Xeon/Deschutes) Processor Family
- [*] Enable CPU Specific (MMX/MMX2) Optimization Functions
- [*] MTRR (Memory Type Range Register) support

- Loadable Module Support 
- [*] Enable loadable module support
- [*] Kernel module loader support

Save your settings and leave the menuconfig program.
Build your kernel. See the documentation of your distribution vendor for details.
Install the newly compiled kernel and test it.
+++ Keep your previous kernel bootable in case you experience problems. +++

In case of doubt or trouble please check the files /var/log/XFree86.0.log and /var/log/messages for hints on possible failures.

After you have successfully compiled and installed the new, patched kernel,  reboot your system with the new kernel.

Install the driver for a second time. Use the Install.sh script again.
Remember, you must be logged in with super user (root) privileges. 
Now the necessary kernel driver module and client driver will be installed. 

A software tool, called 'cpu_check' may be useful to check the system CPU and the kernel patch.

2.4 Generating a customized kernel module
-----------------------------------------

The Fire GL is a graphics adapter that uses the performance capacity of your workstation intensively. Some features, like AGP support, busmaster DMA transfers, or memory mapping, need support from a precisely tailored kernel module. This module gets loaded at boot time and remains present for the driver all the time. (If the module is missing, you do not have hardware-accelerated 3D-support, but you can still use 2D at a reduced performance level.)

The binary package comes with several fully working kernel modules for several distributions and kernel versions. So, in most cases, you don't need to build a kernel module.

However, it is possible that none of the delivered kernel modules will fit your needs. For example:
- if you have a new or customized Linux kernel, or
- if you have kernel symbols versioning enabled.

In these cases you must build the configured sources of your kernel at the location /usr/src/linux, which is allowed to be a symlink.
Building a customized kernel module is an administrator's task.
This is far less complex than building a new Linux kernel itself - you only need to manually invoke two shell scripts.
The steps to perform a build are listed here:

- get the matching Linux kernel source (do a "make distclean" if exist)
- setup that kernel source with the config file matching your kernel
- do a "make dep" on the kernel source tree
- go to /lib/module/firegl23/build_mod and start ./make.sh
- go to /lib/module/firegl23 and start ./make_install.sh

If you do not have hardware 3D support (run fireglinfo to check), or you have done any other important system change, e.g. a changed kernel, then you must start the kernel module build manually:
Enter /lib/module/firegl23/build_mod and enter (as root) "./make.sh".
This will force the creation of a new customer-tailored kernel module.
Should the creation fail you will find hints on the cause in the shell and in the related logfile called "make.log".

Note: in some configurations you will see lines like:

compiling...
/tmp/ccOWu6AI.s: Assembler messages:
/tmp/ccOWu6AI.s:9: Warning: Ignoring changed section attributes  for .modinfo

This warning comes due to a specific combination of Linux kernel sources and C compiler. Similar messages do appear if you build your own Linux kernel. This is a widely known Linux issue that does not affect your builds and therefore you can ignore this warning. 

To set up a kernel module build you need the Linux kernel headers that match exactly the kernel you are running. This means:
- if the kernel is configured SMP with P-III support and agpgart enabled
- you must have a kernel source that is configured exactly the same way.

If your kernel was already built by your Linux distribution:
- Get the related source RPM file 
- Extract the matching configuration settings contained there.
(For RedHat Linux files might reside in the subdir "configs".
For SuSE Linux these files might be found in the SRPMs.
Latest SuSE versions will present /proc/config.gz for the running kernel.)
- Set up your kernel source with these settings, you can copy the config file to /usr/src/linux<your-extension>/.config and then call "make oldconfig" in order to perform exact importing
- Perform "make dependencies" ("make dep").

Note: If you want to build multiple modules for some reasons we highly recommend a "make distclean" between each cycle.

In case you can no longer build the matching kernel headers it is best to 
- build a new kernel from scratch that is optimal tailored to your machine,
- install it and boot it
- if it runs, continue with setup.

To perform the final step on each customized kernel module build:
- Go to /lib/modules/firegl23
- Start ./make_install.sh
This copies the matching kernel module into the loadable modules tree of your running kernel. The script further does the required update of the module loader dependency list.

If you have several identical machines the kernel modules build on one machine are as exchangeable as the related Linux kernels are themselves. Copy the module into /lib/modules/firegl23 and restart the ./make_install.sh script.

2.5 Enabling AGP support
------------------------

Several up-to-date distributions already come with built-in and, possibly, activated AGP support like an 'agpgart' kernel module, for example,  SuSE 7.0 or RedHat 7.0.

If the kernel module of the graphics driver detects this feature, it tries to use it by connecting to the AGP module. To verify if the related module is loaded, enter 'lsmod' as root. When the XServer is running and the connection was established, the usage count of the agpgart module is listed as different from zero.

Note: agpgart is not a 'hard dependency' for module operation.
Therefore the modules dependency list does not list it as a requirement for the firegl23 kernel module. This is to allow the system's administrator maximum control of what he wants to run on a specific machine.

The latest version of the driver's kernel module is shipped with 'built-in' agp support. If your distribution's kernel setup does not provide agpgart-compatible services, the built-in agpgart module will be used.

3. CHANGING THE VIDEO SETTINGS
------------------------------

+++ Use only the firegl23config tool to generate the XF86Config file! +++

To generate the XF86Config file you must know the type of monitor, keyboard, and mouse of your system .
IMPORTANT: Do not specify a monitor type with a horizontal sync rate that exceeds the performance scope of your actually attached monitor. 

++++ Wrong monitor settings may damage your monitor! ++++

3.1 Changing the settings with firegl23config
---------------------------------------------

1. Log on with root privileges.

2. Run the Fire GL configuration program. Enter:

firegl23config

3. Answer the questions of the firegl23config program and save the settings to /etc/X11/XF86Config.

4. Restart the XServer.

4. CONFIGURATION FEATURES AND INFORMATION
-----------------------------------------

1. To check, if 3D acceleration is working properly, use the 'fireglinfo' program installed together with the Fire GL driver.

To run the test program enter:

fireglinfo

Typical output information (3D acceleration is working properly) may read like this:

OpenGL vendor string: ATI
OpenGL renderer string: Fire GL2 / FireGL3 (Pentium3)
OpenGL version string: 1.2.2060 (1.3.1)

2. There are other tools, for example, from XFree86 group that may be of some help, e.g. xdpyinfo or glxinfo.

3. For information on the CPU support of your running system run the application "cpu_check".

5. OPTIONS
----------

This section lists options that you can set in the XF86Config file, in the section "Device", identifier "Fire GL[2|3|4]"

Option "HW Cursor"
Type OPTV_BOOLEAN
- "yes" HW Cursor enabled
- "no" HW Cursor disabled
default setting: "yes"

Option "enable DVI"
Type OPTV_BOOLEAN
- "yes" : enable DVI connector(s)
- "no": disable DVI connector(s) if no DVI display device detected
NOTE: The Fire GL3/4 always has the DVI connectors enabled when operating in a dual-screen video mode. 
default setting: "no"

Option "no_accel":
Type OPTV_BOOLEAN
- "no" : XAA hardware acceleration enabled
- "yes": XAA hardware acceleration disabled (for test purposes)

Option "NoDDC"
Type OPTV_BOOLEAN
- disables PnP Monitor functions, e.g., automatic mode configuration
(important for Fire GL3/4 users who want to work with dual-screen modes)

Option "Capabilities"
Type OPTV_INTEGER
- Open GL, provides selection of application specific profiles, a combination of these flags
0x00000001 Swap buffers only at the vertical sync
0x00000002 Force blit copy from back to front buffer
'default' (0x00000000)

Option "Capabilities2"
Type OPTV_INTEGER
provides selection of other global settings, a combination of these flags
0x00000008 Reduce fan speed
0x10000000 Apply gamma table only to 2d windows
'default' (0x00000000)

Option "ClientDriverName"
Type OPTV_ANYSTR
This option allows the use of a different client driver. To enable the usage of the generic client driver, w/o Pentium III support, just insert "firegl23" here.

Option "FrameLock"
Type OPTV_BOOLEAN
If set, the graphics chip register "DTG_CNTRL", bit 0x01000000 is set,
i.e. the external synchronization of the frame buffer refresh is  enabled.
Locate connector J5, if present: bracket to the left, solder side up;
top - left (3 pins, "J5"). Do not mistake J5 for the stereo connector!

NOTE: no input signal -> adapter hangs!

Option "AGPSpeed"
Type OPTV_INTEGER
Possible values: 
0 (AGP off), 
1 (AGP 1x), 
2 (AGP 2x), 
4 (AGP 4x)
With no entry, the highest possible AGP speed is set by default.

Option "QXGA_Dual"
Type OPTV_BOOLEAN
The mode QXGA ("2048x1536") can be either a single-monitor mode or,  with Fire GL 3/4, a dual-monitor mode. (Compared to 2048x768, which  is always a dual-monitor mode)
- "no" : single-monitor mode
- "yes": dual-monitor mode
The default setting, i.e. no entry, is single-monitor mode.
To enable DVI output, see Option "enable DVI"

Option "QUXGAW_Single"
Type OPTV_BOOLEAN
The mode QUXGA-W ("3840x2400") can be either a dual-monitor mode or  a single monitor mode.
- "no" : dual-monitor mode
- "yes": single-monitor mode (FireGL2)
The default setting, i.e. no entry, is dual-monitor mode for the FireGL3/4.
If a FireGL2 is detected only single mode is available
Use only QUXGA-W 14, 15 or 16 Hz mode for a single mode
(14 Hz recommended, find mode lines in the XF86Config file).
Direct Rendering (DRI) is disabled when he QUXGA-W single mode was selected.
To enable DVI output, see Option "enable DVI"

Option "GammaPalette"
Type OPTV_STRING
This option allows you to specify a path and file that holds all Gamma table entries for Fire GL 2/3/4. The values are loaded automatically to the ramdac gamma attribute table when starting the X server.
You can define up to 256 color entries (index 0 to 255). For each index you can set a separate 10-bit color value for red, green and blue. The color values may vary from 0 (= no color) to 1023 ( = full color).
The format for the file entries is(all values in decimal numbers):

# [comment]
[index] [red value] [green value] [blue value]

Sample clip of a palette file entry:
# Palette Entries for R 4.400000, G 4.400000, B 4.400000
000 000 000 000
001 290 290 290
002 340 340 340
003 372 372 372
004 398 398 398
005 418 418 418

Sample for XF86Config file entry:
...
Option "GammaPalette" "/home/myname/palettes/palette4.dat"
...

Option "Qbs"
Type OPTV_BOOLEAN
Quad buffer stereo support. See 6.15 for limitations.
- "off" : no Qbs support 
- "on" : Qbs support, when enabled with the "firegl23config"  utility, 120 Hz modelines are added to the XF86Config file
The default setting is "off"

Option "Pbuffer"
Type OPTV_INTEGER
Select dimensions of the rectangular video memory area to be reserved for GLX 1.3 Pixel Buffers (pbuffers). The maximum dimension depends on board type and the biggest selected mode. Qbs enabled also reduces the maximum possible pbuffer dimensions.
Possible values are:
0 (disabled), 
1 (1280x1024), 
2 (1600x1200),
3 (1920x1200)
4 (2048x1536)
No entry: pbuffers disabled.

6. NOTES, PROBLEMS, AND LIMITATIONS
-----------------------------------

1. You cannot perform a graphic installation of Linux with the Fire GL.
You need a different VGA-compatible graphics board.
Exception: SuSE Linux 7.1 and later SuSE distributions.

2. Corel users:
It is not yet possible to install Corel Linux (Corel Linux 1.0 / 1.1) using a Fire GL 2 or higher graphics adapter.
To install drivers for the Fire GL, you must first install Linux and  the drivers for the Fire GL using another VGA-compatible board before you can install the Fire GL graphics adapter into your system.

To run this driver version with hardware acceleration, it is necessary to install a kernel (together with other system-depending settings, e.g. SCSI support) with, at least, the following settings 

- Processor type and features
(PPro/6x86MX) Processor Family
- [*] MTRR control and configuration

- Loadable Module Support 
- [*] Enable loadable module support
- [*] Kernel module loader support

To get benefit from ISSE you need the following settings (patch installed, call as root, 'make menuconfig'):

- Processor type and features
(PIII/Xeon/Deschutes) Processor Family
- [*] Enable CPU Specific (MMX/MMX2) Optimization Functions
- [*] MTRR (Memory Type Range Register) support

- Loadable Module Support 
- [*] Enable loadable module support
- [*] Kernel module loader support

For generating a new kernel please consult your Linux manual
CAUTION! Be careful when generating a new Linux Kernel!!!!
Make sure you have an emergency boot diskette ready in case your systems stalls and does not start again!

3. RedHat users:
To install RedHat Linux together with the Fire GL, you must install RedHat Linux in text mode. (at linux loader menu choose "text<Enter>").

After RedHat Linux and the Fire GL drivers are installed, edit the file "/etc/inittab" 
Change the line "id:3:initdefault:" to "id:5:initdefault:"
Reboot the system.

The default RedHat 7.1 symlink setup for X4.0.3 looks like this:

/usr/X11R6/bin/X -> Xwrapper
/etc/X11/X -> ../../usr/X11R6/bin/XFree86 

You can create these symlinks by entering these lines:

ln -s Xwrapper /usr/X11R6/bin/X
ln -s ../../usr/X11R6/bin/XFree86 /etc/X11/X 

4. SuSE users (versions below 7.1):

4.2 SuSE Linux 6.4 and older
Use YAST1 to install SuSe Linux together with the Fire GL. 
SuSE 6.3: boot with CD2, SuSE 6.4: boot with CD1. At the "boot:" prompt  type "manual" within 3 seconds and press <Enter>. When asked, select  'Yast1'.

After installing the 'on CD' XServer 4.0 (at /cdrom/unsorted/XFree86-4.0) you may have to generate or redo some symbolic links to complete the installation.

- The symbolic link 
/var/X11R6/bin/X
must point to the (again) symbolic link
/usr/X11R6/bin/X
which itself must point to the file
/usr/X11R6/bin/XFree86 .

Use
'ln -s -f /usr/X11R6/bin/XFree86 /var/X11R6/bin/X'
and
'ln -s -f /var/X11R6/bin/X /usr/X11R6/bin/X'.

Also, you may have to rename an older glx library (this is fixed since XFree86 4.0a):

- delete the file 
/usr/X11R6/lib/modules/glx.so 
(or move it to a backup location).
The new glx library will be libglx.a at 
'/usr/X11R6/lib/modules/extensions/'.

- create (change, if it exists already) a symbolic link
/usr/lib/libGL.so.1
pointing to 
/usr/X11R6/lib/libGL.so.1
by using
'ln -s -f /usr/X11R6/lib/libGL.so.1 /usr/lib/libGL.so.1'.

- create (change, if it exists already) the symbolic link
/usr/lib/libGL.so.1.2
pointing to
/usr/X11R6/lib/libGL.so.1
by using
'ln -s -f /usr/X11R6/lib/libGL.so.1 /usr/lib/libGL.so.1.2'.

Install the FireGL2 driver and reboot your system.

Start the X server with startx and test your Xserver system using '/usr/X11R6/bin/fireglinfo'

Typical program output information for a properly installed system:
-------------------------------------------------------------------
OpenGL vendor string: ATI
OpenGL renderer string: Fire GL2 / Fire GL3 (Pentium3)
OpenGL version string: 1.2.2060 (1.3.1)

Output information for a system with bad libGL.so links:
---------------------------------------------------------
No default configuration 'mesa3.1' in init file
OpenGL vendor string: Brian Paul
OpenGL renderer string: Mesa X11
OpenGL version string: 1.2 Mesa 3.1

Wrong glx library used (old library not renamed or deleted):
------------------------------------------------------------
Xlib: extension "GLX" missing on display ":0.0".
Xlib: extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual!

4.2 SuSE Linux 7.x and newer
For SuSE systems with XFree86 4 and higher the following might apply:
If you do spot warnings about wrong, incomplete or missing GLX support when running any OpenGL related software (or the SuSE script 3Ddiag) then you might be in need for doing what is described below.

SuSE is providing XFree86 3.3.6 for legacy hardware where drivers are not yet ported to current XFree86. For this reason you might have a look into the SuSE installation guide for OpenGL (chapter 6 on SuSE 7.3) for a few more details on the subject.

In short, you require the installation of the xf86_glx-4.*.i386.rpm package on your machine. If you have selected the checkbox for "3D hardware support" whilst running the system installation program then you might already have this package.

After this you have to run the following two scripts
/usr/X11R6/bin/switch2xf86-4
/usr/X11R6/bin/switch2xf86_glx
which sets up the executables of X4.x.x as the default and further installs the DRI libraries for X11 compliant OpenGL support. There are other methods of OpenGL support like "mesasoft" or some third party hw specific set of OpenGL libraries that wont accelerate or even work with the FireGL series of adapters.

The installer of the FireGL driver package tries to care and solve for the mentioned requirement, but might not always succeed in it, especially when the required rpm package is just not present. Further this setup might get corrupted if other third party graphics hardware was installed in the system for some reasons.

5. Limitations
- Libc 6.0 and 6.1 systems are not supported.

6. OpenGL Applications, DRI, DRM
please refer to the Precision Insight Documentation README.DRI located at
/usr/X11R6/lib/X11/doc
or 
http://www.xfree86.org/4.0/DRI.html

7. Other OpenGL implementations
- Your system may have some other OpenGL compatible libraries (i.e. MesaGL) installed.
- Your applications may link to other GL libs than provided with the Fire GL.
This may result in software rendering techniques which are quite slower  than the hardware-accelerated render libs of the Fire GL.
In this case we recommend that you consult an experienced Unix/Linux  expert who can either recompile the application appropriately or can  modify your library environment that the correct libs are found.

If you are not sure what libs your program is using then type in 
ldd <name_of_application>
and you will get extended information. Especially if the GL libs  are located at your X11R6 subdirectory and therefore your application uses hardware.

A reference to libGL.so.1.2 is rather good, however, a reference to, for example, libMesaGL.030300 is rather unlikely to serve your needs. For  other names, please check if the file is a symlink and which file on your system is the final target of the existing symlinks. 
Also, please note that RedHat 7.0 only supplies a non-plugin-enabled libGL.so.1.2. Therefore you have to replace this file with the improved equivalent from the XFree86.org ftp site. 
Fire GL only supports Xfree86 4.0.2, so we recommend that you upgrade to X4.0.2 and related drivers.

8. DRI and Security
The Section "dri" in your XF86Config file may, for example, look like:

Section "DRI"
Group "video"
Mode 0660
EndSection

This implies that only users assigned to the group "video" can use  3D Hardware acceleration. To add a user to the group "video", do the  following:

- edit [as root] the file /etc/group,
- search for "video"
- add the new user(s) at the end of the 'video' line, separated by a comma (,).

Example:
adding a new user 'henryc' to 
video:x:33:frankh,michaelg
will result in
video:x:33:frankh,michaelg,henryc

9. Old GLX Library Files
If there is a glx library file other than libglx.a, for example, libglx.so., or similar, in directory /usr/X11R6/lib/modules/extensions, an old graphics driver installation may prevent a correct XServer access to the glx library. 
Rename any glx library file(s), except of libglx.a, or move it/them to another directory.

10. Commonly used OpenGL utility libraries (GLU, GLUT)
Most distributions come with a complete set of OpenGL utility libraries.
Sometimes running a specific application may require a specific library  version which is not in the system.
Since most libs are exchangeable (libMesaGLU.??? -> libGLU.so, libMesaGLUT
-> libGLUT) for most applications all you need is 
- create a symlink to the existing target
- run 'ldconfig' afterwards. 
Since these libs are running in user mode this modification is not  critical. Normally your application will run smoothly. In worst case you will get a segmentation fault or an unresolved external.

Typical locations for libraries are:

- /lib
- /usr/lib
- /usr/local/lib
- /usr/X11R6/lib

Make sure that there are no duplicate names so that you know what gets active. If some application requires a specific lib in a specific tree consider to create a symlink from the applications location to your preferred location rather than moving the files around each time.

A typical error scenario is that you have an application which uses the GLU tessellation API but you have only MesaGLU (e.g. Mesa version 3.4).
Your application will prompt you about unresolved symbols that start with 'gluTess'. In this case go to the download section of http://www.mesa3d.org.
There you will find ready-to-install packages of the open source SGI sample implementation of GLU.
Currently the direct link to the download location is:
ftp://mesa3d.sourceforge.net/pub/mesa3d/SI-GLU/
where the file oss-opengl-glu-20000925-1.i386.rpm should work for you.

For the GLUT library, you will find the latest release version at
http://reality.sgi.com/mjk_asd/glut3/glut3.html
for free download. Since the glut library is released in less frequent cycles, some of the attached sample programs may show errors.
Sometimes you can find a fixed source for a sample in the glut/win32 package at
http://www.xmission.com/~nate/glut.html
because of the shorter release cycles there. Note that this package currently does not compile under Linux, since the project's work was not focused on this target for a while - but this may possibly change. 
You must move the selected source files into a regular GLUT-3.7  environment.

There are other more or less important toolkits available. Some of them are included in GLUT (like gle, mui, glsmap) and others are distributed  separately. It is beyond the limited scope of this document to further evaluate this area. In any case it is the responsibility of the respective toolkit team to supply the latest releases and doing OpenGL-compatible implementations.

11. RedHat Linux 7.0
This Linux version is based on the no longer supported glibc2.1, which means that the FireGL drivers will not run on that platform.

12. Linux kernels with built-in dri/drm support
Some newer Linux kernel sources already come with a few XFree86 kernel modules for miscellaneous graphics adapters. Theses files are not  compatible with FireGL drivers. They are not required for running the  Fire GL with its drivers.

As of today there is no perfect implementation of the XFree86 kernel driver loading process. Especially if you have multiple kernel drivers selected and compiled directly into your Linux kernel, XFree86 may no longer start the respective FireGL kernel module automatically. It simply scans all present dri devices and concludes that dri is active but there is no suitable driver. Thus the required kernel module is not loaded.

Solutions for the above scenario:
- don't compile any dri/drm devices hard into your Linux kernel, if you need other modules than provided by FireGL: use modules.
- manually load the FireGL kernel modules before starting your XServer.
This will force the FireGL modules to get loaded and properly detected.

13. Corel Linux
Linux drivers for the Fire GL 2 or higher are not bundled with  COREL(R)-LINUX(R) OS. Please disregard any information to the contrary in the Fire GL2 User's Guide.

14. GL Quake Benchmark
If you want to run the 3D benchmark quake at full screen then ensure that the mode you want to use is referenced once in the 'modes' line of your XF86Config file (in Section "Screen" SubSection "Display"). 

For example, if you are running your XServer in 1280x1024 and further want to run the benchmark quake in resolution 800x600 then your 'modes' listing must read something like this:
modes "1280x1024" "800x600"

15. Stereo Quad Buffering
If you do enable Stereo Quad Buffering then you should not use virtual desktops bigger than the selected resolution. Further the stereo feature will only initialize if your adapter is in textmode when launching X and the respective display mode. The adapter can not switch between multiple resolutions while keeping the stereo setup. For that reason it is highly recommended that you have only a single 'modes' line in your XF86Config  file at Section "Screen" SubSection "Display".

Having multiple Screen sections or ServerLayout sections should work for specific purposes. Mode selection in such a setup can be done i.e. via 
"XFree86 -screen <screen_name>"
or 
"XFree86 -layout <layout_name>".
The integration into the respective Linux distribution, window manager and desktop scheme is a rather individual process and is therefore left up to the respective system administrator to implement such a solution.

16. Sample Source Code
The drivers for your graphics adapter come with two samples programs and  one library. The first sample program demonstrates the usage of the pbuffer extension and helps you to verify its presence (if configured). 
The second program and the related library do demonstrate how to attach to the XServer and exploit this feature. Sources and documentation are meant for developers use only and can be found
/usr/src/firegl23sample_source.tgz
after driver installation. These sources are not required for daily use.

For a quick trial out of the programs (fgl_xgamma, fgl_glxgears), the binaries and headers can be found at the respective X11 locations.

Please note that there is no regular support for the sources. But we consider feedback on problems and errors as welcome. The sources are provided for educational purposes only. For regular legal reasons we cannot grant absolute error freeness, free from third party rights or any sort of fitness for a particular purpose (especially for the use in high security or high risk environments). If you plan to use this code, then you have to ensure yourselves that the respective fitness for your specific targets does exist.

17. AMD K7
When using an AMD K7 you should always use the boot option:
mem=nopentium

7. SERVICE, SUPPORT, AND SOFTWARE UPGRADES
------------------------------------------
Video driver updates can be obtained from the following web location:

http://www.ati.com/support/