The Linux OpenUT/GLX HOW-TO, 18-OCT-2000, HTML Version. Maintained by Jeffrey H. Ingber,

UT Logo

This is a rough attempt at a HOW-TO for setting up OpenUT with a G400/TNT or basically any other 3D accelerator that is supported by the Utah-GLX extensions. 3Dfx support is beyond the scope of this document. 3Dfx owners should refer to the literature included with the Linux UT distribution archives. The author assumes that the reader possesses some prior Linux experience such as using CVS, archivers (such as tar and gzip), and compiling programs from source code.

Every effort has been made to insure that the information contained within this document is accurate as of the time of writing. I can not be held responsible for any damage, lost time, lost wages, etc. that may arise by using the information contained within this page.

There is a general troubleshooting Q & A at the end of this document.

Some important links:

The OpenUT project at Sourceforge:

(It is recommended to familiarize yourself with the OpenUT project and browse the mailing lists. This is the best source of information on the OpenUT project.)

The Utah-GLX project:

The Mesa 3D graphics library:

The Linux Documentation Project:

Contacting the author:

I can be reached at I can only answer questions relating to this document itself (i.e. inaccuracies, revisions, etc). and can not provide support for UT or the OpenUT project, or any of the other packages mentioned in this document. All trademarks contained within are the property of their respective owners.

Before we begin:

A successful installation will require AGP GART support under Linux. There are two methods to enabling AGP support. The easiest route would be to obtain a kernel patch for the 2.2.13/14 series of stable kernels called "newagp". The other method entails obtaining a recent development kernel which already includes AGP GART support. Compiling a kernel is beyond the scope of this document. Furthermore, using a development kernel is advised against due to the instability of development code.

You will also need XFree86 3.3.x.  XFree86 4.0.x users should read the OpenUT/DRI HOW-TO hosted at the  OpenUT website.  Be advised that I have never used a "3rd party" X server (such as Accelerated X) and can not comment on interoperability with GLX or OpenUT).

Acquire the following tarballs:

NewAGP kernel patch: The latest development kernel

XDelta patch system: http://www.XCF.Berkeley.EDU/~jmacd/xdelta.html

Mesa3D OpenGL library:

Utah-GLX extensions:

SDL version >1.1.1

SDL mixer library:


UT linux distribution archives version 400 and the 402B patch:

The UT Windows CD.

Setting up and installing AGP GART support:

If you are using the kernel compilation method:

Compile and install the new kernel with AGP GART support (preferably as a module), MTRR support, ISO 9660 FS, and Microsoft Jouliet extensions. Make sure to select the correct chipset for your motherboard in the AGP configuration section.

If you are using the patch method:

Untar and peruse the README for newagp. Change to your source directory (usually /usr/src). Your kernel should be installed in a directory named "linux" or have a symbolic link called "linux" pointing to your kernel. Execute the following commands:

cat {path to newagp}/agpgart-{kernel version} | patch -p0

(Example: For a 2.2.13 kernel, you would type "cat /usr/src/newagp/agpgart-2.2.13 | patch -p0")

cd linux

Configure your kernel. Make sure to enable AGP GART support and select the appropriate motherboard chipset. The AGP entries are in the "character devices" section. Compile your kernel and build the modules if you have selected to enable AGP GART support via a module. Install your new kernel.

If you have selected to build the AGP GART support as a module, add the following line to /etc/modules.conf:

alias char-major-10-175 agpgart

Reboot with your new kernel and run the AGP test program included with the patch.

Installing XDelta:

Untar, compile and install XDelta according to the included README file. It should compile with the usual:

./configure; make; make install; ldconfig

Installing and patching UT for Linux:

Untar the UT linux 400 into a directory of your choice.

Mount your CD-ROM to /mnt/cdrom. (This is essential, as there is a bug in the installer. /cdrom mountpoint or any other mountpoint will fail.)

Run the installer directly. (DO NOT run the install script as it also contains a bug.)

Unselect 3Dfx support in the installer and Click "Install".

Untar the UT linux 400B patch into the UT home directory created by the installer (/usr/local/games/UnrealTournament/).

Change to the directory containing the patch and follow the directions in the included README file for patching UT with XDelta.

Acquiring the OpenUT CVS image:

Make sure you are connected to the internet in the usual manner (PPP, LAN, etc.).

Change to your source directory (usually /usr/src/) and execute the following commands:

(When asked for a password, simply hit "return")

cvs login
cvs -z3 co OpenUT

View the included READMEs. Copy the appropriate directories from the UT linux directory as outlined in the README.

Installing GLX and Patching Mesa:

Untar the GLX and Mesa archives into your source directory. Skim the READMEs as always.

Copy Mesa.diff from the OpenUT directory to Mesa/src (usually /usr/src/Mesa/src/).

Change to the Mesa/src directory and issue the following command:

cat Mesa.diff | patch -p0

Switch to your GLX directory (usually /usr/src/glx/) and configure GLX with the following commands:

./ --prefix=/usr --with-mesa=/usr/src/Mesa --enable-agp --enable-extra --enable-mtrr
make; make install; ldconfig

(You will NOT want to compile Mesa separately. This is handled by the --with-mesa option when you configure the build of GLX.)

edit /etc/glx.conf (for your chip-specific settings)

edit /etc/XF86Config and add the following lines:

(The above locations for glx.conf/XF86Config should be fine for SuSE and Slackware installations. Redhat and Debian users should use /etc/X11/glx.conf and /etc/X11/glx.conf respectively. Other distributions may use /etc/X11 as well. If glx.conf/XF86Config can not be found in the above location, try looking for the config files in /etc/X11/.)

Section "Module"

    Load ""

Installing SDL, SDL mixer library, and libmikmod:

Untar SDL, the SDL mixer library, and libmikmod into your source directory. Skim the READMEs.

Build SDL with the following commands:

./configure; make; make install; ldconfig

Build SDL mixer and libmikmod in the usual manner:

./configure; make; make install; ldconfig

Building UT from the OpenUT CVS image:

Change to the OpenUT direcoty and make UT with:


Starting up UT:

Fire up X and open and XTerm window.

Change to your OpenUT/System directory (usually /usr/src/OpenUT/System) and execute the following command:


If all went well, you'll be playing UT under linux!

Troubleshooting OpenUT (Q & A)

Q) When compiling UT, I receive errors related to GL include files that can not be found.

A) Make sure you specify --prefix=/usr/ when you compile GLX. If this still fails, create a symbolic link from /usr/local/include/GL pointing to /usr/src/Mesa/include/GL, then rebuild UT.

Example: ln -s /usr/src/Mesa/include/GL /usr/local/include/GL.

Q) When launching UT, I see the intro through a narrow "band" in the middle of the screen. Switching to a window does not fix the problem.

A) Launch UT with -defaultreson the command line. You should only need to do this once.

Q) I see the splash screen and the game terminates immediately afterward with no error message on my console.

A) Try  -nosplash -nosoundon the command line. Try running as root.

Q) How come there is no music?

A) Edit OpenUT/System/UnrealTournament.ini and change UseDigitalMusic=FALSE to UseDigialMusic=TRUE (section Audio.GenericAudioSubsystem).