Nvidia LibGL and RELENG_7 linuxulator
Boris Samorodov
bsam at ipt.ru
Sat Oct 27 07:23:22 PDT 2007
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]
> >> >> >> 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.
> 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.
> >> 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.
> >> 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.
> 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
--
Boris Samorodov (bsam)
Research Engineer, http://www.ipt.ru Telephone & Internet SP
FreeBSD committer, http://www.FreeBSD.org The Power To Serve
More information about the freebsd-emulation
mailing list