Using ATI fglrx legacy driver with Ubuntu 7.10

ati-logoUna decina di giorni fà ATI (ops AMD) ha ufficialmente rilasciato la release 8.01 dei Catalyst per Linux…che ne dite di sfruttare il rilascio di quest’aggiornamento per scrivere un bel post sull’installazione/aggiornamento degli fglrx e magari anche di parlare della configurazione di compiz? Si comincia!!!

Una volta scaricati i driver dal sito di AMD è necessario procedere alla rimozione di quelli vecchi, se installati, oppure all’installazione ex novo.

Va detto che secondo me i metodi per fare questo sono essenzialmente due, uno eseguendo il package .run scaricato dal sito e l’altro costruendo i pacchetti per la propria distribuzione col suddetto package .run e compilare il modulo per il kernel con dkms o module-assistant.

Per carità entrambi funzionano però, almeno a me, uno dei due sembra più intelligente dell’altro visto che utilizzare il sistema di gestione dei pacchetti della propria distribuzione è senza dubbio la scelta da fare se si vuole avere un controllo reale su ciò che è installato sulla propria distribuzione. Comunque analizzerò entrambi i casi…

Dimenticavo, se volete installare i driver proprietari presi dal sito di AMD assicuratevi di aver rimosso quelli forniti con la vostra distribuzione oppure di blacklistare il modulo fglrx fornito in maniera analoga a quanto fatto per il modulo nvidia in questo mio post.

Installazione/Aggiornamento – Metodo 1

Prima di fare qualsiasi cosa è meglio installare almeno gcc e i kernel-headers, quindi non resta che eseguire…

root@vortexrikers:~# apt-get install build-essential linux-headers-2.6.22-14-generic

Per prima cosa bisogna diventare root (un semplice sudo su – e non è neanche necessario riabilitare l’account di root) oppure ricordarsi di usare sudo.

Per eseguire il package .run scaricato bisogna chmoddare suddetto file in modo da renderlo eseguibile (un bel chmod +x giusto per non saper ne leggere ne scrivere) oppure eseguirlo precedendo il nome del package da un interprete valido come sh o bash.

Il è tutto riassunto da un semplice comando:

paolomargara@mrcrow:~$ sudo sh ati-driver-installer-8-01-x86.x86_64.run

ed avete appena installato gli fglrx!!!
In fase di installazione bisogna ricordarsi di configurare il proprio server X, potete utilizzare l’utility aticonfig a riga di comando oppure editare col vostro editor di testo preferito (che mi auguro sia vim) il file /etc/X11/xorg.conf in modo che nella sezione “Device” l’attributo ”Driver” abbia il valore “fglrx”.

Nel caso scegliate di utilizzare aticonfig i comandi da dare sono:

paolomargara@mrcrow:~$ sudo aticonfig --initial
paolomargara@mrcrow:~$ sudo aticonfig --ovt=Xv

Nel caso in cui dobbiate fare modifiche successive all’installazione il consiglio è di utilizzare sempre aticonfig, per un elenco esaustivo dei parametri disponibili basta eseguire aticonfig senza alcun parametro.

In fase di aggiornamento bisogna ricordarsi di disinstallare la release precedente eseguendo il seguente script prima di procedere all’installazione (a meno che non vi piacciano i lavori pasticciati).

paolomargara@mrcrow:~$ sudo rmmod fglrx
paolomargara@mrcrow:~$ sudo sh /usr/share/ati/fglrx-uninstall.sh

Dimenticavo…se per caso doveste avere dei problemi in fase di installazione o semplicemente siete curiosi di sapere che cavolo ha fatto l’utility di installazione date un’occhiata al file /usr/share/ati/fglrx-install.log

A questo punto però compiz non vi funzionerà ancora, prima di provare ad abilitarlo bisogna editare il file /usr/bin/compiz in modo che la variabile WHITELIST includa anche il driver fglrx, già che ci siete verificate di non avere la pciid della vostra vga nella blacklist, a questo scopo viene utile il comando lspci con l’opzione -nn, se vi interessa un approfondimento sull’argomento potreste dare un’occhiata a questo mio post, ecco un esempio di come dovrebbero essere le cose…

