View Single Post
Old 11-05-07, 05:06 AM   #8
Chronos_
Registered User
 
Chronos_'s Avatar
 
Join Date: Sep 2007
Posts: 7
Default Re: A question please (does work for anybody ?)

EDIT: The original post was WRONG. /compat/linux/sbin/ldconfig -r /compat/linux works fine. I suspect it is linux_dri causing the issue I saw. So I've updated the instructions:

First, REMOVE linux_dri with pkg_deinstall -f linux_dri followed by pkgdb -F just in case it was required by anything. it should delete the dependency with an "irrelevant" message. Then portupgrade -f nvidia-driver to make sure the libGL.so in ${LINUXBASE}/usr/lib is the nvidia variant symlinked to libGL.so.100.14.19. Your ${LINUXBASE}/usr/lib (usually /usr/compat/linux/usr/lib) should look like this (ignore libGLU for a moment, it's not relevant at this point):
Code:
/usr/compat/linux/usr/lib $ ls -l | grep libGL
lrwxr-xr-x    1 root  wheel        18  3 Nov 19:01 libGL.so.1 -> libGL.so.100.14.19
-r--r--r--    1 root  wheel    609200  3 Nov 19:01 libGL.so.100.14.19
lrwxrwxrwx    1 root  wheel        31  4 Nov 23:55 libGLU.so.1 -> ../../usr/X11R6/lib/libGLU.so.1
lrwxr-xr-x    1 root  wheel        22  3 Nov 19:01 libGLcore.so.1 -> libGLcore.so.100.14.19
-r--r--r--    1 root  wheel  10080488  3 Nov 19:01 libGLcore.so.100.14.19
Now execute "/usr/compat/linux/sbin/ldconfig" changing the path to wherever your linuxulator is installed. This is usually also called by the abi rc script at boot if linux_enable is set in rc.conf so a reboot will also achieve the same thing.

OK, that's the Linux side sorted. Now you'll probably want to check for missing bits like libGLU. Use ldd on your Linux binaries to check, but DO NOT reinstall linux_dri as it will bugger up your libs. The downside of this is that you don't get the Linux version of glxinfo to test that all this works. However, it works for me on three boxen.

A good indicator of a working state Linuxulator with nvidia-driver is this sort of output from ldd (with the Linux version of Eternal Lands as an example; the FreeBSD client segfaults all the time for me, whether built from the port or from el's CVS. It needs linux-libGLU from ports):
Code:
~/.elc/el $ ldd ./el.x86.linux.bin
./el.x86.linux.bin:
        libGL.so.1 => /usr/lib/libGL.so.1 (0x2833e000)
        libpthread.so.0 => /lib/obsolete/linuxthreads/libpthread.so.0 (0x283d5000)
        libz.so.1 => /usr/lib/libz.so.1 (0x28428000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x2843b000)
        libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0x28517000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28597000)
        libc.so.6 => /lib/obsolete/linuxthreads/libc.so.6 (0x285a1000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x286c1000)
        libm.so.6 => /lib/obsolete/linuxthreads/libm.so.6 (0x28794000)
        libdl.so.2 => /lib/libdl.so.2 (0x287ba000)
        libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x287be000)
        libnvidia-tls.so.1 => /usr/lib/libnvidia-tls.so.1 (0x29156000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x29158000)
        /lib/ld-linux.so.2 (0x2831f000)
Apologies for the long-windedness. It took me a while to sort this out myself in between getting my local package repository updated from xorg 7.2 to 7.3 and making sure everything is stable. Doom3 (I use it for benchmarking) also works in this configuration, so I assume most other Linux binaries will.
__________________
-.. . -.-. .... .-. --- -. --- ... ...-.-

Last edited by Chronos_; 11-09-07 at 06:29 AM.
Chronos_ is offline   Reply With Quote