venerdì 16 dicembre 2011

Creazione ed installazione dei pacchetti del driver video ATI Catalyst 11.12 su Ubuntu 11.10

Nell'update del post "Disponibili i driver video ATI Catalyst 11.12" vi chiedevo di non procedere alla loro installazione dato che la procedura classica, quella che utilizza direttamente l'installer del driver con il comando

sudo sh nome_file_ati.run

con Ubuntu 11.10 (e sospetto anche su Ubuntu 11.04 con Unity ma non ho verificato) causa i problemi già visti nelle precedenti versioni del driver stesso: l'installazione va a buon fine, ma al momento di inizializzare il driver con il comando

sudo /usr/bin/aticonfig --initial

vi beccate l'errore

error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Cambiando però procedura d'installazione dei driver il problema si risolve, vediamo come.

La nuova procedura d'installazione che voglio proporvi, nuova rispetto a quella che vi avevo proposto tempo fa, non usa direttamente l'installer del driver per fare l'installazione, usa invece l'installer per creare dei pacchetti deb da installare successivamente con il gestore della vostra distribuzione.

In poche parole i passi da fare sono:
  1. installazione del software necessario sul vostro sistema;
  2. creazione dei pacchetti deb tramite l'installer;
  3. disinstallazione eventuali driver ATI Catalyst precedenti;
  4. riavvio del sistema;
  5. installazione dei pacchetti del nuovo driver;
  6. configurazione iniziale del driver;
  7. ravvio finale del sistema.
Procediamo un passo alla volta.


Installazione del software necessario sul vostro sistema

Questo passo è molto semplice, aprite il terminale e date il comando:

sudo apt-get install dkms build-essential linux-headers-generic

Inoltre, solo se la vostra distribuzione è a 64 bit, date anche il comando:

sudo apt-get install ia32-libs

Update: dalla versione 12.1 in poi dei driver ATI, a causa di nuove dipendenze necessarie alla creazione dei pacchetti, date anche i comandi:

sudo apt-get build-dep fglrx-installer
sudo apt-get install cdbs fakeroot dh-make debhelper debconf libstdc++6 libqtgui4 execstack libelfg0 dh-modaliases

Creazione dei pacchetti deb tramite l'installer

Ora ci serve la lista delle distribuzioni di cui si possono creare i relativi pacchetti d'installazione, ce lo dice l'installer con il comando:

sudo sh nome_file_ati.run --listpkg

L'installer alla data di questo post restituisce queste versioni di Ubuntu,

Ubuntu Packages:
Ubuntu/gutsy
Ubuntu/hardy
Ubuntu/intrepid
Ubuntu/jaunty
Ubuntu/karmic
Ubuntu/lucid
Ubuntu/maverick
Ubuntu/natty
Ubuntu/source
Ubuntu/oneiric

tenete però presente che la lista con il passare del tempo potrà modificarsi. Potreste trovare nuovi versioni di Ubuntu al momento non ancora disponibile, altre potrebbero non essere più presenti perché non più supportate.

Per sapere esattamente il nome della versione Ubuntu che state usando in questo momento date il comando:

lsb_release -c

Su Ubuntu 11.10 ad esempio otterrete questa stringa:

Codename:    oneiric

Notate, è l'ultima in basso nella lista sopra, quindi possiamo creare pacchetti per Ubuntu 11.10. Passiamo solo la stringa oneiric all'installer per fargli sapere che è quella la distribuzione che abbiamo e creare così i relativi pacchetti:

sudo sh nome_file_ati.run --buildpkg Ubuntu/oneiric

L'installer inizierà la procedura di creazione dei pacchetti deb del driver:

Generating package: Ubuntu/oneiric
Resolving build dependencies...

A questo punto non vi spaventate: l'installer nella seconda riga dice che sta verificando le dipendenze per la costruzione dei pacchetti, in altre parole controlla se ha a disposizione tutto il necessario per procedere.

Se si accorge che non è così, vedrete aprirsi una finestra che vi mostrerà il download di alcuni pacchetti; è appunto ciò che gli manca, lasciatelo fare. Quando avrà finito comparirà

Continuing package build

e se tutto va a buon fine dopo qualche minuto al massimo (quanti dipende dalla velocità del vostro sistema) comparirà il messaggio finale