paolomargara@mrcrow:~$ more /usr/bin/compiz
...
# Driver whitelist
WHITELIST="nvidia intel ati radeon i810 fglrx"
# blacklist based on the pci ids
 # See http://wiki.compiz-fusion.org/Hardware/Blacklist for details
 T="   1002:5954 1002:5854 1002:5955" # ati rs480
 T="$T 1002:4153" # ATI Rv350
 T="$T 8086:2982 8086:2992 8086:29a2 8086:2a02 8086:2a12"  # intel 965
 T="$T 8086:2972" # i965 (x3000)
 T="$T 1002:3152 1002:3150 1002:5462 1002:5653 " # ati X300 X600,X600 X700
 BLACKLIST_PCIIDS="$T"
 ...

Se avete ubuntu 7.10 ormai non resta che abilitare compiz attraverso l’apposita interfaccia grafica (Sistema->Preferenze->Aspetto->Effetti visivi) spuntando la voce “aggiuntivi”, se per caso non avete ubuntu o avete release antecedenti alla 7.10 in cui AIGLX e composite non sono abilitati di default verificate di avere quanto segue nel file /etc/X11/xorg.conf

...
Section "Extensions"
Option          "Composite"     "Enable"
EndSection
...
Section "ServerLayout"
Option          "AIGLX" "true"
...
EndSection
...

Dimenticavo…se installate il pacchetto compizconfig-settings-manager guadagnerete un’apposita applicazione raggiungibile clickando su Sistema->preferiti->Advanced Desktop Effects Settings che vi permetterà di abilitare ancora più effetti grafici!!!

Installazione/Aggiornamento – Metodo 2

Se per caso avete mai eseguito l’utility di installazione col parametro -h probabilmente vi siete accorti che esistono anche altre maniere di installare il driver.

Eseguendo l’utility col parametro –listpkg è possibile vedere per quali distribuzioni è possibile costruire i packages per l’installazione tramite dpkg.

root@mrcrow:/home/paolomargara# sh ati-driver-installer-8-01-x86.x86_64.run --listpkg
Created directory fglrx-install.X19332
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux    Driver-8.452.1.......................
............................................................................
............................................................................
............................................................................
............................................................................
==================================================
 ATI Technologies Linux Driver Installer/Packager
==================================================
List of generatable packages: 

Package Maintainer(s): Aric Cyr
                      Mario Limonciello
Status: *UNVERIFIED*
Debian Packages:
        Debian/sarge
        Debian/oldstable
        Debian/sid
        Debian/unstable
        Debian/etch
        Debian/stable
        Debian/lenny
        Debian/testing
        Debian/experimental

Package Maintainer(s): Niko Mirthes
                      Michael Larabel
Status: Verified
Fedora Packages:
        Fedora/FC3
        Fedora/FC4
        Fedora/FC5
        Fedora/FC6
        Fedora/F7
        Fedora/F8
        Fedora/RHEL3
        Fedora/RHEL4

Package Maintainer(s): Arnaud Patard
Status: *UNVERIFIED*
Mandriva Packages:
        Mandriva/2006
        Mandriva/2007
        Mandriva/2008

Package Maintainer(s): Bowen Zhu
Status: Verified
RedFlag Packages:
        RedFlag/RF50
        RedFlag/RF60

Package Maintainer(s): ATI
Status: Verified
RedHat Packages:
        RedHat/RHEL4_64a
        RedHat/RHEL4
        RedHat/RHEL5_64a
        RedHat/RHEL5

Package Maintainer(s): Emanuele Tomasi
                      Ezio Ghibaudo
                      Federico Rota
Status: Verified
Slackware Packages:
        Slackware/All
        Slackware/Only_Module
        Slackware/Only_X

Package Maintainer(s): Stefan Dirsch
Status: Verified
SuSE Packages:
        SuSE/SLED10-IA32
        SuSE/SLES10-IA32
        SuSE/SUSE101-IA32
        SuSE/SLED10-AMD64
        SuSE/SLES10-AMD64
        SuSE/SUSE101-AMD64
        SuSE/SUSE102-IA32
        SuSE/SUSE103-IA32
        SuSE/SUSE102-AMD64
        SuSE/SUSE103-AMD64

Package Maintainer(s): Mario Limonciello
                      Aric Cyr
