Restaurar el funcionament del driver Nvidia

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

La instal·lació del driver Nvidia original substitueix unes llibreries del paquet X11 per uns enllaços. Si s'actualitzen els paquets corresponents al servidor X es perden aquests enllaços.

Truc

He trobat diversos problemes en el funcionament del servidor X quan fa servir el driver Nvidia original, per exemple:

  • no arranca OpenGL, veiem que els programes diuen que OpenGL no està disponible i si mirem el fitxer /var/log/Xorg.o.log diu que no es pot carregar la llibreria glx
  • el servidor X no deixa que Wine obri un programa, el fitxer /var/log/Xorg.o.log dona /usr/bin/X(xf86SigHandler+0x84) [0x80c4354]

a vegades aquests errors s'arreglen reinstal·lant completament el driver, però a vegades no. En tots aquests casos no fa falta reinstal·lar tant sols hem d'executar aquest escript:

#!/bin/bash -x
# nvidia-restore-links.sh

ln -sf /usr/X11R6/lib/modules/drivers/nvidia_drv.o /usr/lib/xorg/modules/drivers/nvidia_drv.o
ln -sf /usr/X11R6/lib/modules/drivers/nvidia_drv.so /usr/lib/xorg/modules/drivers/nvidia_drv.so
# (for backup purpose only)
mv -f /usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so-old

name=`find /usr/X11R6/lib/modules/extensions -type f -name libglx.so.1.0.*`
if [ -f "$name" ]; then
  ln -sf $name /usr/lib/xorg/modules/extensions/libglx.so
fi

exit 0

detecta la versió actual del driver i torna a crear els enllaços.

Referències

Si descomprimim el driver Nvidia , trobarem el fitxer NVIDIA-Linux-x86-1.0-9755-pkg1/usr/share/doc/README.txt on hi ha informació sobre els paràmetres del driver i la seva configuració.

Readme del driver a la Web Nvidia en format HTML