0,0 → 1,207 |
|
Info on using Mesa 3.0 with Linux Quake I and Quake II |
|
|
|
Disclaimer |
---------- |
|
I am _not_ a Quake expert by any means. I pretty much only run it to |
test Mesa. There have been a lot of questions about Linux Quake and |
Mesa so I'm trying to provide some useful info here. If this file |
doesn't help you then you should look elsewhere for help. The Mesa |
mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup |
might be good. |
|
Again, all the information I have is in this file. Please don't email |
me with questions. |
|
If you have information to contribute to this file please send it to |
me at brianp@elastic.avid.com |
|
|
|
Linux Quake |
----------- |
|
You can get Linux Quake from http://www.idsoftware.com/ |
|
Quake I and II for Linux were tested with, and include, Mesa 2.6. You |
shouldn't have too many problems if you simply follow the instructions |
in the Quake distribution. |
|
|
|
RedHat 5.0 Linux problems |
------------------------- |
|
RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas |
previous RedHat and other Linux distributions use "libc5" for its |
runtime C library. |
|
Linux Quake I and II were compiled for libc5. If you compile Mesa |
on a RedHat 5.x system the resulting libMesaGL.so file will not work |
with Linux Quake because of the different C runtime libraries. |
The symptom of this is a segmentation fault soon after starting Quake. |
|
If you want to use a newer version of Mesa (like 3.x) with Quake on |
RedHat 5.x then read on. |
|
The solution to the C library problem is to force Mesa to use libc5. |
libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems. |
|
Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following |
info: |
|
> I only know what works on a RedHat 5.0 distribution. RH5 includes |
> a full set of libraries for both libc5 and glibc. The loader ld.so |
> uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs |
> linked against libc5 while it uses the glibc libraries in /lib and |
> /usr/lib for programs linked against glibc. |
> |
> Anyway I changed line 41 of mklib.glide to |
> GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib" |
> |
> And I started quake2 up with a script like this |
> #!/bin/csh |
> setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib |
> setenv MESA_GLX_FX f |
> ./quake2 +set vid_ref gl |
> kbd_mode -a |
> reset |
|
|
I've already patched the mklib.glide file. You'll have to start Quake |
with the script shown above though. |
|
|
|
********************** |
|
Daryll Strauss writes: |
|
Here's my thoughts on the problem. On a RH 5.x system, you can NOT build |
a libc5 executable or library. Red Hat just doesn't include the right |
stuff to do it. |
|
Since Quake is a libc5 based application, you are in trouble. You need |
libc5 libraries. |
|
What can you do about it? Well there's a package called gcc5 that does |
MOST of the right stuff to compile with libc5. (It brings back older |
header files, makes appropriate symbolic links for libraries, and sets |
up the compiler to use the correct directories) You can find gcc5 here: |
ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm |
|
No, this isn't quite enough. There are still a few tricks to getting |
Mesa to compile as a libc5 application. First you have to make sure that |
every compile uses gcc5 instead of gcc. Second, in some cases the link |
line actually lists -L/usr/lib which breaks gcc5 (because it forces you |
to use the glibc version of things) |
|
If you get all the stuff correctly compiled with gcc5 it should work. |
I've run Mesa 3.0B6 and its demos in a window with my Rush on a Red Hat |
5.1 system. It is a big hassle, but it can be done. I've only made Quake |
segfault, but I think that's from my libRush using the wrong libc. |
|
Yes, mixing libc5 and glibc is a major pain. I've been working to get |
all my libraries compiling correctly with this setup. Someone should |
make an RPM out of it and feed changes back to Brian once they get it |
all working. If no one else has done so by the time I get the rest of my |
stuff straightened out, I'll try to do it myself. |
|
- |Daryll |
|
|
|
********************* |
|
David Bucciarelli (tech.hmw@plus.it) writes: |
|
I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is |
working fine for me. I had only to make a small change to the |
Mesa-3.0/mklib.glide file, from: |
|
|
GLIDELIBS="-L/usr/local/glide/lib -lglide2x |
-L/usr/i486-linux-libc5/lib -lm" |
|
to: |
|
GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x" |
|
and to make two symbolic links: |
|
[david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2 |
[david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2 |
|
I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it |
includes also the Glide for the libc5). I'm not using the /dev/3Dfx and |
running QuakeII as root with the following env. var: |
|
export |
LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib |
|
I think that all problems are related to the glibc, Quake will never |
work if you get the following output: |
|
[david@localhost Mesa]$ ldd lib/libMesaGL.so |
libglide2x.so => /usr/lib/libglide2x.so (0x400f8000) |
libm.so.6 => /lib/libm.so.6 (0x40244000) |
libc.so.6 => /lib/libc.so.6 (0x4025d000) |
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000) |
|
You must get the following outputs: |
|
[david@localhost Mesa]# ldd lib/libMesaGL.so |
libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so |
(0x400f3000) |
|
[root@localhost quake2]# ldd quake2 |
libdl.so.1 => /lib/libdl.so.1 (0x40005000) |
libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000) |
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000) |
|
[root@localhost quake2]# ldd ref_gl.so |
libMesaGL.so.2 => |
/dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000) |
libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so |
(0x401d9000) |
libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 |
(0x40324000) |
libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 |
(0x403b7000) |
libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1 |
(0x403c1000) |
libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000) |
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000) |
|
|
*********************** |
|
Steve Davies (steve@one47.demon.co.uk) writes: |
|
|
Try using: |
|
export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib |
./quake2 +set vid_ref gl |
|
to start the game... Works for me, but assumes that you have the |
compatability libc5 RPMs installed. |
|
|
*************************** |
|
WWW resources - you may find additional Linux Quake help at these URLs: |
|
|
http://quake.medina.net/howto |
|
http://webpages.mr.net/bobz |
|
http://www.linuxgames.com/quake2/ |
|
|
|
---------------------------------------------------------------------- |