Pagina 1 di 1

Problema Mesa 6.4 repository e driver NVidia

Inviato: sab 5 nov 2005, 15:12
da aLe46
HO un problema con il pacchetto della libreria mesa 6.4 e il driver invidia .

Quando installo questo pacchetto , non funziona più l'accelerazione grafica e l'installer nvidia mi avvisa che sono stati effettuati dei cambiamenti ...

una volta reinstallato il driver per l'accelerazione questa riprende a funzionare ma, non vengono trovate le librerie mesa (che però sono installate ed in precedenza venivano rilevate )

qualcuno ha avuto questo problema?

saluti

Inviato: sab 5 nov 2005, 21:00
da gohanz
Si sono andato a ricontrollare. Il pacchetto Mesa3d installa 5 librerie una di queste Libgl.so va a sovrascrivere la liberia Opengl che viene installata con il driver Nvidia. Ora devo provare a modificare il pacchetto senza che la libreria Nvidia venga toccata.

Inviato: dom 6 nov 2005, 16:44
da gohanz
Il problema è documentato anche nel README presente all'interno dei driver NVIDIA

If there are other libraries whose "soname" conflicts with that of
the NVIDIA libraries, ldconfig may create the wrong symlinks. It is
recommended that you manually remove or rename conflicting libraries
(be sure to rename clashing libraries to something that ldconfig will
not look at -- we have found that prepending "XXX" to a library name
generally does the trick), rerun 'ldconfig', and check that the correct
symlinks were made. Some libraries that often create conflicts are
"/usr/X11R6/lib/libGL.so*" and "/usr/X11R6/lib/libGLcore.so*".

If the libraries checks out, then verify that the application is using
the correct libraries. For example, to check that the application
/usr/X11R6/bin/gears is using the NVIDIA libraries, you would do:

$ ldd /usr/X11R6/bin/gears
libglut.so.3 => /usr/lib/libglut.so.3 (0x40014000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x40046000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x40062000)
libc.so.6 => /lib/libc.so.6 (0x4009f000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x4018d000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40196000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x401ac000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x401c0000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x401cd000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x401d6000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x402ab000)
libm.so.6 => /lib/libm.so.6 (0x4048d000)
libdl.so.2 => /lib/libdl.so.2 (0x404a9000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404ac000)

Note the files being used for libGL and libGLcore -- if they are something
other than the NVIDIA libraries, then you will need to either remove the
libraries that are getting in the way, or adjust your ld search path.
If any of this seems foreign to you, then you may want to read the man
pages for "ldconfig" and "ldd" for pointers.


Il modo più semplice per risolvere e lasciare intatti i driver NVIDIA e quello di modifcare lo SlackBuild di MESA3D e ricompilarlo.
Io ho inserito una riga che fa in modo che la libreria lib.GL.so non venga sovrascritta dalla libreria OpenGl di Mesa 3d. Installando però tutte le altre librerie e Header di Mesa3d


#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://mesa3d.org/
# Packagers Gohanz ( gohanz@infinito.ii)
# http://www.slacky.it


CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-Mesa
NAME=Mesa
VERSION=6.4
TARGET=i486
ARCH=${ARCH:-i486}
BUILD=2AS


if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi

cd $TMP
tar xvjf $CWD/MesaDemos-$VERSION.tar.bz2
tar xvjf $CWD/MesaGLUT-$VERSION.tar.bz2
tar xvjf $CWD/MesaLib-$VERSION.tar.bz2

cd $NAME-$VERSION
chown -R root.root .

make linux-x86



mkdir -p $PKG/usr/doc/$NAME-$VERSION
cp -a $TMP/$NAME-$VERSION/docs/COPYING \
$PKG/usr/doc/$NAME-$VERSION

( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs strip -g 2> /dev/null
)

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

mkdir -p $PKG/usr/include
mkdir -p $PKG/usr/lib
mkdir -p $PKG/usr/share/mesa3d/docs
mkdir -p $PKG/usr/share/mesa3d/progs

