Nvidia LibGL and RELENG_7 linuxulator
Zephiris
zephiris at gmail.com
Sun Oct 28 19:02:19 PDT 2007
Boris Samorodov wrote:
> On Fri, 26 Oct 2007 18:46:49 -0700 Zephiris wrote:
>> Boris Samorodov wrote:
>> > On Fri, 26 Oct 2007 03:45:54 -0700 Zephiris wrote:
>> >> Boris Samorodov wrote:
>> >> > On Thu, 25 Oct 2007 23:31:44 -0700 Zephiris wrote:
>> >> >> Boris Samorodov wrote:
>> >> >> > On Sat, 20 Oct 2007 16:44:12 -0700 Zephiris wrote:
>> >> >> >
>> >> >> >> >> >> I've been getting a rather strange issue between Nvidia
>> >> >> >> >> >> driver and the linux compatibility.
>> >> >> >> >> >
>> >> >> >> >> >> I've tried this with default Fedora Core 4 libraries,
>> >> >> >> >> >> default 2.4 version emulation, 2.6.16, FC6, F7, and now
>> >> >> >> >> >> Gentoo. With older Linux X11 libraries
>> >> >> >> >> >
>> >> >> >> >> > As of 2.6.16: did you follow instructions from
>> >> >> >> >> > /usr/ports/UPDATING while upgrade to 2.6.16?
>> >> >> >> >
>> >> >> >> >> I just tried it again explicitly following those
>> >> >> >> >> instructions from the start, identical results.
>> >> >> >> >
>> >> >> >> >> >> (eg, those from ports), anything trying to use Nvidia's
>> >> >> >> >> >> libGL that installs into the linux compat area will crash
>> >> >> >> >> >> immediately. To get this
>> >> >> >> >> >
>> >> >> >> >> > Crash... Did you ugrade your system and may be forgot to
>> >> >> >> >> > upgrade the port? Or did you upgrade the OS without
>> >> >> >> >> > reinstalling ports?
>> >> >> >> >
>> >> >> >> >> This was a pretty fresh installation from CURRENT, not a
>> >> >> >> >> long upgrade chain or from 6.x. Everything's up to date. Via
>> >> >> >> >> ports itself, there's no way to get newer X11 libraries than
>> >> >> >> >> 6.8 itself, correct?
>> >> >> >> >
>> >> >> >> > If you mean linux libraries then yes.
>> >> >> >> >
>> >> >> >> > OK. can you describe in details how do you install
>> >> >> >> > ports/options/etc to populate /compat/linux from scratch? And
>> >> >> >> > which options do you use for nvidia-driver port and other
>> >> >> >> > *GL* ports?
>> >> >> >
>> >> >> >> I install in order emulators/linux_base-fc6,
>> >> >> >> x11/linux-xorg-libs, x11/nvidia-driver (with ACPI and LINUX
>> >> >> >> flags), x11-toolkits/linux-gtk2, then x11-toolkits/linux-gtk.
>> >> >> >> It's enough to test a number of things.
>> >> >> >
>> >> >> > So far so good. Did you try to use a linux-app here? Acrobat
>> >> >> > Reader or else?
>> >> >
>> >> > Nobody can help you if you don't want to.
>> >
>> >> Other non-GL apps work alright when everything is installed via
>> >> ports, including X11 and otherwise. Acrobat Reader works,
>> >> linux-firefox works, linux-opera works, etc.
>> >
>> > OK, good. Thanks for the answer.
>> >
>> >> >> >> >> ldd glxinfo
>> >> >> >> >> glxinfo:
>> >> >> >> >> libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0x2806a000)
>> >> >> >> >> libGL.so.1 => /usr/lib/libGL.so.1 (0x280eb000)
>> >> >> >> >
>> >> >> >> > That is very strange. This library should be at least at
>> >> >> >> > /usr/local/lib directory. Can you show an output of
>> >> >> >> > "pkg_info -W /usr/lib/libGL.so.1"?
>
> I'd like to get an answer for this question. [2]
pkg_info -W /usr/lib/libGL.so.1
pkg_info: /usr/lib/libGL.so.1: file cannot be found
>
>> >> >> >> That's for a linux glxinfo.
>> >> >> >
>> >> >> > Don't understand you answer. Is it from ports? Or does you
>> >> >> > installed it by hand?
>> >> >> It's from linux_dri, so put there by hand,
>> >> >
>> >> > Can't follow you: "It's from ports, so put it somewhere by hand..."
>> >
>> >> Okay, a different example then. Neverwinter Night's nwmain installed
>> >> from ports (against regular FC6 and everything else specifically via
>> >> ports):
>> >
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> > Seems you are misleading yourself. Take a look at [1]. Those libraries
>> > do not belong to the base system.
>
>> No, that's why they're installed via ports? Pretty clear?
>
> Fair enough. But you didn't prove it (give an answer for [2]) and
> still show that libraries from ports got installed to /usr/lib.
> If you don't change a default configuration they should go either to
> /usr/local or /compat/linux. If not then the port is broken and it's
> worth a PR.
Running ldd on a linux binary doesn't prepend /compat/linux/ to the output.
Nothing's actually in /usr/lib.
>
>> Why would any of
>> the linux compatibility libraries be installed as "part of the base
>> system"?
>
> This is just the question I wanted to ask you. ;-)
> With the default configuration they shouldn't.
>
>> >> nwmain:
>> >> libm.so.6 => /lib/libm.so.6 (0x28642000)
>> >> libpthread.so.0 => /lib/libpthread.so.0 (0x2866a000)
>> >> libGL.so.1 => /usr/lib/libGL.so.1 (0x28680000)
>> > ^^^^^^^^^^^^^^^^^^^ [1]
>
> Seconded [2] and do you really have /usr/lib/libGL.so.1 (a file or a
> link etc.)? Or is a linuxbase (/compat/linux) is somehow got stripped?
> So far seems that it is a main question. 'cause this file can be at
> /usr/local/lib, /usr/X11R6/lib, /compat/linux/ but not at /usr/lib.
I don't know why ldd doesn't add /compat/linux, but it's pretty obvious via
the output when something's a FreeBSD binary vs. a Linux one.
>
>> >> libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0x28716000)
>> >> libmss.so.6 => not found
>> >> libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0x28796000)
>> > ^^^^^^^^^^^^^^^^^^^^^^^^ [1]
>> >> libc.so.6 => /lib/libc.so.6 (0x2881c000)
>> >> /lib/ld-linux.so.2 (0x28623000)
>> >> libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x28960000)
>> > ^^^^^^^^^^^^^^^^^^^^^^^ [1]
>> >> libnvidia-tls.so.1 => /usr/lib/libnvidia-tls.so.1
>> >> (0x292f8000)
>> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [1]
>> >> libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x292fa000)
>> >> libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x29309000)
>> >> libdl.so.2 => /lib/libdl.so.2 (0x293dc000)
>> >> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x293e1000)
>> >> libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x294ca000)
>> >
>> >> > Anyway this configuration is not supported by the FreeBSD-emulation
>> >> > team.
>> >
>> >> Alright, switching back over to ports everything again,
>> >
>> > Hope, it's clear to you that you didn't succeed in it.
>
>> /compat/linux/usr/lib/libSDL-1.2.so.0 was installed by package
>> linux-sdl-1.2.10,1
>> /compat/linux/usr/lib/libGL.so.100.14.19 was installed by package
>> nvidia-driver-100.14.19
>> /compat/linux/usr/lib/libGLcore.so.100.14.19 was installed by package
>> nvidia-driver-100.14.19
>> /compat/linux/usr/lib/libnvidia-tls.so.100.14.19 was installed by
>> package nvidia-driver-100.14.19
>
> That's good.
>
>> (the respective Nvidia libraries are symlinks to the longer versioned
>> ones)
>
> And this is not clear. Symlinked to where? As far as I can see to
> /usr/lib which shouldn't happen.'
>
lrwxr-xr-x 1 root wheel 18B Oct 26
01:31 /compat/linux/usr/lib/libGL.so.1 -> libGL.so.100.14.19
Etc.
>> >> the issues of
>> >> everything that tries to load OpenGL crashing still persist. Running
>> >> ktrace+linux_kdump doesn't appear to yield any pattern of behavior or
>> >> calls before the segfault.
>> >
>> > Actually you get a system which may fault any time (I mean
>> > linuxulator). You don't have a control over your system now.
>> > Linux (and may be other) libraries are spread here and there.
>> >
>> > I'd recommend you reinstalling the system from scratch, sorry.
>
>> As I've said, I've done that several times already. You suggested that
>> before, and I did it again then.
>
> If you give answers to some questions and leave alone others -- I have
> to deal with it. Hence I may give wrong recommendations, sorry.
>
>> Did it change the result? No. Everything
>> in /compat/linux/ right now is only what's there installed via
>> ports.
>
> Everithing in /compat/linux was never a question at this thread. But
> /usr/lib has been.
>
>> I'm
>> not mixing and matching or spreading around anything.
>
> OK, there is enough questions at this letter to prove your point.
>
>> Again, the only things there right now are official ports, hence no
>> libglut or glxinfo now, either.
>
> BTW, about glx. I installed it at a test host (without nvidia stuff)
> and here it is:
> -----
> # uname -srm
> FreeBSD 7.0-BETA1 i386
> # ldd `which glxinfo`
> /usr/local/bin/glxinfo:
> libglut.so.4 => /usr/local/lib/libglut.so.4 (0x28080000)
> libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x280b7000)
> libGL.so.1 => /usr/local/lib/libGL.so.1 (0x28134000)
> libXext.so.6 => /usr/local/lib/libXext.so.6 (0x28195000)
> libXmu.so.6 => /usr/local/lib/libXmu.so.6 (0x281a3000)
> libXi.so.6 => /usr/local/lib/libXi.so.6 (0x281b8000)
> libX11.so.6 => /usr/local/lib/libX11.so.6 (0x281c0000)
> libm.so.5 => /lib/libm.so.5 (0x282ac000)
> libthr.so.3 => /lib/libthr.so.3 (0x282c1000)
> libc.so.7 => /lib/libc.so.7 (0x282d4000)
> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x283d1000)
> libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x284bb000)
> libXxf86vm.so.1 => /usr/local/lib/libXxf86vm.so.1 (0x284c6000)
> libXdamage.so.1 => /usr/local/lib/libXdamage.so.1 (0x284cb000)
> libXfixes.so.3 => /usr/local/lib/libXfixes.so.3 (0x284ce000)
> libdrm.so.2 => /usr/local/lib/libdrm.so.2 (0x284d3000)
> libXau.so.6 => /usr/local/lib/libXau.so.6 (0x284e2000)
> libXt.so.6 => /usr/local/lib/libXt.so.6 (0x284e5000)
> libSM.so.6 => /usr/local/lib/libSM.so.6 (0x28535000)
> libICE.so.6 => /usr/local/lib/libICE.so.6 (0x2853d000)
> libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x28554000)
> librpcsvc.so.4 => /usr/lib/librpcsvc.so.4 (0x28559000)
> -----
>
> Libraries from ports and base system are at the designed directories.
That's a FreeBSD binary, though.
ldd `which glxinfo`
/usr/local/bin/glxinfo:
libglut.so.4 => /usr/local/lib/libglut.so.4 (0x2807f000)
libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x280b5000)
libGL.so.1 => /usr/local/lib/libGL.so.1 (0x28130000)
libXext.so.6 => /usr/local/lib/libXext.so.6 (0x281d1000)
libXmu.so.6 => /usr/local/lib/libXmu.so.6 (0x281df000)
libXi.so.6 => /usr/local/lib/libXi.so.6 (0x281f5000)
libX11.so.6 => /usr/local/lib/libX11.so.6 (0x281fd000)
libm.so.5 => /lib/libm.so.5 (0x282e8000)
libthr.so.3 => /lib/libthr.so.3 (0x282fd000)
libc.so.7 => /lib/libc.so.7 (0x2830f000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x28408000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x284f0000)
libGLcore.so.1 => /usr/local/lib/libGLcore.so.1 (0x28503000)
libnvidia-tls.so.1 => /usr/local/lib/libnvidia-tls.so.1
(0x28e54000)
libXau.so.6 => /usr/local/lib/libXau.so.6 (0x28e56000)
libXt.so.6 => /usr/local/lib/libXt.so.6 (0x28e59000)
libSM.so.6 => /usr/local/lib/libSM.so.6 (0x28ea8000)
libICE.so.6 => /usr/local/lib/libICE.so.6 (0x28eb0000)
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x28ec7000)
librpcsvc.so.4 => /usr/lib/librpcsvc.so.4 (0x28ecc000)
>
>> The only thing thus far which doesn't work as
>> expected is accelerated OpenGL. That's why I'm trying hard to get it
>> working, and have suggested alternatives, but with everything at
>> suggested and stated defaults, all linux apps will apparently do is
>> crash once they try to load libGL.so.1. If I knew why or had been able
>> to find an answer, I'd include it. That's why I suggested that
>> specifically might just be an interaction with the older X11 libraries,
>> too, but I'm not the expert.
>
> All you use (but linux_base-fc6) is a default configuration. It should
> work. Let's find out why it doesn't.
>
>
> WBR
More information about the freebsd-emulation
mailing list