fglrx-amdcccle_8.920-0ubuntu1_amd64.deb has been successfully generated

o qualcosa di simile, e nella directory da cui avete lanciato la creazione dei pacchetti ne compariranno 3 nuovi di zecca.

Complimenti, anche la seconda fase è conclusa.

Update: dalla versione 12.1 in poi dei driver ATI, se a causa delle nuove dipendenze necessarie alla creazione dei pacchetti avete dato anche i comandi:

sudo apt-get build-dep fglrx-installer
sudo apt-get install cdbs fakeroot dh-make debhelper debconf libstdc++6 libqtgui4 execstack libelfg0 dh-modaliases

e nonostante ciò i pacchetti continuano a non essere creati, il modo più semplice e veloce di risolvere definitivamente la questione è:
  • installare la vostra versione di Ubuntu in una macchina virtuale appena creata con VirtualBox;
  • iniziando nuovamente d'accapo l'intera procedura creare lì i pacchetti del driver;
  • portare i pacchetti così creati sulla macchina reale utilizzando le cartelle condivise.
In questo modo, a macchina virtuale appena installata, si evitano tutti i problemi di conflitti di versione che sulla macchina reale sarebbe difficile andare a trovare e correggere: ho provato questa procedura su Ubuntu 11.10 e Ubuntu 11.04 e ha funzionato correttamente.

Disinstallazione eventuali driver ATI Catalyst precedenti

Prima di poter installare i pacchetti appena creati, dobbiamo disinstallare eventuali driver ATI Catalyst già presenti sul vostro sistema. Il modo per farlo dipende da come erano stati installati a loro volta, vediamo i vari casi.

Installati con la procedura manuale? Allora

sudo sh /usr/share/ati/amd-uninstall.sh

oppure

sudo sh nome_file_ati.run --uninstall

dato che allo stesso installer dei driver ATI ha aggiunto la capacità di disinstallare quelli precedenti.

Installati da pacchetti deb ottenuti con la procedura spiegata sopra? Allora:

sudo apt-get remove fglrx fglrx-dev fglrx-amdcccle

Installati dal repository della distribuzione? Allora

sudo apt-get remove fglrx fglrx-amdcccle

oppure

sudo apt-get remove fglrx-updates fglrx-amdcccle-updates

a seconda se avete quelli originale forniti insieme ad Ubuntu 11.10, oppure avete installato gli upgrade alle versioni successive. In questo caso se siete nel dubbio, provate il primo comando, se non disinstalla nulla provate il secondo.

Ok, se tutto è andato bene fin qui, riavviate il sistema.

Installazione dei pacchetti del nuovo driver

Siamo arrivati al momento clou: installiamo i pacchetti appena creati con

sudo dpkg -i *deb

Dovrebbe andare tutto bene al primo colpo, ma potrebbe anche non essere così.
DPKG potrebbe lamentarsi di dipendenze non soddisfatte e l'installazione sembrerà fermarsi. Sul mio sistema ad esempio si lamentava della mancanza dei pacchetti lib32gcc1 e libc6-i386. E' sufficiente installarli con il comando

sudo apt-get install nome_pacchetto_segnalato

e appena terminata la loro installazione vedrete l'installazione dei precedenti pacchetti riprendere normalmente. Se ciò non avvenisse ridate il comando

sudo dpkg -i *deb

Configurazione iniziale del driver

Se l'installazione precedente è terminata correttamente, per configurare il driver è sufficiente un

sudo aticonfig --initial

oppure se non dovesse funzionare (ma già sarebbe indice di qualche problema), provate con:

sudo /usr/bin/aticonfig --initial


Ravvio finale del sistema

Siamo al gran momento. Abbiamo finito, riavviate il sistema e godetevi dei driver ATI Catalyst finalmente funzionanti.

GdS


- - - - - - - - - - - - - - - - - - - - - - - - - -
Titoli di coda, ovvero: disinstallazione del driver ATI Catalyst

- Eh no, a me non funzionano... come li tolgo? - potreste chiedermi.

Disinstallateli con:

sudo apt-get remove fglrx fglrx-dev fglrx-amdcccle

e riavviate.