>
MENU

Sfidatevi: chi conosce meglio la storia di Linux?

skypelogo.jpg

Skype annuncia la versione 2.0 per Linux

17 marzo 2008 Visualizzazioni: 497 Software

Ubuntu: risolvere i problemi con i driver nVidia

I repository di Ubuntu offrono ormai da tempo una completa gamma di driver per schede video nVidia, sia open-source che proprietari. La comodità data dalla presenza di tali software è decisamente elevata in quanto limita lo sforzo dell’utente ad un semplice apt-get che installi tutto il necessario. Capita spesso però che dopo una rimozione dei driver in questione non sia più possibile la reinstallazione.

nvidia_logo3.jpg

Si parla dei pacchetti nvidia-glx-legacy e nvidia-glx-new con relative dipendenze. Le indicazioni proposte in questa guida prendono in considerazione i primi driver, ma il procedimento per la risoluzione del problema è identico per entrambi. Il problema in questione è quello riscontrato da molti utenti che, durante la reinstallazione dei pacchetti, ritrovano un output simile al seguente nel loro terminale:

Reading package lists… DoneBuilding dependency tree       Reading state information… DoneSuggested packages:  nvidia-legacy-kernel-source nvidia-settingsThe following NEW packages will be installed:  nvidia-glx-legacy0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.Need to get 3068kB/3068kB of archives.
Unpacking nvidia-glx-legacy (from …/nvidia-glx-legacy_71.86.01+2.6.24.2-2.8_i386.deb) …dpkg-divert: `diversion of /usr/lib/libGL.so.1 to /usr/lib/nvidia/libGL.so.1.xlibmesa by nvidia-glx-legacy’ clashes with `diversion of /usr/lib/libGL.so.1 to /usr/lib/nvidia/libGL.so.1.xlibmesa by nvidia-glx-new’dpkg: error processing /var/cache/apt/archives/nvidia-glx-legacy_71.86.01+2.6.24.2-2.8_i386.deb (-unpack): subprocess pre-installation script returned error exit status 2Errors were encountered while processing: /var/cache/apt/archives/nvidia-glx-legacy_71.86.01+2.6.24.2-2.8_i386debE: Sub-process /usr/bin/dpkg returned an error code (1)

L’errore è da ricercare nelle stringhe:

dpkg-divert: `diversion of /usr/lib/libGL.so.1 to /usr/lib/nvidia/libGL.so.1.xlibmesa by nvidia-glx-legacy’ clashes with `diversion of /usr/lib/libGL.so.1 to /usr/lib/nvidia/libGL.so.1.xlibmesa by nvidia-glx-new’

In pratica il sistema rileva dei conflitti a causa di libGL, ma è tutto facilmente risolvibile editando il file diversions in /var/lib/dpkg.

Cosa evitare
Non bisogna agire d’istinto. �? probabile che l’utente medio possa tentare l’eliminazione di libGL per evitare il conflitto, ma non è questa la soluzione e decidere di prender questa strada porterebbe a conseguenze alquanto sconvenienti, verrebbero infatti disinstallati tutti i seguenti pacchetti:

  • alacarte
  • ubufox
  • apturl
  • gnome-compiz-manager
  • compizcompiz-gnome
  • compiz-plugins
  • compiz-fusion-plugins-main
  • compiz-fusion-plugins-extra
  • compiz-core
  • f-spot
  • fast-user-switch-applet
  • libglut3
  • freeglut3
  • gdebi
  • gdm
  • update-notifier
  • update-manager
  • gnome-app-install
  • software-properties-gtk
  • network-manager-gnome
  • gnome-netstatus-applet
  • gksu
  • gnome-applets
  • nautilus-cd-burner
  • nautilus
  • gnome-terminal
  • gnome-session
  • gnome-panel
  • gnome-control-center
  • gnome-screensaver
  • hwdb-client-gnome
  • libgksu1.2-1
  • serpentine
  • python-gnome2-extras
  • libgksu2-0
  • libgksuui1.0-1
  • libglu1-mesa-dev
  • libgl1-mesa-dev
  • libgl1-mesa-dri
  • rss-glx
  • xscreensaver-gl
  • ttf-thai-tlwg

