Some Linux games (in fact, most) are still using
Enemy Territory or
Quake III Arena for example. Even if your sound subsystem is well configured (either with real
OSS or with
OSS emulation), you may encounter a no sound problem under these games.
Sometimes there’s an error message associated:
... /dev/dsp: Input/output error Could not mmap /dev/dsp
Here’s how to fix this:
First, get the name of the executable of the program you’re trying to launch. For quake3 it’s
quake3-smp.x86 if you have multiple CPU cores. Then, as root:
# echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
This should do it. Of course, replace
quake3.x86 by the actual name of your game’s executable file. You may try to replace direct by disable if the first doesn’t work.
- Side note 1: “card0” is right if you have only one sound card. If you have several cards, try also card1, card2, etc.
- Side note 2: the
sudofanatics (like me) will notice that:
$ sudo echo "whatever" > /somewhere/where/only/root/has/access
… doesn’t work. This is because the redirection “>” is made by the currently running shell (under your user account). Only the command
echo is done with root access, which is useless. You may use this instead:
$ echo "whatever" | sudo tee /somewhere/where/only/root/has/access
- Side note 3: For
Quake III Arena, you may want to try the open-source version of the engine. It works way better (for me, at least) than the ID version. They use
SDLfor the sound instead of
OSS, and it’s really nicer. Google for ioquake3 if you’re interested. It’s packaged at freshrpms too.