Getting Started with Quake

How to get this most popular game to run on your Linux system.
Installing from a Pre-existing DOS/Windows Installation

If you have Quake installed under Windows or DOS on a different machine, you can transfer the files in quake/id1/ to your Linux system via FTP or some other mechanism. Keep in mind that the file names on your Linux system must be in lower case for Quake to find them, so you may have to rename them after the transfer. Also note that it may be necessary to delete your DOS/Windows installation after you do this, to remain in compliance with the terms of id's software license.

If your DOS/Windows and Linux systems are on the same machine, you have two options: copy the files from your DOS/Windows partition to your Linux partition, or link to the necessary files from Linux. Both options work equally well. You save around 50MB of disk space when you link instead of copy.

Whatever you choose to do, start by changing to your Quake directory and creating a new subdirectory called /id1:

cd /usr/local/games/quake
mkdir id1

To copy the files from your DOS/Windows partition, type:

cp /win95/games/quake/id1/*.pak id1
To create links to your DOS/Windows Quake files, type this instead:
cd id1
ln -s /win95/games/quake/id1/*.pak .
Of course, you should replace /win95/games/quake in the examples above with the correct path to your DOS/Windows partition and Quake directory.

Linux Binary Installation

Now it is time to decide which of the three Quake executables you would like to install.

  • X11 Quake allows you to run Quake in a window on your X desktop. It is the least exciting client, but is a great, safe way to test your installation.

  • Squake is the SVGAlib Quake client; it runs full screen on your console.

  • GLQuake is the OpenGL Quake client. If you have a 3Dfx card, this is a must-have.

Download the packages you want (see the “Necessary Files” section) and extract them to your Quake directory:

cd /usr/local/games/quake
tar -xzf XXXX-i386-unknown-linux2.0.tar.gz

Sound Considerations

If you want sound from Quake, /dev/dsp needs to be readable and writable. Most distributions give it 662 (rw-rw—w-) permissions by default. The simplest solution is just to chmod 666 /dev/dsp. On most systems, the ability to read from the sound device will not pose a significant security threat. If this approach is unacceptable for your system, create a group that owns /dev/dsp and make your Quake players members of that group.

If you don't have a sound card installed or configured for your system, make sure to use the -nosound command-line option when starting Quake. Failure to use -nosound will cause Quake to exit with a segmentation fault when it tries to initialize your non-existent sound card.

X11 Quake

If you installed the X11 client, your system may need further configuration for glquake and squake, but at this point quake.x11 should be ready to go.

cd /usr/local/games/quake

If all is well, a small window running a Quake demo should appear. You should hear sound effects and possibly music, if the CD is mounted. You can use the -width and -height command-line options to create a bigger window.

SVGAlib Quake

Both squake and glquake require SVGAlib to be running (glquake uses SVGAlib for keyboard and mouse input, in case you were wondering). SVGAlib comes with most modern distributions and must be properly configured before squake or glquake will run correctly.

libvga.config is SVGAlib's configuration file. On most systems, you will find it in either /etc or /etc/vga. Make sure the mouse, monitor and video card settings in this file are correct for your system. See the SVGAlib documentation for more details.

If you don't already have SVGAlib on your system, it is available on Sunsite (see Resources).

If you have a Red Hat 5.x or other glibc-based Linux distribution, remember that since Quake was compiled with libc5, all the libraries it links to (such as SVGAlib) must also be libc5-based. If you are going to compile a newer version of SVGAlib yourself, make sure it links to libc5 (and friends) rather than glibc, or Quake won't run.

Once svgalib is properly installed, you are almost ready to run squake. squake needs to run with root privileges in order to access your sound and graphics cards. One (bad) way to deal with this is always to run it as root. Responsible system administrators will cringe at this filthy suggestion. Making the Quake binaries setuid root is a more acceptable solution. Quake can then be run by regular users and still have the privileges it needs to access the graphics and sound devices. Be warned that any setuid program represents a security risk. A clever user could exploit a bug or security hole in a setuid program to gain root access to your system. If you don't run a multi-user system, this will not be a big concern.

Make squake setuid root with the following commands:

chown root squake
chmod 4755 squake

Note that you should run squake from a virtual console. It won't run from X unless you are root when you start it, and running a game as the root user is a situation to be avoided. If you are in X, do a ctrl+alt+f1, log in and then:

cd /usr/local/games/quake

Figure 2. Player being blown up with a rocket launcher

Figure 3. Scene showing pretty transparent water