Rimarreste senza nemmeno l’interfaccia grafica; in caso abbiate inconsciamente già tentato questa opzione, ecco il comando da lanciare per reinstallare il tutto:

sudo apt-get install alacarte ubufox apturl gnome-compiz-manager compizcompiz-gnome compiz-plugins compiz-fusion-plugins-main compiz-fusion-plugins-extra compiz-core f-spot fast-user-switch-applet libglut3 freeglut3 gdebi gdm update-notifier update-manager gnome-app-install software-properties-gtk network-manager-gnome gnome-netstatus-applet gksu gnome-applets nautilus-cd-burner nautilus gnome-terminal gnome-session gnome-panel gnome-control-center gnome-screensaver hwdb-client-gnome libgksu1.2-1 serpentine python-gnome2-extras libgksu2-0 libgksuui1.0-1 libglu1-mesa-dev libgl1-mesa-dev libgl1-mesa-dri rss-glx xscreensaver-gl ttf-thai-tlwg

Soluzione
Riuscire ad installare i driver nVidia una volta incontrato il problema sopra riportato è piu facile di quanto possa sembrare, si tratta semplicemente di editare il file diversions in /var/lib/dpkg/, aprite dunque il terminale e lanciate il comando che segue:

sudo nano /var/lib/dpkg/diversions

Ovviamente sostituendo eventualmente nano con il vostro editor di testo preferito. Il testo del file dovrebbe essere simile a questo:

/bin/sh
/bin/sh.distrib
dash
/usr/share/man/man1/sh.1.gz
/usr/share/man/man1/sh.distrib.1.gz
dash
/usr/lib/xorg/modules/libGLcore.so
/usr/lib/nvidia/libGLcore.so.xlibmesa
nvidia-glx-new
/usr/lib/xorg/modules/libglx.so
/usr/lib/nvidia/libglx.so.xlibmesa
nvidia-glx-new
/usr/lib/xorg/modules/libwfb.so
/usr/lib/nvidia/libwfb.so.xserver-xorg-core
nvidia-glx-new
/usr/lib/libGL.so.1
/usr/lib/nvidia/libGL.so.1.xlibmesa
nvidia-glx-legacy
/usr/lib/libGL.so.1.2
/usr/lib/nvidia/libGL.so.1.2.xlibmesa
nvidia-glx-legacy

A questo punto dovete eliminare tutte le stringhe relative ad nvidia, magari semplicemente facendole precedere da un cancelletto (#), nel nostro caso:

/bin/sh
/bin/sh.distrib
dash
/usr/share/man/man1/sh.1.gz
/usr/share/man/man1/sh.distrib.1.gz
dash
#/usr/lib/xorg/modules/libGLcore.so
#/usr/lib/nvidia/libGLcore.so.xlibmesa
#nvidia-glx-new
#/usr/lib/xorg/modules/libglx.so
#/usr/lib/nvidia/libglx.so.xlibmesa
#nvidia-glx-new
#/usr/lib/xorg/modules/libwfb.so
#/usr/lib/nvidia/libwfb.so.xserver-xorg-core
#nvidia-glx-new
#/usr/lib/libGL.so.1
#/usr/lib/nvidia/libGL.so.1.xlibmesa
#nvidia-glx-legacy
#/usr/lib/libGL.so.1.2
#/usr/lib/nvidia/libGL.so.1.2.xlibmesa

Salvate e chiudete l’editor, quindi tornate a reinstallare i driver tramite apt-get o Synaptic. A questo punto non dovreste riscontrare gli stessi errori iniziali.

di Simone Cavalcanti - TuxJournal.net
GNU/Linux Experience

twittergoogle_pluslinkedinmail