aboutsummaryrefslogtreecommitdiffstats
path: root/code/unix/LinuxSupport/index.html
blob: 73cfc34d13eafc5eb03d945d16ce1abbb9f6db40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>
  <title>Linux Quake III Arena Known issues</title></head>

<body text="#000000" bgcolor="#ffffff">
<font size="+2"><b>Linux Quake III Arena Known issues</b></font><br>
<i>Known issues and frequently asked questions - 1.32b</i><br>
<br>
<a href="mailto:ttimo@idsoftware.com">TTimo</a><br>
<i>Changes history</i><br>
2004.2.20 Last update<br>
2001.6.18 Initial version
<hr size="1"><br>
<font size="+1">Current topics</font>
<ul>
  <li><a href="#install">Installation instructions</a></li>
  <li><a href="#setupfiles">What do I do with a .x86.run file?</a></li>
  <li><a href="#glibc">The setup crashes with <i>Segmentation fault "$setup" "$@" 2>/dev/null</i></a></li>
  <li><a href="#bsd">Installation on BSD</a></li>
  <li><a href="#auth">CLIENT_UNKNOWN_TO_AUTH</a></li>
  <li><a href="#pk3">Sys_Error: Couldn't load default.cfg / Sys_Error: FS_FreeFile(
NULL )</a></li>
  <li><a href="#setupbug29h">I get <i>./setup.sh {: ==: binary operator expected</i>
when running the setup?</a></li>
  <li><a href="#hints">The game doesn't start, I have performance problems,
etc.</a></li>
  <li><a href="#aureal">Aureal sound drivers</a></li>
  <li><a href="#nosound">The sound doesn't work / sound crashes</a></li>
  <li><a href="#discuss">Where can I report bugs and discuss about linux
Quake III Arena?</a></li>
  <li><a href="#gameso">The *.so files are not in the setups? (<i>cgamei386.so
qagamei386.so uii386.so</i>)</a></li>
  <li><a href="#vm_game">I get <i>Sys_Error: Sys_LoadDll(..) failed dlopen()
completely!</i> when running quake3?</a></li>
  <li><a href="#3dnow">I have an AMD CPU and a kernel 2.4.*, Quake III Arena
is slowing down to a complete stop after a while?</a></li>
  <li><a href="#gamma">How do I set up the gamma correction?</a></li>
  <li><a href="#browser">Servers don't show up in the ingame browser</a></li>
  <li><a href="#libsafe">Detected an attempt to write across stack boundary</a></li>
  <li><a href="#libmesa">libMesaVoodooGL.so</a></li>
  <li><a href="#UDPwide">Running a LAN dedicated server with multiple network
interfaces</a></li>
  <li><a href="#64bits">Setup and execution on 64 bits CPUs</a></li>
  <li><a href="#links">Links</a></li>
</ul>
<hr size="1"><font size="+1"><a name="install"><b>Installation instructions</b></a></font>
<a name="install"><br>
</a>
<p><a name="install">Linux Quake III Arena is using a graphical installer
(based on Loki software's </a><a href="http://www.icculus.org/loki_setup/">Setup Graphic Installer
</a>). 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 <a href="http://zerowing.idsoftware.com/linux/q3a/INSTALL">INSTALL</a>file
(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).</p>
<font size="+1"><a name="setupfiles"><b>What do I do with a .x86.run file?</b></a></font>
<a name="setupfiles"><br>
</a>
<p>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 <i>chmod +x file.x86.run</i>
to make them executable.</p>
<font size="+1"><a name="glibc"><b>The setup crashes with <i>Segmentation fault "$setup" "$@" 2>/dev/null</i></b></a></font>
<p>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 <i>--keep</i> to extract the files 
(look for a <i>setup*</i> directory in the current directory for the extracted setup). 
Then replace <i>setup.data/bin/Linux/x86/setup</i> by <a href="http://zerowing.idsoftware.com/linux/setup-RH9/setup">this newer version</a>. Run <i>setup.sh</i> at top level and things should work fine.</p>
<p>
<b>Update</b>: 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'.
</p>
<font size="+1"><a name="bsd"><b>Installation on
BSD</b></a></font><a name="bsd"><br>
</a>
<p><a name="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 <i>ELF binary type "0" not known</i>
while installing or trying to run the binaries, that means you need to run
<i>brandelf</i> on the files.</a></p>
<p><a name="bsd">If it's a setup problem, proceed with the following steps:
</a></p>
<pre><a name="bsd">./linuxq3apoint-1.31.x86.run --keep<br>brandelf -t Linux setup.tmp/setup.data/bin/FreeBSD/x86/setup<br>cd setup.tmp<br>sh ./setup.sh<br></a></pre>
<p><a name="bsd">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).</a></p>
<p><a name="bsd">The game binaries might need to be brandelf'ed too, with
a command such as</a></p>
<pre><a name="bsd">brandelf -t Linux /usr/local/games/quake3/quake3.x86<br></a></pre>
<a name="bsd"></a><font size="+1"><a name="auth"><b>CLIENT_UNKNOWN_TO_AUTH</b></a></font>
<a name="auth"><br>
</a>
<p><a name="auth">Graeme Devine recently updated his <i>.plan</i> with very
complete </a><a href="http://www.webdog.org/cgi-bin/finger.plm?id=279&amp;time=20011210020942" target="_new">information about CLIENT_UNKNOWN_TO_AUTH errors</a>.</p>
<p>
See some additional information from the <a href="http://www.gameadmins.com/modules.php?name=Mail_List">gameadmins.com mailing list</a>:
</p> 
<pre>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)
</pre>
<font size="+1"><a name="pk3"><b>Sys_Error: Couldn't load default.cfg / Sys_Error:
FS_FreeFile( NULL )</b></a></font><br>
<p>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.</p>
<font size="+1"><a name="setupbug29h"><b>I get <i>./setup.sh {: ==: binary
operator expected</i> when running the setup?</b></a></font><a name="setupbug29h"><br>
</a>
<p><a name="setupbug29h">This is a known issue to 1.29h setups and prior.
It happens on systems with bash  version &lt; 2.*. There are several solutions:<br>
- 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 <i>setup-full</i>
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.</a></p>
<a name="setupbug29h"></a><font size="+1"><a name="hints"><b>The game doesn't
start, I have performance problems, etc.</b></a></font><br>
<p>The first thing to do is to check on the forums and various FAQs (this
one, but  there are others. See the <a href="#links">links</a>). The Quake3World
forums have a great search function.</p>
<p>Before reporting the problem to <a href="mailto:ttimo@idsoftware.com">me</a>
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 <i>gears</i>is running
for instance, and how well it runs). And see if non-Id linux games are running
fine too.</p>
<p>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.</p>
<p>Include general information about your OS:<br>
</p>
<ul>
  <li>Motherboard brand, CPU type, RAM</li>
  <li>distribution name and version</li>
  <li>kernel / OS info (from <i>uname -a</i>)</li>
  <li>libc version (<i>ls -l /lib/libc.so.*</i>)<br>
 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.)</li>
