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