opensuse with nvidia displays no text in menu
#1
Hi,

I just discovered the solution for this with some helpful hints from opensuse forum moderator wolfi323. Since I couldn't find it here, I post it now, so it might help others:

Opensuse version is 13.1
Nvidia drivers tested are G02 (old cards) and G03
xbmc versions tested are Gotham as packaged on pacman and compiled from source. I also tested from todays git.

All combinations show the same result: when the xbmc/kodi fullscreen is displayed, there is no text in the menues.

The problem is a conflicting package Mesa-libGL1.
I had to force xbmc/kodi to use the Nvidia libGL by setting the library path.

Quick check:

Code:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/X11R6/lib64:/usr/X11R6/lib kodi

Permanent solution:

as root (needs re-login to take effect):
Code:
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/X11R6/lib64:/usr/X11R6/lib" >/etc/profile.d/force-nvidia-GL.sh
Reply
#2
the proper solution is to fix the nvidia driver package to install the correct libGL. You should open a bug for the opensuse nvidia package.
Reply
#3
The libgl is installed.
In the path I set in ld_library_path.
The system linker knows about that, even withour the variable set (configured in /etc/ld.so.conf.d/).
Every gl prog I tested finds the correct lib.
Even every subprocess of xbmc finds it (you can see that with strace).
Except for one process that for some reason chooses to ignore the system library search path.

Sorry, but I'm *sure* this is no distro bug!
Reply
#4
if you are sure its a xbmc bug, provide proper debug info with current master.
Reply
#5
I tracked the problem down a bit.

For some reason kodi explicitly sets the RUNPATH of the executable.
RUNPATH is used to direct the executable to some specialized lib that overrides a standard lib if needed.
It does not make sense here (to me at least), since RUNPATH is just set to the main standard library path /usr/lib64.
All other gl progs I checked have an empty RUNPATH. Why not kodi?

Code:
$ readelf --dynamic /usr/bin/glxgears | grep PATH
$ readelf --dynamic /usr/local/lib64/kodi/kodi.bin | grep PATH
0x000000000000000f (RPATH)              Library rpath: [/usr/lib64]
0x000000000000001d (RUNPATH)            Library runpath: [/usr/lib64]

I'll open a bug for this.

EDIT: Bug is here: http://trac.xbmc.org/ticket/15497
Reply
#6
for anyone stumbling on this, it turned out to be a silly thing opensuse does in their samba package. Details on the trac ticket.
Reply

Logout Mark Read Team Forum Stats Members Help
opensuse with nvidia displays no text in menu0