</ul>
<p>If it's a problem with the client, send the output of <i>glxinfo</i>.</p>
<p>If you have an nvidia board, send the output of <i>cat /proc/nv/card0</i>
</p>
<p>Send output of the run:<br>
run the game with <i>+set developer 1</i> option, and send the output. You
can do something like <i>quake3 +set developer 1 &amp;&gt;q3run.log</i>.</p>
<p>If it's a crash, you can send a backtrace of the game running  through
<i>gdb</i>.</p>
<p>You can also send a log of the game running with <i>strace</i>:</p>
<pre>cd /usr/local/games/quake3<br>strace -o ~/strace.log ./quake3.x86<br></pre>
<p>NOTE: please <b>avoid</b> sending me the <i>strace</i> of <i>/usr/local/games/quake3/quake3</i>,
which is a shell script wrapper and probably no interest to your problem.
</p>
<font size="+1"><a name="aureal"><b>Aureal sound drivers</b></a></font><a name="aureal"><br>
</a>
<p><a name="aureal">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 </a><a href="http://aureal.sourceforge.net/" target="_new">Aureal's website</a>fixed
the problem.</p>
<p>If you need to know more about this, have a look at this <a href="http://www.quake3world.com/ubb/Forum15/HTML/001348.html" target="_new">Q3W forum thread</a>.</p>
<font size="+1"><a name="nosound"><b>The sound doesn't work / sound crashes</b></a></font><br>
<p>The first thing to check is that it is actually a sound related.  Run
the game with <i>+set s_initsound 0</i> and see what happens.  All problems
reported so far about sound turned out to be OS/drivers.  Listed below:</p>
<p>On some Mandrake distributions:<br>
Check if you are running the enlightenment sound daemon (esd). With <i>ps
aux | grep esd</i>for instance. It is a multiplexer for /dev/dsp, and might
block use of /dev/dsp by Quake III Arena. You can disable esd with <i>esdctl
stop</i> (as root).</p>
<p><b><a href="http://www.linux-mandrake.com/">Mandrake 8</a></b>'s default
sound drivers seem broken, installing the <a href="http://www.alsa-project.org/" target="_new">Alsa drivers</a> or the
 <a href="http://www.opensound.com/">http://www.opensound.com</a>  drivers
fixes the problem.</p>
<p>Some beta <a href="http://www.alsa-project.org/" target="_new">Alsa drivers</a>
have  been reported to crash with Q3. Non-beta ones are fine.</p>
<p>VIA chipset and AC97 driver:<br>
This combination is known to have various issues. They have been fixed in
recent drivers (thanks to Arne Schmitz for the heads up):<br>
</p>
<pre>http://sourceforge.net/projects/gkernel has got the up to date version of <br>the AC97 kernel driver. The current version can be found here:<br><br>http://prdownloads.sourceforge.net/gkernel/via82cxxx-1.1.15.tar.gz<br><br>It has working mmap sound, so Q3 shouldn't be a problem any more.<br></pre>
(thanks to Arne Schmitz for the heads up)<p></p>

