Originally Posted by zander
Which driver release are you using (please generate and attach an nvidia-bug-report.log file)? The NVIDIA FreeBSD graphics driver's Linux ABI compatibility support as such should work, at least there're no fundamental problems with it that I'm aware of. That said, there've been reports of problems (application crashes, specifically) with FreeBSD 8.0-CURRENT. The Linux libraries (libGL.so, etc.) should be installed to /compat/linux/usr/lib, not /usr/lib.
oh sorry. i guess i forgot to say that when i wrote /usr/lib i actually meant /compat/linux/usr/lib. my bad.
i installed 180.37 a few minutes ago. what happens when i try to run quake4 is that i get the following error message:
ERROR: SDL_GL_LoadLibrary libGL.so.1 failed: Failed loading libGL.so.1: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid
so it seems quake4 looks for libGL.so.1 in /usr/local/lib. the linuxulator translates that path to /compat/linux/usr/local/lib. since there's no libGL.so.1 in that path the linuxulator then looks in the actual path (/usr/local/lib). there it finds the freebsd version of libGL.so.1. however since that's not the one quake4 needs it outputs the error message i've posted above.
now...what i've done to resolve that issue is to copy all the nvidia libraries from /compat/linux/usr/lib to compat/linux/usr/local/lib. that's why i proposed that the NVIDIA driver installation not only installs the linux libraries to /compat/linux/usr/lib, but also creates symlinks to /compat/linux/usr/local/lib, because almost all the id software games look for the libGL.so.1 in a hardcoded path (being /usr/local/lib which get's wrapped by the linuxulator to /compat/linux/usr/local/lib).
when i run quake4 again i get this error message:
--------------- R_InitOpenGL ----------------
Initializing SDL subsystem
Loading GL driver 'libGL.so.1' through SDL
signal caught: Segmentation fault
Trying to exit gracefully..
--------------- BSE Shutdown ----------------
WARNING: rvServerScanGUI::Clear() - invalid scanGUI
i also tried running unreal tournament 2004 which doesn't look for libGL.so.1 in a hardcoded path. however the game also crashes with this error message (written to UT2004.log):
Log: Log file open, Mon Mar 9 17:08:32 2009
Init: Name subsystem initialized
Init: Version: 3369 (128.29)
Init: Compiled: Dec 16 2005 13:23:47
Init: Command line:
Init: (This is Linux patch version 3369.2)
Init: Character set: Unicode
Init: Base directory: /usr/local/games/ut2004/System/
Init: Ini:UT2004.ini UserIni:User.ini
Init: Build label: UT2004 Build UT2004_Build_[2005-11-23_16.22]
Init: Object subsystem initialized
Log: Initializing OpenGLDrv...
Log: binding libGL.so.1
Log: [ 1] ./ut2004-bin [0x874bdd9]
Log: [ 2] [0xbfbfffbb]
Log: Unreal Call Stack: UOpenGLRenderDevice::Init <- UGameEngine::Init <- InitEngine
Log: FileManager: Reading 0 GByte 33 MByte 783 KByte 22 Bytes from HD took 11.556140 seconds (11.556140 reading, 0.000000 seeking).
Log: FileManager: 0.000000 seconds spent with misc. duties
Uninitialized: Name subsystem shut down
Uninitialized: Allocation checking disabled
Uninitialized: Log file closed, Mon Mar 9 17:08:48 2009