Linux Quake III Arena Known issues
Known issues and frequently asked questions - 1.32b
TTimo
Changes history
2004.2.20 Last update
2001.6.18 Initial version

Current topics

- Installation instructions
- What do I do with a .x86.run file?
- The setup crashes with Segmentation fault "$setup" "$@" 2>/dev/null
- Installation on BSD
- CLIENT_UNKNOWN_TO_AUTH
- Sys_Error: Couldn't load default.cfg / Sys_Error: FS_FreeFile( NULL )
- I get ./setup.sh {: ==: binary operator expected when running the setup?
- The game doesn't start, I have performance problems, etc.
- Aureal sound drivers
- The sound doesn't work / sound crashes
- Where can I report bugs and discuss about linux Quake III Arena?
- The *.so files are not in the setups? (cgamei386.so qagamei386.so uii386.so)
- I get Sys_Error: Sys_LoadDll(..) failed dlopen() completely! when running quake3?
- I have an AMD CPU and a kernel 2.4.*, Quake III Arena is slowing down to a complete stop after a while?
- How do I set up the gamma correction?
- Servers don't show up in the ingame browser
- Detected an attempt to write across stack boundary
- libMesaVoodooGL.so
- Running a LAN dedicated server with multiple network interfaces
- Setup and execution on 64 bits CPUs
- Links

Installation instructions

Linux Quake III Arena is using a graphical installer (based on Loki software's Setup Graphic Installer ). However, since it's a Point Release, you need a retail CD-ROM of Quake III Arena to perform a complete installation (and optionally your Quake III: Team Arena CD-ROM). This process is documented in the INSTALLfile (this file is also in the setups, it's default location is /usr/local/games/quake3/INSTALL .. you can run the PR setup and read it to finish the installation afterwards).

What do I do with a .x86.run file?

Those are setup files, meant to be executed. They come with graphical installation UI or console installation, depending on what's available on your system. You may need to chmod +x file.x86.run to make them executable.

The setup crashes with Segmentation fault "$setup" "$@" 2>/dev/null

This is happening on glibc 2.3 systems such as RedHat 9 and Suze. The text mode installer will crash. If you can do a graphical installation, make sure you have Gtk1 installed and avoid the text installer altogether. If you are doing a remote installation (such as a dedicated server through ssh), you need to use a newer text mode installer. Run the installer with --keep to extract the files (look for a setup* directory in the current directory for the extracted setup). Then replace setup.data/bin/Linux/x86/setup by this newer version. Run setup.sh at top level and things should work fine.

Update: Turns out this solution is working for RTCW and ET, but not for Q3 (because the last q3 setup uses an older version of the installer). Will update a specific solution for Q3 'soon'.

Installation on BSD

The linux binaries will run fine on the BSD family (FreeBSD, NetBSD and OpenBSD) with the linux binary compatibility software. However if you are getting the error message ELF binary type "0" not known while installing or trying to run the binaries, that means you need to run brandelf on the files.

If it's a setup problem, proceed with the following steps:

    ./linuxq3apoint-1.31.x86.run --keep
    brandelf -t Linux setup.tmp/setup.data/bin/FreeBSD/x86/setup
    cd setup.tmp
    sh ./setup.sh

The --keep option will extract the files and leave them somewhere below your current directory. Depending on the game (Q3 or RTCW) and the setup version, your mileage may vary (setup.tmp or another directory).

The game binaries might need to be brandelf'ed too, with a command such as

    brandelf -t Linux /usr/local/games/quake3/quake3.x86

CLIENT_UNKNOWN_TO_AUTH

Graeme Devine recently updated his .plan with very complete information about CLIENT_UNKNOWN_TO_AUTH errors.

See some additional information from the gameadmins.com mailing list:

    If the server you are playing on and the auth server don't see you as the
    same IP (for instance you are trying to play on a public internet server
    that's on your LAN, and your internet access is using NAT), then it won't
    work.

    It used to work in 1.31, and it doesn't in 1.32. PunkBuster requires
    reliable auth of the players. What you can do:

    - run a server with sv_strictauth 0 and you'll be able to join your
    server. This will be the same behaviour as 1.31

    - connect to a server on the internet before you connect to your local
    server (this will trigger your IP into the cache of the auth server for
    15mn and let you in to your local server).

    - setup two NATs, one for your client one for your server and make sure
    your server and Id's auth see the same IP. (this one ain't for network
    setup newbies)

Sys_Error: Couldn't load default.cfg / Sys_Error: FS_FreeFile( NULL )

If you get one of these errors after installing Quake III Arena or Return To Castle Wolfenstein, it means that the engine didn't find all the required .pk3 files. Either you didn't copy them, or you copied them to the wrong place. Check the INSTALL instructions for the game for more details, make sure they are in baseq3/ for quake3 (missionpack/ for TA files) and main/ for Return To Castle Wolfenstein.

I get ./setup.sh {: ==: binary operator expected when running the setup?

This is a known issue to 1.29h setups and prior. It happens on systems with bash version < 2.*. There are several solutions:
- Upgrade bash to something more recent and run the setup again - Run the setup with the --keep option. It will fail but it will leave a setup-full directory. You can then copy the files manually from that dir. - Once you used the --keep option above, you can edit setup.sh and replace occurences of == by =. Then run setup.sh and the installer will execute.

The game doesn't start, I have performance problems, etc.

The first thing to do is to check on the forums and various FAQs (this one, but there are others. See the links). The Quake3World forums have a great search function.

Before reporting the problem to me make sure it's an issue with the game, and not an issue with your OS/OpenGL/sound configuration. Common OS issues are listed in this FAQ. You should make sure you have OpenGL configured correctly (by checking if gearsis running for instance, and how well it runs). And see if non-Id linux games are running fine too.

When you are going to report a bug, first make sure you are using the latest version of the game. Include the game version in your report.

Include general information about your OS:

- Motherboard brand, CPU type, RAM
- distribution name and version
- kernel / OS info (from uname -a)
- libc version (ls -l /lib/libc.so.*)
  please specify if you can if the libc is your distribution's standard version, or if you compiled yourself, and what binary target was used (x86, or AMD, i686 etc.)

If it's a problem with the client, send the output of glxinfo.

If you have an nvidia board, send the output of cat /proc/nv/card0

Send output of the run:
run the game with +set developer 1 option, and send the output. You can do something like quake3 +set developer 1 &>q3run.log.

If it's a crash, you can send a backtrace of the game running through gdb.

You can also send a log of the game running with strace:

    cd /usr/local/games/quake3
    strace -o ~/strace.log ./quake3.x86

NOTE: please avoid sending me the strace of /usr/local/games/quake3/quake3, which is a shell script wrapper and probably no interest to your problem.

Aureal sound drivers

It seems that some versions of the Aureal sound drivers don't work right with Q3. Last I heard, a kernel upgrade to 2.4.17 + Aureal 1.1.3, and/or using the old 1.1.1 drivers from Aureal's websitefixed the problem.

If you need to know more about this, have a look at this Q3W forum thread.

The sound doesn't work / sound crashes

The first thing to check is that it is actually a sound related. Run the game with +set s_initsound 0 and see what happens. All problems reported so far about sound turned out to be OS/drivers. Listed below:

On some Mandrake distributions:
Check if you are running the enlightenment sound daemon (esd). With ps aux | grep esdfor instance. It is a multiplexer for /dev/dsp, and might block use of /dev/dsp by Quake III Arena. You can disable esd with esdctl stop (as root).

Mandrake 8's default sound drivers seem broken, installing the Alsa drivers or the http://www.opensound.com drivers fixes the problem.

Some beta Alsa drivers have been reported to crash with Q3. Non-beta ones are fine.

VIA chipset and AC97 driver:
This combination is known to have various issues. They have been fixed in recent drivers (thanks to Arne Schmitz for the heads up):

    http://sourceforge.net/projects/gkernel has got the up to date version of
    the AC97 kernel driver. The current version can be found here:

    http://prdownloads.sourceforge.net/gkernel/via82cxxx-1.1.15.tar.gz

    It has working mmap sound, so Q3 shouldn't be a problem any more.

(thanks to Arne Schmitz for the heads up)

Where can I report bugs and discuss about linux Quake III Arena?

Reports bugs to bugs@idsoftware.com. If you are pretty sure this is a linux-only issue, you can shorten the loop by emailing ttimo@idsoftware.com directly.

You will find the discussion forums for linux Quake III Arena on Quake3World forums. There is for sure a lot of other places to talk about linux Quake III Arena, but this is the one we read regularly to track bugs and common issues.

The *.so files are not in the setups? (cgamei386.so qagamei386.so uii386.so)

If you still have baseq3/*.so and missionpack/*.so files, then those come from the earlier 1.27g beta installation and you should REMOVE them. They were provided in 1.27g to go around a bug in the VM code, which made win32 VMs incompatible with linux. This problem has been fixed and the two files are no longer required.

If you are upgrading from 1.27g, it is likely that your q3config.cfg files are set to use the native libraries (*.so files) instead of the bytecode. Run quake3 with the following options to set things right:
quake3 +set vm_game 2 +set vm_cgame 2 +set vm_ui 2

I get Sys_Error: Sys_LoadDll(..) failed dlopen() completely!when running quake3?

Try running quake3 with the following options:
quake3 +set vm_game 2 +set vm_cgame 2 +set vm_ui 2
You should also read the above answer.

I have an AMD CPU and a kernel 2.4.*, Quake III Arena is slowing down to a complete stop after a while?

It seems the 3DNow! copy routines have issues with the southbridge chip in the KT133A, this results in performances degrading while playing for a while. Re-compile your kernel without 3DNow! instructions to avoid the problem, and wait for newer kernels with better support for 3DNow! / KT133A.

How do I set up the gamma correction?

Starting with 1.29h, you can set the gamma correction with the brightness slider in the graphical menu (under setup). On some older systems which don't have the appropriate XFree86 extensions, you might have to set r_gamma manually from the console, and issue a vid_restart command.

Servers don't show up in the ingame browser

The reason for this has not been clearly identified yet, seems to be related to upgrade from older versions. Deleting ~/.q3a/baseq3/q3config.cfg fixes the problem (you will have to reconfigure your bindings)

Detected an attempt to write across stack boundary

If Quake III Arena exits with the error "Detected an attempt to write across stack boundary", this probably means that you are running libsafe on this system. Quake III Arena is compiled with some options that confuse libsafe, you should disable it before running. See this page for more details.

libMesaVoodooGL.so

The GL driver for Voodoo cards (libMesaVoodoGL.so) used to be distributed in older Q3 setups. This is no longer the case. If you have this .so in your Quake III Arena directory (/usr/local/games/quake3), you should remove it. Any recent/decent linux distribution should support your Voodoo card out of the box, otherwise it is recommended that you setup XFree 4.* and the correct DRI infrastructure for it.

Running a LAN dedicated server with multiple network interfaces

A LAN dedicated server will use the net_ip cvar to identify the NIC it is going to use (default is "localhost"). As it only opens one socket, it is not possible to have a server broadcast it's packets on all the NICs. This can be a problem if the server is serving games for a LAN and runs several NICs to access the various sub networks.

The following Linux kernel patch (2.4.19) was provided by Rogier Mulhujzen and John Tobin, it will force broadcasts to be emitted on all interfaces:
udp_wide_broadcast.patch
udp_wide_README.txt
The equivalent patch for FreeBSD is available too.

Setup and execution on 64 bits CPUs

If you are running Linux on a 64 bit CPU (such as AMD's Opteron), and if your system is backwards compatible so that it can execute 32 bits x86 binaries, then the regular Quake III Arena binaries should work (your mileage may vary).

It's likely that the installer scripts will get confused though, and will refuse to install giving you an error: "This installation doesn't support glibc-2.1 on Linux / unknown". You will have to extract the game files manually by passing --keep on the command line when running the setup script. Once the files are unpacked, you will need to copy them manually to /usr/local/games. You probably want to have a working installation to refer to while doing this. This also applies to RTCW and ET

Links

The Linux Gamer's faq is a very good resource for general Linux Gaming topics.

Also at icculus.org, the old Q3 FAQ from Loki Software.

Quake3World's linux FAQ