<font size="+1"><a name="discuss"><b>Where can I report bugs and discuss about linux Quake III
Arena?</b></a></font><a name="discuss"><br>
</a>
<p><a name="discuss">Reports bugs to </a><a href="mailto:bugs@idsoftware.com">bugs@idsoftware.com</a>. If you are pretty
sure this is a linux-only issue, you can shorten the loop by emailing <a href="mailto:ttimo@idsoftware.com">ttimo@idsoftware.com</a> directly.</p>
<p>You will find the discussion forums for linux Quake III Arena on <a href="http://www.quake3world.com/cgi-bin/forumdisplay.cgi?action=topics&amp;forum=*nix+Discussion&amp;number=15&amp;DaysPrune=30&amp;LastLogin=">
Quake3World forums</a>. 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.</p>
<font size="+1"><a name="gameso"><b>The *.so files are not in the setups?
(<i>cgamei386.so qagamei386.so uii386.so</i>)</b></a></font><a name="gameso"><br>
</a>
<p><a name="gameso">If you still have <i>baseq3/*.so</i> and <i>missionpack/*.so</i>
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.</a></p>
<p><a name="gameso">If you are upgrading from 1.27g, it is likely that your
<i>q3config.cfg</i> files are set to use the native libraries (*.so files)
instead of the bytecode. Run quake3 with the following options to set things
right:<br>
<i>quake3 +set vm_game 2 +set vm_cgame 2 +set vm_ui 2</i></a></p>
<a name="gameso"></a><font size="+1"><a name="vm_game"><b>I get <i>Sys_Error:
Sys_LoadDll(..) failed dlopen() completely!</i>when running quake3?</b></a></font><a name="vm_game"><br>
</a>
<p><a name="vm_game">Try running quake3 with the following options:<br>
<i>quake3 +set vm_game 2 +set vm_cgame 2 +set vm_ui 2</i><br>
You should also read the </a><a href="#gameso">above answer</a>.</p>
<font size="+1"><a name="3dnow"><b>I have an AMD CPU and a kernel 2.4.*,
Quake III Arena is slowing down to a complete stop after a while?</b></a></font><br>
<p>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.</p>
<font size="+1"><a name="gamma"><b>How do I set up the gamma correction?</b></a></font><br>
<p>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 <b>r_gamma</b>
manually from the console, and issue a <b>vid_restart</b> command.</p>
<font size="+1"><a name="browser"><b>Servers don't show up in the ingame
browser</b></a></font>
<p>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)</p>
<font size="+1"><a name="libsafe"><b>Detected an attempt to write across
stack boundary</b></a></font>
<p>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 <a href="http://www.mudos.org/?faq" target="_new">this page</a> for more details.
</p>
<font size="+1"><a name="libmesa"><b>libMesaVoodooGL.so</b></a></font>
<p>The GL driver for Voodoo cards (libMesaVoodoGL.so) used to be distributed
in older Q3 setups. <b>This is no longer the case.</b> If you have this .so
in your Quake III Arena directory (<i>/usr/local/games/quake3</i>), 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.</p>
<font size="+1"><a name="UDPwide"><b>Running a LAN dedicated server with
multiple network interfaces</b></a></font>
<p>A LAN dedicated server will use the <i>net_ip</i> 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.<br>
</p>
<p>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:<br>
<a href="http://zerowing.idsoftware.com/linux/q3a/udp_wide_broadcast.patch">udp_wide_broadcast.patch</a><br>
<a href="http://zerowing.idsoftware.com/linux/q3a/udp_wide_README.txt">udp_wide_README.txt</a><br>
The equivalent <a href="http://www.bsdchicks.com/patches/">patch for FreeBSD</a>
is available too.<br>
 </p>
<font size="+1"><a name="64bits"><b>Setup and execution on 64 bits CPUs</b></a></font><br>
<p>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).</p>
<p>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</p>
<font size="+1"><a name="links"><b>Links</b></a></font><br>
<p>The <a href="http://www.icculus.org/lgfaq" target="_new">Linux Gamer's
faq</a> is a very good resource for general Linux Gaming topics.</p>
<p>Also at <a href="http://www.icculus.org/" target="_new">icculus.org</a>,
the <a href="http://www.icculus.org/lgfaq/loki/q3faq.html" target="_new">old
Q3 FAQ from Loki Software</a>.</p>
<p><a href="http://www.quake3world.com/ubb/Forum15/HTML/000529.html">Quake3World's
linux FAQ</a></p>
<br>
</body></html>