LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Games (http://www.linuxquestions.org/questions/linux-games-33/)
-   -   Quake 3, openGL issues, FC2 64bit (http://www.linuxquestions.org/questions/linux-games-33/quake-3-opengl-issues-fc2-64bit-234937/)

Zurvan 09-24-2004 09:20 PM

Quake 3, openGL issues, FC2 64bit
 
Hi all, I seem to be having some issues with getting quake 3 to run. I have gotten the ut2004 demo (64 bit) to work fine, but quake 3 does not want to play nice. I modified the install script for quake 3 to not complain about the 64 bit arch and it installed with out a hitch. When I go to run it though it gives me this error:
./quake3
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or current dir: /usr/local/games/quake3/libGL.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem

my ld.so.conf file looks like this:
more ld.so.conf
include ld.so.conf.d/*.conf
/usr/X11R6/lib
/usr/X11R6/lib64
/usr/lib64/qt-3.3/lib
/usr/lib

In /usr/lib/ there is a libGLU.so.1, but I don't think that is what quake 3 is looking for. The only other similar file is found in /usr/lib64/ and that is called libGL.so.1, but if I link that file into the quake 3 directory quake does not even notice it, and still gives me the same error.

The system specs can be found on on my home page, on the comp.html page.
The links go to newegg (i was lazy and did not want to copy the pages). Can anyone give me an idea as to what is wrong, and more to the point, how to fix it.

Thank you
-Z

spuzzzzzzz 09-26-2004 06:16 PM

What do you get if you do
Code:

file /usr/lib/libGLU.so.1; file /usr/lib64/libGLU.so.1
Is there a /usr/lib32?

The problem here is that quake3 was compiled in 32 bits, so it will only be able to use 32-bit libs. You need to make sure it gets linked against 32-bit libs. The solution in my case (in gentoo) was to do
Code:

LD_LIBRARY_PATH=/usr/lib32 quake3
which tells the linker to link against the 32-bit libs in /usr/lib32. In your case, the 32-bit libs may be in /usr/lib.

Linking /usr/lib64/libGLU.so.1 to the quake directory was the wrong thing; try linking a 32-bit libGLU.so.1 to the quake3 directory instead. Or, you could just not link anything, and set LD_LIBRARY_PATH instead.

Zurvan 09-26-2004 11:14 PM

I will have to give that a try. I know that I do not have a lib32 directory, so I am hoping that the 32bit lib's are in the /usr/lib directory.

- Z

Zurvan 09-27-2004 07:35 AM

Thank you for the help, here is the results of the commands you asked me to run.
file /usr/lib/libGLU.so.1
/usr/lib/libGLU.so.1: symbolic link to `../../usr/X11R6/lib/libGLU.so.1'
file /usr/lib64/libGLU.so.1
/usr/lib64/libGLU.so.1: symbolic link to `../../usr/X11R6/lib64/libGLU.so.1'

Here is what happens when I run quake3 with the LD_LIBRARY_PATH set.
LD_LIBRARY_PATH=/usr/lib quake3
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or current dir: /usr/local/games/quake3/libGL.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem


Here is what happens when I try to set the driver with +set r_gldriver
LD_LIBRARY_PATH=/usr/lib quake3 +set r_gldriver libGLU.so.1
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGLU.so.1: QGL_Init: Can't load libGLU.so.1 from /etc/ld.so.conf or current dir: /usr/local/games/quake3/libGLU.so.1: cannot open shared object file: No such file or directory
failed
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or current dir: /usr/local/games/quake3/libGL.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem

Is there something I am missing, as quake3 does not seem to notice any files I set with the +set r_gldriver command.

-Z

spuzzzzzzz 09-27-2004 08:20 AM

OK, try the following:
Code:

file /usr/X11R6/lib/libGLU.so.1
file /usr/X11R6/lib/lib64GLU.so.1

If these are symbolic links, too, then "file" whatever they are links to.
Here is what I get on my (gentoo) machine:
Code:

$ file /usr/lib/libGLU.so.1
/usr/lib/libGLU.so.1: symbolic link to `libGLU.so.1.3'
$ file /usr/lib/libGLU.so.1.3
/usr/lib/libGLU.so.1.3: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
$ file /usr/lib32/libGLU.so.1.3
/usr/lib32/libGLU.so.1.3: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

That last output is the one you want to find. SInce the LD_LIBRARY_PATH doesn't seem to work, just link the 32-bit lib to the quake3 base directory. And try with/without the +set r_gldriver.

Zurvan 09-27-2004 09:36 AM

Ok, here is the result from both of those commands:
file /usr/X11R6/lib/libGLU.so.1
/usr/X11R6/lib/libGLU.so.1: symbolic link to `libGLU.so.1.3'

file /usr/X11R6/lib64/libGLU.so.1
/usr/X11R6/lib64/libGLU.so.1: symbolic link to `libGLU.so.1.3'

file /usr/X11R6/lib/libGLU.so.1.3
/usr/X11R6/lib/libGLU.so.1.3: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped

file /usr/X11R6/lib64/libGLU.so.1.3
/usr/X11R6/lib64/libGLU.so.1.3: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped

So then I did the following:
link /usr/X11R6/lib/libGLU.so.1.3 /usr/local/games/quake3/libGL.so.1

then tried to run quake3 and got the following:
./quake3
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or c
urrent dir: libGL.so.1: cannot open shared object file: No such file or director
y
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem

It still does not see the file .... should I try to re-install quake3? When I installed quake3 i edited the install script so that I would think that I had an i386 system, could that be the issue?

-Z

spuzzzzzzz 09-27-2004 05:47 PM

OK, I've just realised that I'm being pretty stupid ;) First of all, quake3 is looking for libGL.so.1, not libGLU.so.1. You need to find a libGL.so.1. The second thing is that the libGL* in the X11R6 directory will contain a software implementation of opengl. You probably want to use the implementation provided by you graphics card manufacturer or else it will be really slow. If you haven't already done so, you need to install the binary (32-bit) drivers for your video card. On my system (nvidia card), the drivers are located in /usr/lib32/opengl/nvidia/lib/libGL.so.1 (which is a link to libGL.so.1.6111). I have created a quake3 script in /usr/bin
Code:

#!/bin/sh
cd "/opt/quake3"
LD_LIBRARY_PATH="/usr/lib32/opengl/nvidia/lib" exec ./quake3.x86 "$@"

and it runs fine.

Zurvan 09-27-2004 06:17 PM

Ok, but I thought that the latest nvidia drivers, 6111, also included 32bit versions as well (or at least that is what the readme said) :confused: ? As for finding libGL.so.1, the only one that I could find that matched was in the /usr/lib64, which is linked to libGL.so.1.0.6111. When I ran file on that, I got back this:
Code:

file /usr/lib64/libGL.so.1.0.6111
/usr/lib64/libGL.so.1.0.6111: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), stripped

As for installing the 32bit drivers for the nvidia card, would that effect my 64bit drivers?

-Z

spuzzzzzzz 09-27-2004 06:53 PM

You can extract the 32-bit drivers by getting the archive and doing "sh NVIDIA--Linux-x86_64-1.0-6111-pkg2.run -x". The 32-bit drivers will then be located in ./NVIDIA-Linux-x86_64-1.0-6111-pkg2/usr/lib32/
You probably don't even have to install them to /usr/lib; try just specifying that directory in LD_LIBRARY_PATH. If that doesn't work, copy or link the ./NVIDIA-Linux-x86_64-1.0-6111-pkg2/usr/lib32/libGL.so.1.6111 to /usr/loca/games/quake3/libGL.so.1

Zurvan 09-28-2004 04:20 PM

ok, I did the command that you told me to use to extract the 32bit drivers. I then copied them into /usr, so I now have a /usr/lib32/ directory. I then linked the file into the quake3 directory:
Code:

link /usr/lib32/libGL.so.1.0.611 /usr/local/games/quake3/libGL.so.1
Then I ran quake, and got the following:
Code:

quake3
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or current dir: libGLcore.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem

So then I added linked the libGLcore.so.1.0.611 into quake3:
Code:

link /usr/lib32/libGLcore.so.1.0.6111 /usr/local/games/quake3/libGLcore.so.1
then ran quake3 and got the following error:
Code:

quake3
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or current dir: libGLcore.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem

So then I tried to use the command LD_LIBRARY_PATH="/usr/lib32" ./quake3.x86
and got this msg
Code:

LD_LIBRARY_PATH="/usr/lib32" ./quake3.x86
Q3 1.32b linux-i386 Nov 14 2002
----- FS_Startup -----
Current search path:
/home/whitehole/.q3a/baseq3
/usr/local/games/quake3/baseq3/pak8.pk3 (9 files)
/usr/local/games/quake3/baseq3/pak7.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak6.pk3 (64 files)
/usr/local/games/quake3/baseq3/pak5.pk3 (7 files)
/usr/local/games/quake3/baseq3/pak4.pk3 (272 files)
/usr/local/games/quake3/baseq3/pak3.pk3 (4 files)
/usr/local/games/quake3/baseq3/pak2.pk3 (148 files)
/usr/local/games/quake3/baseq3/pak1.pk3 (26 files)
/usr/local/games/quake3/baseq3/pak0.pk3 (3539 files)
/usr/local/games/quake3/baseq3
./quake3.x86/baseq3

----------------------
4073 files in pk3 files
execing default.cfg
couldn't exec q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok

------- Input Initialization -------
Joystick is not active.
------------------------------------
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----
...loading libGL.so.1: QGL_Init: Can't load libGL.so.1 from /etc/ld.so.conf or current dir: libGLcore.so.1: cannot open shared object file: No such file or directory
failed
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: GLimp_Init() - could not load OpenGL subsystem

Is there something I am not doing right or some file I need to change in order for quake3 to work? I also added the directory to the ld.so.conf in hopes that, that would fix it and I got the same error, can'f find libGL.so.1.

-Z

spuzzzzzzz 09-28-2004 06:50 PM

Well, we've made some progress, anyway: now it can't find libGLcore.so .1 instead of libGL.so.1 ;).
Since you have the libs in /usr/lib32, delete any links you have made to the quake3 base directory. It might find the link to libGL.so.1 in the base directory and assume that the other libs should be there too (maybe that's something to try too: for every FILENAME.so.1.6111 in /usr/lib32, link it to /usr/local/games/quake3/$FILENAME.so.1). After modifying /etc/ld.so.conf, make sure you run ldconfig. Then look in the /usr/lib32 directory and see if it's put in the symbolic links.

Zurvan 09-28-2004 08:35 PM

Yahoo!

It works ... well sort of. I did the comand ldconfig ... and poof, I loaded up quake 3, yay, it works. Now for the part where it dies. As the sound card is a CMI8768, and is not supported in the current driver release by nvidia's Nforce drivers. The system thinks it is another CMI chipset, and as such there is no sound. That kills quake3, as it can't initialize the sound system. Other then that all looks good. Is there a way I can tell quake3 to start with the sound off? Nothing else seems to have an issues with the sound chip not working quite right.

-Z

spuzzzzzzz 09-29-2004 03:01 AM

Just for the sake of archiving useful information, what did you have to do (besides ldconfig) to get it running? Did you set LD_LIBRARY_PATH or use +set r_gldriver or create any symbolic links?

As for the sound, you can always use the "dummy" sound driver. I don't know what the module is called, but look for it in /lib/modules/`uname -r`/kernel/sound/. If it isn't there, you may need to recompile your kernel with support for dummy sound. You might find it useful to modify your startup scripts (this part is distro-dependent so I can't help) to load the dummy sound module on boot.

Zurvan 09-29-2004 09:37 AM

This is what I ended up having to do to get quake working for fedora core 2, with a amd64 chip. First I downloaded the nvidia drivers for my nvidia card. Installed them, (there are howto on how to do that on this forum). Then downloaded the quake3 point relase which can be found here:
http://www.planetquake3.net/download...tails&lid=1763
then do a
Code:

sh ./linuxq3apoint-1.32b-2.x86.run --keep
, this will extract out the file that you need even if the installer dies. Now the installer should have died, so cd into "setup.tmp". Now you are going to want to edit the setup.sh file. Goto line 49, and change it from what it is to
Code:

echo "x86"
Now run the installer
Code:

sh ./setup.sh
. That should finish and you are now going to have to extract the 32bit drivers for video card (if you have not done so already). For nvidia cards you will need to do a
Code:

sh NVIDIA--Linux-x86_64-1.0-6111-pkg2.run -x
. Now cd into the temp directory that it has made and copy to /usr, the lib32 directory. Now you need to add this to the ld.so.conf file, (or at least I did). Now run ldconfig so that the changes will be added to system. Next you need to link the gldriver into the quake 3 directory. I did it by using the command
Code:

link /usr/lib32/libGL.so.1.0.611 /usr/local/games/quake3/libGL.so.1
. Lastly the pak0 file is copied from the cd to the /usr/local/games/quake3/baseq3/ directory. Now run quake 3 with ./quake3 from the quake 3 directory and the game should come up, and run like a champ.

I got the code for changing the install script for quake3 from a forum that I can't remember right now, I will add the link to it when I find it again.

I would like to thank spuzzzzzzz for all his help getting me going with quake3.

-Z


All times are GMT -5. The time now is 08:38 PM.