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
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Non-Linux FOSS: Code Your Way To Victory!
- Vagrant Simplified
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Libreboot on an X60, Part I: the Setup
- Dealing with Boundary Issues
- System Status as SMS Text Messages
- Bluetooth Hacks
- New Products
- October 2015 Issue of Linux Journal: Raspberry Pi
- Linux and the Internet of Things