Getting Started with Quake
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 id1To 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.
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
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.
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 ./quake.x11
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.
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 ./squake
Practical books for the most technical people on the planet. Newly available books include:
- Agile Product Development by Ted Schmidt
- Improve Business Processes with an Enterprise Job Scheduler by Mike Diehl
- Finding Your Way: Mapping Your Network to Improve Manageability by Bill Childers
- DIY Commerce Site by Reven Lerner
Plus many more.
- diff -u: What's New in Kernel Development
- Server Hardening
- Giving Silos Their Due
- 22 Years of Linux Journal on One DVD - Now Available
- What's New in 3D Printing, Part III: the Software
- Controversy at the Linux Foundation
- Don't Burn Your Android Yet
- February 2016 Issue of Linux Journal
- Firefox OS