Forums » Linux

libGLU,so.1 confusion

Nov 16, 2005 stranger link
I'm switching from Slackware to Gentoo on a amd64 box that I built. I never played VO on the Slackware but did on Gentoo on my laptop. Both have a nvidia graphics card so the nvidia drivers are nothing new to me. I've got xorg and the nvidia drivers running just fine but whenever I try to start VO I get "Fatal Error: Couldn't open window." The errors.log says that gkgl.so can't find libGLU.so.1. I did find a package that installs libGLU but it was installed to /emul/linux/x86/usr/lib/ I tryed to make a symlink to it from /usr/lib and /usr/lib32 but nether worked. ldd gkgl.so still can't find libGLU.so.1

Any suggestions?
Nov 17, 2005 Beolach link
Which Gentoo profile are you using? You can see that by running "ls -l /etc/make.profile". Different Gentoo profiles have different multilib capabilities, which affects if & where 32 & 64 bit versions of libraries are installed. And which version of the nvidia drivers do you have (use "emerge -vp nvidia-kernel nvidia-glx" to find out).

Are you using the 32-bit or 64-bit version of Vendetta? The 32-bit version relies on the 32-bit libraries, which would be what's installed in the /emul/linux/x86/usr/lib directory (but only in old profiles, newer profiles should put libGLU.so.1 in /usr/lib32 for the 32-bit version or /usr/lib for the 64-bit version). The 64-bit version will use the native 64-bit libraries, in either /usr/lib or /usr/lib64. You can download the 64-bit Vendetta updater here: http://a1k0n.net/vendetta/vendetta-linux64 and refer to this thread for more details on the 64-bit version of Vendetta: http://www.vendetta-online.com/x/msgboard/6/9425

Also, be careful how you make symlinks. You just linked the libGLU file itself, not the directory it was in, right? Symlinking the lib directories can cause serious headaches.

[edit]
On my system:
beolach@mandalor ~/.vendetta $ ls -l /etc/make.profile
lrwxrwxrwx 1 root root 48 Apr 22 2005 /etc/make.profile -> /usr/portage/profiles/default-linux/amd64/2005.0/

beolach@mandalor ~/.vendetta $ emerge -vp nvidia-kernel nvidia-glx

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild R ] media-video/nvidia-kernel-1.0.7676-r1 0 kB
[ebuild R ] media-video/nvidia-glx-1.0.7676-r2 -dlloader 0 kB

beolach@mandalor ~/.vendetta $ file vendetta update.rlb
vendetta: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for GNU/Linux 2.4.1, stripped
update.rlb: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for GNU/Linux 2.4.1, stripped

beolach@mandalor ~/.vendetta $ ldd drivers/gkgl.so
ldd: warning: you do not have execution permission for `drivers/gkgl.so'
libGL.so.1 => //usr/lib/opengl/nvidia/lib/libGL.so.1 (0x00002aaaaac16000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00002aaaaadc4000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00002aaaaaf48000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00002aaaab129000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x00002aaaab23b000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00002aaaab340000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/libstdc++.so.6 (0x00002aaaab455000)
libm.so.6 => /lib/tls/libm.so.6 (0x00002aaaab646000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaab7cc000)
libc.so.6 => /lib/tls/libc.so.6 (0x00002aaaab8d7000)
libGLcore.so.1 => //usr/lib/opengl/nvidia/lib/libGLcore.so.1 (0x00002aaaabafd000)
libnvidia-tls.so.1 => //usr/lib/opengl/nvidia/lib/libnvidia-tls.so.1 (0x00002aaaac30b000)
libdl.so.2 => /lib/libdl.so.2 (0x00002aaaac40c000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
[/edit]
Nov 17, 2005 stranger link
Profile-amd64/2005.1
nvidia-kernel-1.0.7676-r1
nvidia-glx-1.0.7676-r2
vendetta and update.rlb is the 64bit version

Unfortunatly I'm sick and drinking the "Big F*cking Q" so I didn't think about the 32bit libs in /emul/linux/x86/usr/lib/ So I now need to find a way to get the 64bit libGLU. The only package I've found that has it is mesa and it's masked.

As for the symlinks it's only linked to the file. Easy to get rid of.

Thanks for the info.
Nov 18, 2005 Beolach link
What do you get when you run "equery belongs libGLU.so.1"? When I run that I find that app-emulation/emul-linux-x86-xlibs installs the 32-bit libGLU.so, and x11-base/xorg-x11 installs the 64-bit. Since you're running the 64-bit Vendetta client, it should link to the 64-bit libGLU.so, which should be installed with X... no idea why it's not being found. Maybe try reemerging x11-base/xorg-x11 and then seeing if /usr/lib/libGLU.so.1 exists.

beolach@mandalor ~ $ equery belongs libGLU.so.1.3
[ Searching for file(s) libGLU.so.1.3 in *... ]
app-emulation/emul-linux-x86-xlibs-2.1-r1 (/emul/linux/x86/usr/lib/libGLU.so.1.3)
x11-base/xorg-x11-6.8.2-r6 (/usr/lib64/libGLU.so.1.3)
Nov 18, 2005 stranger link
It's Alive!

Thanks much Beolach. I don't understand why Xorg didn't install libGLU in the first place but it's there now and works great.

Thanks again.