cp -f -r $TMP/$NAME-$VERSION/include/* $PKG/usr/include
cp -f -d $TMP/$NAME-$VERSION/lib/* $PKG/usr/lib
rm $PKG/usr/lib/libGL.so.1.5.060400
cp -f $TMP/$NAME-$VERSION/docs/* $PKG/usr/share/mesa3d/docs/
find $TMP/$NAME-$VERSION/progs/ -perm -755 -exec cp {} /$PKG/usr/share/mesa3d/progs/ \;


cd $PKG
makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz

if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi


Oppure si puo procedere a mano. Nel caso in cui ci sia un conflitto con i driver Nvidia e il TGZ presente in Download cancellando la libreria lib.GL.so.1.5.06.0400 e link relativi. E poi reinstallando i driver Nvidia

Inviato: dom 6 nov 2005, 17:49
da aLe46
Ho provato a cancellare la libGL.so.1.5.060400 e i relativi link a mano e reinstallare i driver NV ma continuano a non fungere le openGL...

root@darkstar:/usr/lib# ls libGL* -l
-rw-r--r-- 1 root root 653 2005-11-06 17:40 libGL.la
lrwxrwxrwx 1 root root 10 2005-11-06 17:40 libGL.so -> libGL.so.1*
lrwxrwxrwx 1 root root 17 2005-11-06 17:40 libGL.so.1 -> libGL.so.1.0.7676*
-rwxr-xr-x 1 root root 518220 2005-11-06 17:40 libGL.so.1.0.7676*
lrwxrwxrwx 1 root root 11 2005-11-06 17:38 libGLU.so -> libGLU.so.1*
lrwxrwxrwx 1 root root 20 2005-11-06 17:38 libGLU.so.1 -> libGLU.so.1.3.060400*
-rwxr-xr-x 1 root root 2877857 2005-11-04 14:34 libGLU.so.1.3.060400*
lrwxrwxrwx 1 root root 21 2005-11-06 17:40 libGLcore.so.1 -> libGLcore.so.1.0.7676*
-rwxr-xr-x 1 root root 7794936 2005-11-06 17:40 libGLcore.so.1.0.7676*
lrwxrwxrwx 1 root root 11 2005-11-06 17:38 libGLw.so -> libGLw.so.1*
lrwxrwxrwx 1 root root 15 2005-11-06 17:38 libGLw.so.1 -> libGLw.so.1.0.0*
-rwxr-xr-x 1 root root 121002 2005-11-04 14:34 libGLw.so.1.0.0*

root@darkstar:/usr/lib# ldd /usr/X11R6/bin/glxgears
libglut.so.3 => /usr/X11R6/lib/libglut.so.3 (0x40030000)
libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0x40067000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x400e0000)
libm.so.6 => /lib/libm.so.6 (0x4015f000)
libc.so.6 => /lib/libc.so.6 (0x40182000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4029b000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40365000)
libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x4037c000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40384000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x40392000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x4044a000)
libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x40453000)
libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0x40bbd000)
libdl.so.2 => /lib/libdl.so.2 (0x40bbf000)
/lib/ld-linux.so.2 (0x40000000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40bc3000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40c14000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40c1c000)

Inviato: dom 6 nov 2005, 18:01
da aLe46
Anche installando i driver nvidia con l'opzione --no-opengl-headers non cambia nulla...

Inviato: dom 6 nov 2005, 20:01
da gohanz
Eppure vedo che le librerie OpenGl Nvidia vengono caricate. Sul mio computer nella maniera che ti ho detto risolvo. Dopo aver modificato i collegamenti delle librerie hai dato ldconfig?
Devo anche provare con la versione di driver che hai tu, io ne ho una meno recente.
L'opzione --no-opengl-headers non esiste, già di default l'installer Nvidia non copia gli header per compilare i programmi OPenGl.
L'opzione è -opengl-headers che serve appunto ad installarli

Inviato: dom 6 nov 2005, 21:53
da aLe46
gohanz ha scritto: L'opzione --no-opengl-headers non esiste, già di default l'installer Nvidia non copia gli header per compilare i programmi OPenGl.
L'opzione è -opengl-headers che serve appunto ad installarli
root@darkstar:~# less /usr/doc/NVIDIA_GLX-1.0/README.txt | grep no-opengl-headers
OpenGL header files not be installed, you can pass the --no-opengl-headers
"--no-opengl-headers" option to the .run file during installation.

Inviato: dom 6 nov 2005, 22:05
da gohanz
Avranno cambiato opzioni allora con il 7174 che sto usando non c'è.

[RISOLTO] :D

Inviato: mar 8 nov 2005, 19:18
da aLe46
Ho risolto il problema aggiungendo in /etc/profile la seguente riga :

export "LD_PRELOAD=/usr/lib/libGL.so.1"


saluti
:D

Inviato: mer 9 nov 2005, 8:17
da gohanz
Meno male buono a sapersi :D