View Single Post
Old 05-29-08, 10:42 AM   #1
arundel
Registered User
 
Join Date: May 2008
Posts: 36
Default Unable to run linux 3d apps

Hi there.

I've had this issue with driver versions 171.06, 173.08 and 173.14.05. Whenever I try to run a linux application that uses 3d, the application crashes. Here are some examples:

linux-quake4:

Quote:
Initializing SDL subsystem
Loading GL driver 'libGL.so.1' through SDL
Initializing SDL subsystem
Loading GL driver 'libGL.so.1' through SDL
Fatal Error: Unable to initialize OpenGL
--------------- BSE Shutdown ----------------
---------------------------------------------
idRenderSystem::Shutdown()
Sys_Error: Unable to initialize OpenGL
linux-doom3 (app remains running though and must be killed by hand):

Quote:
Setup X display connection
dlopen(libGL.so.1)
Illegal instruction: 4
linux-ut2004 produces no output at all and simply hangs after a few seconds of hdd activity. the app can be ended with ctrl+c giving me the following output:

Quote:
CTRL-C before main loop ... forcing exit.
i'm running emulators/linux_base-f8 and compat.linux.osrelease is set to "2.6.20". However switching to an older linux_base port doesn't solve the issue.

and to be sure the linux libraries are installed:

Quote:
[arundel@linux - 04:28 pm] pwd
/usr/home/arundel/NVIDIA-FreeBSD-x86-173.14.05/obj/linux
[arundel@linux - 04:28 pm] for i in *; do diff -s $i /compat/linux/usr/lib/$i; done
Files libGL.so.173.14.05 and /compat/linux/usr/lib/libGL.so.173.14.05 are identical
Files libGLcore.so.173.14.05 and /compat/linux/usr/lib/libGLcore.so.173.14.05 are identical
diff: /compat/linux/usr/lib/libcuda.so.173.14.05: No such file or directory
diff: /compat/linux/usr/lib/libnvidia-cfg.so.173.14.05: No such file or directory
Files libnvidia-tls.so.173.14.05 and /compat/linux/usr/lib/libnvidia-tls.so.173.14.05 are identical
I'm running FreeBSD 7.0-STABLE #0: Mon May 26 14:11:41 CEST 2008 and my graphic card is a GeForce 9600 GT. I searched a bit on google, but all I could find in connection with my problem were linux users who were running X in 16bit unstead of 24bit. I double checked by Xorg.conf and it's set to 24bit. I'm having no problem with the native freebsd quake3 executable e.g. which runs great at nearly 650 fps in timedemo mode.

I send in a bug report via mail a month ago or so, but since the issue still remains I'll give it another shot.

Cheers.

UPDATE:

I did some more research and came upon a few more details concerning my problem. First of all the error message quake4 produces is due to the fact that the linux GL libraries couldn't be found. Unfortunately id hasn't really been good in putting proper error messages into their games. So "Fatal Error: Unable to initialize OpenGL" in this case means that the libraries couldn't be found and quake4 is trying to make use of the freebsd GL libraries which obviously won't work. The reason the linux GL libraries couldn't be found is, because all id games I tested so far (except linux-doom3) have a hardcoded RPATH which points to "/usr/local/lib". Since the nvidia drivers get installed into /compat/linux/usr/lib id games won't find them. I tested this with the linux-enemy-territory-quake-wars demo an got the following error message (thanks to id for finally improving their error messages):
Quote:
WARNING: SDL_GL_LoadLibrary libGL.so.1 failed: Failed loading libGL.so.1: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid
So what i did was to create softlinks for the GL libraries pointing from /compat/linux/usr/lib/* to /compat/linux/usr/local/lib/. However I don't quite understand why if I re-install the nvidia drivers the links in /compat/linux/usr/local/ are being removed. What's the purpose of this?

Well. What happend after I performed the steps I described above was that all id games now output the same error message doom3 does. I checked a bit around and and signal 4 seems to be caused by missing SSE, SSE2 and SSE3 support. Now that's odd because I'm pretty sure my CPU supports all of those features:

taken from dmegs:
Quote:
CPU: Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz (1800.01-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x6fd Stepping = 13
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE ,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH, DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0xe39d<SSE3,RSVD2,MON,DS_CPL,EST,TM2,SSS E3,CX16,xTPR,PDCM>
AMD Features=0x20100000<NX,LM>
AMD Features2=0x1<LAHF>
Cores per package: 2
However I think I once read that freebsd itself doesn't support SSE3 yet. Well...Im out of ideas. ;)

Attached Files
File Type: log nvidia-bug-report.log (56.3 KB, 193 views)
arundel is offline   Reply With Quote