Status: Verified
Ubuntu Packages:
        Ubuntu/dapper
        Ubuntu/6.06
        Ubuntu/edgy
        Ubuntu/6.10
        Ubuntu/feisty
        Ubuntu/7.04
        Ubuntu/gutsy
        Ubuntu/7.10
        Ubuntu/hardy
        Ubuntu/8.04

For example, to build a Debian Etch package, run the following:
% ./ati-driver-installer--.run --buildpkg Debian/etch

Removing temporary directory: fglrx-install.X19332

Sò già che qualcuno mi starà maledicendo però per completezza ho preferito riportare l’output del comando per esteso, anche perché così si può notare che AMD in effetti le big le supporta proprio tutte.
Ora non resta che farsi costruire i pacchetti per la propria distribuzione, nel nostro caso eseguite quanto segue…

root@mrcrow:/home/paolomargara# sh ati-driver-installer-8-01-x86.x86_64.run --buildpkg Ubuntu/7.10

Il pacchetto xorg-driver-fglrx_8.452.1-1_i386.deb contiene il driver vero e proprio per il server X, inoltre contiene anche qualche file di configurazione aggiuntivo, come ad esempio quelli che riguardano il powerplay. Il package xorg-driver-fglrx-dev_8.452.1-1_i386.deb i soliti header, il package fglrx-amdcccle_8.452.1-1_i386.deb il catalyst control center per linux ed il package fglrx-kernel-source_8.452.1-1_i386.deb contiene quanto necessario per compilare il modulo per il kernel.

Prima di installare i pacchetti appena generati è necessario installare qualche pacchetto necessario a risolvere le dipendenze dei pacchetti sopraelencati…

root@mrcrow:/home/paolomargara# apt-get install build-essential linux-headers-2.6.22-14-generic debhelper dkms gawk gcc-3.3-base gettext html2text intltool-debian libstdc++5 po-debconf

…ora non resta che installare i pacchetti generati…

root@mrcrow:/home/paolomargara# dpkg -i *.deb

…installando gli fglrx con questo metodo non c’è bisogno di nessun step aggiuntivo perchè installando il pacchetto fglrx-kernel-source_8.452.1-1_i386.deb il modulo per il kernel è stato compilato ed installato automaticamente tramite dkms.

Innoltre, installato il pacchetto xorg-driver-fglrx_8.452.1-1_i386.deb ho notato che viene cambiato il file /etc/xdg/compiz/compiz-manager (quello vecchio viene rinominato in /etc/xdg/compiz/compiz-manager.ubuntu) aggiungendo alla whitelist di compiz.real anche il modulo fglrx.
Fantastico!!! Gli unici step aggiuntivi, che col metodo 1 erano da fare a mano, sono stati automatizzati!!!

Infine, come buona prassi, verifichiamo tramite dmesg che il modulo venga caricato correttamente, tramite glxinfo che il direct rendering sia attivo e tramite fglrxinfo che il driver sia correttamente caricato.
Ovviamente se si tratta di una nuova installazione bisogna anche configurare xorg come è stato descritto nella sezione precedente.
Ora attraverso l’apposita interfaccia grafica (Sistema->Preferenze->Aspetto->Effetti visivi) potete attivare ”compiz” spuntando la voce “aggiuntivi”.

Adesso potete sedervi a fianco di un vostro amico con windows vista installato sul portatile e fargli vedere quale dei due è veramente figo.

Conclusione

Senza dubbio AMD negli ultimi mesi si è parecchio impegnata a migliorare il proprio supporto per linux, però è chiaro che ci stia ancora lavorando parecchio sopra.

I driver che avevo precedentemente erano gli 8.43 ed al tempo (novembre 2007) il modulo non veniva generato automaticamente ma era necessario generare un apposito pacchetto col modulo per il kernel con module-assistant, spesso abbreviato in m-a, oppure compilarlo a manina.

Nel caso in cui non abbiate ubuntu o abbiate particolari problemi un sito che vi potrebbe essere utile credo sia questo.

Chissà come mai ma ho l’impressione che la procedura d’installazione cambierà nuovamente in futuro…

Related post:

One Comment

  1. Noko says:

    Questo fantastico howto si bècca un meritatissimo: NokOnline APPROVED