AMD Catalyst (Italiano)

From ArchWiki
Revision as of 14:41, 1 November 2012 by Umby213 (Talk | contribs) (Umby213 moved page ATI Catalyst (Italiano) to AMD Catalyst (Italiano): come da versione inglese)

Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary link Template:Article summary link Template:Article summary end

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: Questa pagina è in fase di revisione e potrebbe non essere aggiornata. Seguite per ora le istruzioni della versione inglese. (Discuss in Talk:ArchWiki Translation Team (Italiano)#Pagine Marcate come "out of date" e "Traslateme")

I possessori di schede video ATI/AMD possono scegliere tra i driver proprietari ATI (CatalystAUR) e i driver opensource (xf86-video-ati). Questo articolo tratta i driver proprietari.

Conosciuti precedentemente come fglrx(FireGL and Radeon X), ATI ha ribattezzato i suoi driver proprietari Linux, che sono ora noti come Catalyst. Attualmente solo il nome dei pacchetti è cambiato, mentre il modulo del kernel mantiene il nome originale fglrx.ko, perciò ogni riferimento a fglrx da qui in poi sarà specificatamente riferito al modulo del kernel, non al pacchetto.

Un tempo, catalyst era un pacchetto precompilato scaricabile dal repostory extra di Arch, ma da Marzo 2009, il supporto ufficiale è stato abbandonato a causa della poco soddisfacente qualità e velocità in termini di sviluppo di questo driver proprietario.

Comparando i Catalyst con i driver open source, si nota che i driver open source hanno performance 2D migliori. Le parti si invertono se si passa a considerare l'accelerazione 3D, dove i Catalyst hanno la meglio.Nella versione Radeon, ATI ha rielaborato lo schema identificativo per collegare ogni prodotto ad un determinato segmento di mercato. Dalla versione 9.4, i drivers proprietari ATI supportano solo schede R600 o più recenti (il che significa, HD2xxx o più nuove). Per schede video più datate è disponibile solo il driver open sourcexf86-video-ati. In questa guida, i lettori avranno modo di vedere sia i nomi del product (es. HD 4850, X1900) sia i nomi code o core (es. RV770, R580). Per ulteriori informazioni sui prodotti ATI consultare Wikipedia:Comparison of AMD graphics processing units. Vedere anche la wiki di Xorg.

Contents

Installazione

Attenzione: Dalla release 12.4 di Catalyst, AMD provvede solo ad aggiornamenti importanti dei driver catalyst per schede grafiche Radeon HD < 5xxx.

TUTTI i proprietari di schede grafiche Radeon HD 2xxx 3xxx 4xxx passino a questo nuovo repository:

[catalyst-hd234k]
 Server =  http://catalyst.apocalypsus.net/repo/catalyst-hd234k/$arch

Su AUR, tale driver ha il nome di catalyst-total-hd234kAUR.

Nota:

News: Catalyst 12.6 legacy beta

- supporto SOLO a Radeon HD 2xxx 3xxx 4xxx

- supporto kernel 3.4.

- supporto xorg-server 1.12.

- inclusi binari OpenCL per SDK.
Nota:

News: Catalyst 12.6 stabile:

- supporto solo a Radeon HD >= 5xxx

- supporto al 3.4 kernel (attraverso delle patches);

- supporto a xorg-server 1.12;

- i binari di OpenCL per SDK sono inclusi;

- supporto a GNOME3, che ora dovrebbe non avere i più problemi delle vecchie versioni di Catalyst;

- direct rendering di KDE funziona senza tearing.

I pacchetti necessari per usare i driver Catalyst sono quasi tutti presenti su AUR (per maggiori dettagli Installare da AUR) e quasi tutti [*] sul repository non ufficiale [catalyst].

Per installare il driver ATI fglrx sul pacchetto del kernel linux, è necessario installare: catalystAUR (driver per il kernel stock) più catalyst-utilsAUR (librerie fondamentali) oppure catalyst-totalAUR.

[*] catalyst-total è presente SOLO su AUR ed è il modo più veloce per installare i driver in questione sul proprio sistema.

Se il sistema che si sta utilizzando è x86_64 e si vuole il supporto 32-bit per OpenGL, installare il pacchetto lib32-catalyst-utilsAUR, dopo essersi assicurati di aver abilitato il repository [multilib] in /etc/pacman.conf. NOTA: se avete installato il pacchetto catalyst-totalAUR non sara necessario installare anche il pacchetto lib32-catalyst-utilsAUR.

Notare che esistono ulteriori pacchetti che potrebbero tornare molto utili, ognuno di loro può rimpiazzare il pacchetto catalyst e fornire il modulo fglrx in caso si abbiano diversi kernel sul proprio sistema. Questi pacchetti sono:

- catalyst-generator - in grado di generare automaticamente il modulo fglrx;

- catalist-hook - hook per mkinitcpio in grado di rigenerare il modulo fglrx a ogni aggiornamento del kernel;

- catalyst-daemon - in grado di aggiornare il modulo fglrx a ogni aggiornamento del kernel (funziona tramite init script). Maggiori dettagli nella sezione strumenti.

Nota: Pacman potrebbe chiedere se si desidera rimuovere libgl, rispondere affermativamente.

A installazione ultimata sarà necessario creare o configurare il file xorg.conf

Nota: Con ogni aggiornamento dei driver catalyst è necessario rimuovere il file amdpcsdb in questo modo: killare/stoppare X ed il vostro DE, rimuovere /etc/ati/amdpcsdb, avviare X od il vostro de, e configurare amdcccle.
Warning:
  • Assicurarsi che la propria scheda grafica sia R6xx (HD2xxx) o più recente altrimenti il driver non funzionerà. Se si provasse ad abilitarlo ugualmente si otterrebbe un errore.
  • Sembra che i Catalyst 9.10-10.11 non supportino il chipset delle schede madri nForce4.
Warning: Ad ogni aggiornamento del kernel i pacchetti installati da AUR riguardanti Catalyst vanno aggiornati o reinstallati. Se questo non verrà fatto X restituirà un errore e non si avvierà. I pacchetti catalyst-hook e catalyst-daemon aiuteranno l'utente automatizzando questo processo. Per maggiori dettagli leggere questa sezione.

Installare da AUR

I pacchetti AUR citati nella sezione installazione sono:

  • catalystAUR - driver per il kernel stock
  • catalyst-totalAUR - catalyst-hook + catalyst-utils + lib32-catalyst-utils
  • catalyst-generatorAUR - Generatore del pacchetto catalyst-{kernver} con il modulo fglrx integrato
  • catalyst-hookAUR - Autoricompila il modulo fglrx a ogni aggiornamento del kernel (mkinitcpio's hook)
  • catalyst-daemonAUR - Autoricompila il modulo fglrx ad ogni aggiornamento del kernel (init script)

Kernel personalizzati

Note: catalyst-generator è in grado di creare il pacchetto catalyst-{kenver} senza l'intervento manuale dell'utente. Questa sezione però rimarrà qui perchè potrebbe comunque essere utile.

Per installare catalyst su un kernel modificato, occorrerà compilare un proprio pacchetto catalyst-$kernel contenente il modulo del kernel compilato specificamente per il proprio kernel.

Se non si ha esperienza o confidenza compilando pacchetti, consulatare la sezione ABS del wiki per una guida esaustiva sul metodo da impiegare.

Scaricare il PKGBUILD

Scaricare per prima cosa PKGBUILD e catalyst.install da AUR.

Modifica di PKGBUILD e compilazione

Qui bisognerà apportare queste tre modifiche:

1. Cambiare pkgname=catalyst in pkgname=catalyst-KERNEL_NAME dove KERNEL_NAME è il nome che si preferisce (es. IlMioBelKernel)

2. Eliminare linux dalla lista delle dipendenze.

3. Infine compilare ed installare il pacchetto. (makepkg -i o makepkg seguito da pacman -U pkgname.pkg.tar.gz

Note: Avendo installati diversi kernel, bisognerà installare i drivers catalyst su tutti. Non andranno in conflitto tra loro.

Repository non ufficiale

Esistono alcuni repository non ufficiali con i quali si può facilmente reperire gli ultimi (o anche i più vecchi) driver Catalyst, con tutte le librerie e le dipendenze necessarie per l'uso. Se si vuole conoscere che pacchetti sono presenti sul repository bisogna innanzitutto aggiungere il repositiry a /etc/pacman.conf, sincronizzare il database con #pacman -Syy e lanciare un:

# pacman -Sl catalyst

Il repository [catalyst]

Questo repository contiene le ultime release stabili del driver più altri pacchetti addizionali. I pacchetti qui presenti sono compilati per il kernel stock installabile da [core] e sono aggiornati abbastanza di frequente.

Per usare il repo è necessario:

1.) Editare /etc/pacman.conf per aggiungere queste due righe sopra [core] e [extra]:

[catalyst]
Server =  http://catalyst.apocalypsus.net/repo/catalyst/$arch

2.) Forzare la sincronizzazione e aggiornare:

# pacman -Syy
# pacman -Su

3.) Installare Catalyst:

# pacman -S catalyst catalyst-utils

Nota: se si sta aggiornando da catalyst =< 10.8, i punti 2.) e 3.) vanno eseguiti in questo modo:

 # pacman -Sy
 # pacman -Rdd catalyst
 # pacman -S catalyst catalyst-utils


4.) Non dimenticare di preparare il file /etc/X11/xorg.conf per Catalyst! Usare aticonfig --initial se il file non esiste ancora.

5.) Riavviare.

Per gli utenti x86_64 il pacchetto lib32-catalyst-utils è necessario a lanciare applicazioni che sfruttano OpenGL a 32-bit e i giochi su Wine.

Il repository in più contiene anche i pacchetti:

# pacman -Rdd xorg-server xorg-common
# pacman -S xorg-server-catalyst-maximize-fix 

Repositori d'archivio

Ci sono alcuni repository d'archivio agli indirizzi http://catalyst.apocalypsus.net/repo/catalyst o http://catalyst.apocalypsus.net/repo/catalyst-hd234k, si prega di esplorare questi siti alla ricerca di file con estensione *.db, se si dovessero trovare repository catalyst interessanti istruire pacman al loro utilizzo Ad esempio, per il file catalyst-hd234k-12.4.db, la voce all'interno di pacman.conf dovrebbe essere simile a:

[catalyst-hd234k-12.4]
Server = http://catalyst.apocalypsus.net/repo/catalyst-hd234k/$arch

È anche possibile prendere visione dei PKGBUILD catalyst d'archivio, ed utilizzarli per compilare pacchetti catalyst che si adattino alle proprie esigenze, possono essere prelevati dall'archivio tar.gz a questo indirizzo.

Repository xorg-server

[xorg112]

Catalyst al momento non supporta xorg-server 1.13

Per usare questo repo, editare il file /etc/pacman.conf e aggiungere queste righe al di sopra degli altri repository:

[xorg112]
Server = http://catalyst.apocalypsus.net/repo/xorg112/$arch

[xorg111]

I driver Catalyst < 12.6 non supportano xorg-server 1.12 presente ora in [extra].

Per usare questo repository si dovrà editare il file /etc/pacman.conf e aggiungere queste righe in cima a tutti gli altri repositories:

[xorg111]
Server = http://catalyst.apocalypsus.net/repo/xorg111/$arch

[xorg110]

Questo repository contiene i pacchetti di xorg-serve 1.10, con i catalyst in versione < 11.11, che non supportano xorg-server 1.11.

Per usare questo repo aggiungere in /etc/pacman.conf :

[xorg110]
Server = http://catalyst.apocalypsus.net/repo/xorg110/$arch

[xorg19]

Catalyst <= 11.3 non supporta xorg-server >= 1.10 (verifica effettuata anche con la flag IgnoreAbi) - per questo motivo è stato creato il repo [xorg19] con xserver 1.9 ed altri pacchetti aggiuntivi. Per usarlo è necessario modificare /etc/pacman.conf ed aggiungere queste righe in cima a tutti gli altri repository:

[xorg19]
Server = http://catalyst.apocalypsus.net/repo/xorg19/$arch

[xorg18]

I driver Catalyst inferiori alla versione 10.10 non supportano versioni >= xorg-server 1.9 (verificato anche con il flag IgnoreAbi) - per questa ragione esiste il repositorio [xorg18] con il pacchetto xserver 1.8 e alcuni pacchetti addizionali. Per usufruire del repositorio bisogna editare il file /etc/pacman.conf ed aggiungere le seguenti righe in cima alla lista dei repository:

[xorg18]
Server = http://catalyst.apocalypsus.net/repo/xorg18/$arch

[xorg17]

Supportato dai Catalyst 10.4

Il repository [xorg17] contiene i pacchetti per xserver 1,7, usare solo se si verificano problemi con xserver più recenti. Il repository contiene i pacchetti xorg-server-backclear (con patch backclear) e xorg-server-1.7-catalyst-maximize-fix (con la patch di Fedora). Entrambe le patch correggono problemi con massimizzazione/ridimensionamento ma lo fanno in modo diverso (scegliere quello più adatto). Per rimuovere xorg-server e installare xorg-server-backclear digitare:

# pacman -Rdd xorg-server
# pacman -S xorg-server-backclear

Comportarsi in maniera analoga con xorg-server-1.7-catalyst-maximize-fix

Per usare il repository [xorg17] aggiungere le seguenti righe in alto, prima di tutti gli altri repository in /etc/pacman.conf:

[xorg17]
Server = http://catalyst.apocalypsus.net/repo/xorg17/$arch

[xorg16]

Il repository [xorg16] contiene i pacchetti del xserver 1.6, utilizzare solo se si hanno problemi con versioni di xserver più recenti.

[xorg16]
Server = http://catalyst.apocalypsus.net/repo/xorg16/$arch

Strumenti

catalyst-generator

catalyst-generator è un pacchetto in grado di costruire e installare i moduli fglrx generando un pacchetto fruibile da pacman. Il suo scopo è generare il pacchetto catalyst-{kernver} utilizzando makepkg e installarlo con l'ausilio di pacman; {kernver} è la versione del kernel con il quale è stato compilato il pacchetto, ad esempio : il pacchetto catalyst-2.6.35-ARCH è stato compilato sul kernel 2.6.35-ARCH .

Per compilare ed installare il pacchetto catalyst-{kernver} per il kernel avviato come utente senza privilegi (metodo sicuro) procedere in questo modo: catalyst_build_module Vi verrà chiesta la password di root per procedere all'installazione. É importante eseguire questo comando dopo l'installazione di catalyst-generator.

Questo pacchetto non supporta la funzione di auto-compilazione, ciò comporta che dopo un aggiornamento del kernel dovete aggiornare manualmente il pacchetto catalyst-{kernver}, senza riavviare il sistema procedere in questo modo:

1.) Con i privilegi di root:

# catalyst_build_module remove

Questo comando eliminerà i pacchetti catalyst-{kernver} non utilizzati

2.) poi come utente senza privilegi:

$ catalyst_build_module nuova-versione-kernel

dove nuova-versione-kernel''è la versione del kernel che avete appena aggiornato/installato, Es:

catalyst_build_module 2.6.36-ARCH

oppure:

catalyst_build_module all

Il quale compilerà il pacchetto catalyst-{kernver} per tutti i kernel presenti.

Se volete rimuovere catalyst-generator - si consiglia di eseguire da root questo comando:

catalyst_build_module remove_all

prima di rimuovere catalyst-generator (con questo comando si elimineranno tutti i pacchetti catalyst-{kernver} presenti nel sistema)

catalyst-generator non è in grado di rimuovere tutti i pacchetti catalyst-{kernver} automaticamente mentre lo si rimuove perché non ci può essere ad esempio più di una istanza di pacman in esecuzione. Se si dimentica di dare il comando catalyst_build_module remove_all prima di digitare pacman -R catalyst-generator - catalyst-generator vi chiederà quale pacchetto catalyst-{kernver} si dovrà rimuovere dopo la rimozione di catalyst-generator.

Nota: Se si visualizza un errore del tipo:

WARNING: Package contains reference to $srcdir

WARNING: '.pkg' is not a valid archive extension.

mentre si compila il pacchetto catalyst-{kernver} - non c'è da preoccuparsi, è un normale avvertimento.

Ri-compilazione automatica del modulo fglrx con ogni aggiornamento del kernel

Nota: Lo script catalyst_build_module, qui riportato,sta lavorando sui file dei moduli fglrx, non sui pacchetti di pacman. La maggior parte delle opzioni dello script catalyst_build_module menzionate nella sezione catalyst-generator sono supportate, digitare catalyst_build_module help per conoscerle esattamente

Dalla versione catalyst 10.9 questa funzionalità è stata rimossa dal pacchetto a causa di alcuni problemi, vedere qui e qui.

Questo metodo può essere molto utile se si utilizza più di un kernel, o non si vuole ricostruire un pacchetto catalyst con ogni aggiornamento del kernel. Se si vuole utilizzare tale funzionalità tramite un hook con l'ausilio di mkinitcpio, il pacchetto di riferimento è catalyst-hook.

Inoltre vi è un nuovo pacchetto in grado di fornire una funzionalità simile chiamato catalyst-daemon.

Si prega di notare che tali pacchetti forniscono solo gli script di ri-compilazione e file di origine necessari per costruire il modulo fglrx, e dipendono dal pacchetto catalyst-utils.

La compilazione automatica è abilitata di default dopo l'installazione del pacchetto selezionato, se volete disattivarlo basta eseguire questo comando come root:

# catalyst_build_module autooff

È anche possibile attivarla con:

# catalyst_build_module auto

catalyst_build_module memorizza tutte le informazioni relative alla compilazione/installazione del modulo fglrx in un file log reperibile in /var/log/catalys-install.log.


catalyst-hook

Con catalyst-hook la funziona di ricompilazione automatica è affidata a fglrx hook tramite mkinitcpio con il quale si forza l'aggiornamento del pacchetto linux-headers.

Questo hook richiamerà il comando catalyst_build_module per aggiornare il modulo fglrx alla versione del proprio nuovo kernel, ed in aggiunta lancerà il comando catalyst_build_module remove per rimuovere i moduli fglrx non più necessari.

Nota: Se si utilizza questa funzionalità è importante controllare il processo di installazione di linux (o qualsiasi altro kernel). fglrx-hook vi informerà dell'esito positivo.
Nota: Se state utilizzando un kernel custom (personalizzato) e si utilizza un file di configurazione di mkinitcpio non standard (Es. il linux-zen utilizza /etc/mkinitcpio-zen.conf), bisogna aggiungere manualmente fglrx alla stringa HOOKS nel file di configurazione per abilitare l'auto-ricompilazione all'aggiornamento del kernel.
Nota: Se si sta usando un kernel non stock, è necessario rimuovere linux-header da SyncFirst in /etc/pacman.conf dopo aver eseguito 'catalyst_build_module auto'.
catalyst-daemon

Con catalyst-daemon la funzionalità di 'ricompilazione automatica' è abilitata da un init script chiamato autofglrx, il quale viene lanciato ad ogni avvio del sistema e controlla se il kernel è stato aggiornato. Nel caso si verificasse che il kernel è stato aggiornato, esso ricostruirà il modulo fglrx. Se il kernel non è stato aggiornato, allora si incarica di caricare l'ultimo modulo fglrx ricostruito (tutta questa operazione dura soltanto 20ms su processori a 2.4 GHz).

La funzione check di Autofglrx effettua un confronto del tempo di boot del kernel standard (fornito da `uname -v') con il tempo di avvio di un kernel in cui è stato costruito il modulo fglrx. E 'in grado di fare tale comparazione perché aggiunge l'informazione `uname -v` per la descrizione del modulo fglrx mentre ricompila il modulo.

La funzione build di autofglrx chiamerà catalyst_build_module per costruire il modulo e catalyst_build_module remove per eliminare i moduli fglrx inutili e più vecchi.

Nota: Quando si installa autofglrx, esso aggiungerà il demone all'inizio della lista DAEMONS nel file /etc/rc.conf. È possibile tranquillamente spostarlo a seconda delle esigenze, ma deve essere posto sempre prima di un desktop manager o di demoni di X, e non deve essere avviato in background (@) poiché non implementa tale funzionalità.
Nota: Se si tanno utilizzando flags di compilazione personali e si hanno problemi con il demone, si aggiungano tali flags nel file /usr/bin/catalyst_build_module.

Installer ufficiale ATI/AMD

Attenzione: Utilizzare l'installer da ati.com/amd.com NON è consigliato per utenti inesperti! Farlo potrebbe causare conflitti di file e malfunzionamenti di X. È di fondamentale importanza avere familiarità con l'avvio da riga di comando per usare questo installer.
.
Nota: Se si è tentata una installazione manuale con l'installer ufficiale, e si scopre che non funziona più nulla correttamente, dovrebbe essere presente uno script di disinstallazione in /usr/share/ati/fglrx-uninstall.sh

1.) Scaricare l'installer da sito ufficiale. Dovrebbe essere un file tipo: ati-driver-installer-*-*-x86.x86_64.run dove *-* è la versione del driver.

2.) Rendere il file eseguibile # chmod -x ati-driver*

3.) Assicurarsi di usare un driver base, come ad esempio vesa e rimuovere ogni altro file che potrebbe andare in conflitto (nel caso specifico: xf86-video-ati e radeon)

4.) Creare un link simbolico /usr/src/linux a /usr/src/{kernelsource}. Gli utenti che hanno un sistema a 64 bit dovranno anche creare il link /usr/lib64 a /usr/lib.

5.) Assicurarsi che sul proprio sistema siano correttamente installate le dipendenze # pacman -S linux-headers base-devel

6.) Da root # ./ati-driver-installer-*-*-x86.86_64.run (I file verranno estratti in una cartella temporanea e lo script partirà...)

Assumiamo ora che tutto vada per il peggio...

7.) Controllare il file /usr/share/ati/fglrx-install.log per vedere il log dei problemi. Potrebbe anche esistere il file /lib/modules/fglrx/make.{ker_version}.log

Nota: Se si modifica a mano il "make script" salvarlo con un nome differente altrimenti un'ipotetica disinstallazione dei driver potrebbe non andare a buon fine

8.) In fine provare # aticonfig. A partire da Catalyst 11.7 si assume che /etc/X11/xorg.conf esista.

Nota: Se si vuole aderire al nuovo xorg.conf.d: aggiungere a aticonfig l'opzione --output che adatterà la sezione Device di /etc/X11/xorg.conf.d/20-radeon.conf. Lo svantaggio è che molte opzioni di # aticonfig sono legate esclusivamente a xorg.conf, saranno quindi inutilizzabili.

Configurazione

Prima di riavviare

Ci sono tre cose da controllare in Arch prima di riavviare il sistema per evitare errori di X:

Configurare Xorg

ATI fornisce lo strumento aticonfig per modificare un file xorg.conf e configurare essenzialmente ogni aspetto della scheda. Per una lista completa delle opzioni di aticonfig, eseguire:

$ aticonfig --help | less
Attenzione: Si utilizzi l'opzione --output in modo da generare un file di prova e se ne verifichi il contenuto prima di copiarlo all'interno di /etc/X11/xorg.conf, in quanto la presenza di quest'ultimo renderà inutilizzate le impostazioni presenti nei file all'interno della directory /etc/X11/xorg.conf.d

Un semplice esempio di aticonfig:

     1. Impostare fglrx per la prima volta.
          Single head :    aticonfig --initial --input=/etc/X11/xorg.conf
          Dual head   :    aticonfig --initial=dual-head --screen-layout=above
                           Questo comando genererà un file di configurazione
                           dual head con il secondo schermo posizionato sopra
                           il primo schermo.

Utilizzare una di queste due linee in funzione della propria configurazione.

Controllare il file xorg.conf generato prima di copiarlo in /etc/X11/xorg.conf ed eseguire startx o riavviare il sistema. Altrimenti, probabilmente si otterrà uno schermo vuoto e non si sarà più in grado di utilizzare il sistema. I file di configurazione generati nei passi precedenti non sono a volte corretti. Se si vuole, è possibile comparare con uno dei File Xorg.conf di esempio elencati nella pagina wiki di Xorg.

Qui c'è un esempio (con note) per riferimento. le voci marcate con '#' dovrebbero essere richieste, le voci marcate con '##' potrebbero essere necessarie:

Section "ServerLayout"
        Identifier     "Arch"
        Screen      0  "Screen0" 0 0          # lo 0 è necessario
EndSection
Section "Module"
        Load ...
        ...
EndSection
Section "Monitor"
        Identifier   "Monitor0"
        ...
EndSection
Section "Device"
        Identifier  "Card0"
        Driver      "fglrx"                         #
        BusID       "PCI:1:0:0"                     # Raccomandato se "autodetect" dovesse fallire
        Option      "OpenGLOverlay" "0"             ##
        Option      "XAANoOffscreenPixmaps" "false" ##
        Option      "UseInternalAGPGart"    "no"    ## Deprecato
        Option      "KernelModuleParm"  "agplock=0" ## se il supporto AGP GART è rimosso
EndSection
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24                        # non modificare '24'
                Modes "1280x1024" "2048x1536"       ## 1° valore=risoluzione di default, 2°=massima.
                Virtual 1664 1200                   ## (x+64, y) to workaround potential OGL rect. artifacts/
        EndSubSection                               ## fixed in Catalyst 9.8
EndSection
Section "DRI"
        Mode 0666                                   # potrebbe tornare utile per abilitare il rendering diretto.
EndSection

Caricamento dei moduli

Se si usa Initscript, editare /etc/rc.conf:

  • Rimuovere radeon dalla stringa MODULES.
  • Aggiungere fglrx alla stringa MODULES potrebbe essere opzionale se è già stato aggiunto a /etc/mkinitcpio.conf (L'immagine di boot sarà ricostruita prima del reboot).

Se si usa systemd:

  • Rimuovere o commentare radeon se necessario in ogni file sotto la directory /etc/modules-load.d.
  • Aggiungere fglrx su una nuova riga di un file esistente in /etc/modules-load.d, o crearne uno nuovo apposta.

Potrebbe in ogni caso appena citato, mettere in blacklist radeon in /etc/modprobe.d/modprobe.conf se blacklist-fglrx.conf non dovesse esistere.

Nota: Se si possiede una scheda AGP aggiungere il modulo agp

Disabilitare mode setting

Per abilitare il KMS aggiungere nomodeset alla riga del kernel. Questa operazione è molto importante in quanto senza KMS si rischiano freeze del sistema durante operazioni come spegnimento, riavvio, sospensione...

Se si usa GRUB Legacy editare /boot/grub/menu.lst e aggiungere nomodeset alla riga del kernel:

kernel /boot/vmlinuz-linux root=/dev/sda1 ro nomodeset

Per GRUB, editare /etc/default/grub e aggiungere nomodeset ai parametri del kernel:

GRUB_CMDLINE_LINUX="nomodeset"

In seguito, eseguire da root:

# grub-mkconfig -o /boot/grub/grub.cfg

Riavviare!

Controlli

Si suppone che il login sia andato bene, in caso contrario consultare questa parte. Il comando per vedere se fglrx è stato caricato e sia correttamente attivo è:

$ lsmod | grep fglrx
$ fglrxinfo   

Infine, eseguire Xorg con startx o utilizzando GDM/KDM, e verificare che il direct rendering sia attivato eseguendo il seguente comando in un terminale:

$ glxinfo | grep direct

Se si riceve "direct rendering: yes" allora tutto è funzionante! Se il comando glxinfo non è trovato, si potrebbe aver bisogno di installare il pacchetto "mesa-demos".

Attenzione: In alcune versioni recenti di Xorg, i percorsi delle librerie sono cambiati. Quindi, a volte libGL.so non può essere caricato correttamente anche se installato. Non dimenticare di controllare ciò se qualcosa non funziona. Leggere la sezione "Risoluzione dei problemi" per dettagli.

Double Screen (Dual Head / Dual Screen / Xinerama)

Introduzione

Prima di tutto: bisogna sapere che non esiste una singola soluzione, le configurazioni possono essere diverse. È quindi necessario adattare questo paragrafo alle proprie esigenze. Non è da escludere che dovranno essere fatti più tentativi. Pertanto salvare il file /etc/X11/xorg.conf attuale prima di iniziare ogni cambiamento. Sarebbe utile anche saper recuperare la vecchia configurazione da tty
  • In questa sezione si vedrà come installare due schermi di diverse dimensioni su una sola scheda grafica con 2 differenti output (DVI + HDMI) usando la configurazione "Big desktop".
  • La soluzione Xinerama ha degli inconvenienti, specialmente perchè non è compatibile con XrandR. Per questo motivo, tale soluzione non è consigliata.
  • La soluzione "Dual Head" permette di avere due differenti sessioni (una per schermo). Potrebbe questa essere una soluzione preferibile anche se non da la possibilità di spostare le finestre da uno schermo all'altro. Se si ha un solo schermo si dovrà definire il mouse all'interno di Xorg per le 2 sessioni all'interno della sezione Server Layout.


Documentazione ATI

ATI Catalyst Control Center

La GUI fornita da ATI è uno strumento veramente utile e versatile. Per usarla laciare da terminale

amdcccle
Nota: Funziona tranquillamente anche con gksu se usate GNOME o altri DE/WM
Attenzione: Non lanciate amdcccle con il comando sudo perchè sudo rende amministratori ma usa le informazioni dell'account utente. Con kdesu si diventa root in tutto e per tutto

Installazione

Facile ma importante: assicurarsi che tutto sia collegato correttamente, che tutto sia acceso, e di conoscere le caratterische fondamentali dell'hardware in questione (dimensione, risoluzione, frequenza di aggiornamento ...) Normalmente, gli schermi vengono riconosciuti al boot ma non sempre la loro configurazione risulta essere corretta, specialmente se si sta usando una configurazione base di Xorg.

Il primo passo è quello di assicurarsi che essi saranno riconosciuti dal vostro DE / Xorg. Per questo, è necessario generare un file per X per i 2 schermi :

$ aticonfig --initial --desktop-setup=horizontal --overlay-on=1

o

$ aticonfig --initial=dual-head --screen-layout=left
Nota: La sovrapposizione overlay è molto importante in quanto permette di condivire un pixel (o più) tra i due schermi.
Tip: Per tutte le configurazioni possibili, non si esiti a dare un aticonfig in un terminale per prendere visioni di tutte le possibili opzioni.

Normalmente, si dovrebbe avere un file base che è possibile editare per aggiungere le risoluzioni desiderate. È importante precisare la risoluzione voluta specialmente se si hanno schermi di dimensioni diverse. Aggiungere nella sezione "screen":

SubSection "Display"
Depth 24
Modes "1200x800"
EndSubSection

Da ora in poi non modificare manualmente xorg.conf, usare la GUI di ATI. Riavviare X e assicurarsi che i due schermi siano supportati e che la risoluzione sia corretta. (Gli schermi sono indipendenti).

Configurazione

Dopo aver lanciato ATI control center come root si potrà accedere ai menù e scegliere la configurazione che si preferisce per il proprio sistema. Alla fine, riavviare X e tutto dovrebbe funzionare.

Non esitate a controllare più volte xorg.conf prima di riavviare il server grafico. A questo punto, nella sotto sezione "Display" della sezione "Screen" si può vedere "Virtual" command line. La risoluzione deve essere la somma di entrambi gli schermi. La sezione "Server Layout" dice tutto il resto.

Features

Accelerazione video

Video Acceleration API (VA API) è una libreria open source ("libVA") compresa di specifiche API che permette l'accesso all'accelerazione grafica hardware (GPU) per il processing dei contenuti video su sistemi Linux e basati su UNIX. L'obiettivo principale delle VA API è di permettere la decodifica di video mediante hardware a vari entry-points (VLD, IDCT, Motion Compensation, deblocking) per quanto riguarda i principali codec odierni (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, e VC-1/WMV3).

Nel mese di Novembre 2009, le VA-API hanno ottenuto un nuovo backend proprietario, xvba-video, che permette alle applicazioni abilitate all'uso delle VA-API di sfruttare i chipset AMD Radeon UVD2 attraverso la libreria X-Video Bitstream Acceleration API di AMD.

Il supporto a XvBA e a xvba-video è ancora in fase di sviluppo, nonostante ciò mplayer (e relativi frontend) garantiscono un funzionamento decisamente soddisfacente. Per avvalersi delle funzionalità VA-API rese disponibili da mplayer è necessario compilare il pacchetto [http://xvba-video ed installare mplayer-vaapi (disponibile nel repo community) & libva (disponibile nel repository extra).

Installati questi pacchetti è sufficiente impostare come output video il parametro vaapi:gl.

Esempio: per Mplayer:

$ mplayer -vo vaapi:gl movie.avi

Esempio: per smplayer:

Opzioni -> Preferenze -> Generale -> Video (tab) -> Driver di uscita: Definito dall'utente... : vaapi:gl
Opzioni -> Preferenze -> Generale -> Video (tab) -> Doppio Buffering on
Opzioni -> Preferenze -> Avanzate -> Opzioni per MPlayer -> Opzioni: -vo vaapi
Opzioni -> Preferenze -> Generale -> togliere il segno di spunta da "abilita schermata"

Opzioni -> Preferenze -> Performance -> decoding (inserire il numero dellaa CPU)

Nota: Se l'opzione Desktop Senza Tearing è abilitata, è preferibile utilizzare
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi 
Nota: Se l'uscita video vaapi:gl non funziona - controllare
 vaapi, vaapi:gl2 or simply xv(0 - AMD Radeon AVIVO Video)

Ad esempio per VLC:

Tools -> Preferences -> Input & Codecs -> Use GPU acceleration

Non dimenticate di attivare v-sync in amdcccle:

3D -> More Settings -> Wait for vertical refresh = Always On
Nota: Se si utilizza compiz/kwin tenere presente che l'unico modo di evitare il "flickering" dei video consiste nell'eseguire la riproduzione a pieno schermo, abilitando l'opzione "Unredirect Fullscreen is off".

In compiz, è necessario impostare "Redirected Direct Rendering" nelle "Opzioni Generali" del pannello di gestione ccsm. Nel caso dovessero verificarsi episodi di flickering provare a disabilitare quest'opzione nel ccsm.

In kwin è disabilitato di default, ma se si dovesse verificare il flickering, provare a modificare il valore di "Suspend desktop effects for fullscreen windows" in System Settings -> Desktop Effects -> Advanced.

Desktop senza Tearing

Presentata con i Catalyst 11.1, la funzione 'Desktop senza Tearing' riduce il tearing nelle applicazioni 2d, 3d e video. Per quanto è possibile saperne, ogni frame renderizzato che passa per il server X viene memorizzato in un triplo buffer e sincronizzato col refresh verticale del monitor. Tenere presente che questa procedura occupa risorse supplementari. Per abilitare la funzione 'Desktop senza Tearing' eseguire amdcccle e spuntare: Display Options ~~> Tear Free

oppure da utente root eseguire:

 aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1

Per disabilitarla utilizzare amdcccle oppure da utente root eseguire:

 aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop

Strumenti per la frequenza GPU/Mem, Temperatura, Velocità ventole, Overclock utilities

Si possono ottenere i clock GPU/Mem tramite il comando: $ aticonfig --od-getclocks

Velocità ventole: aticonfig --pplib-cmd "get fanspeed 0"

Temperatura: $ aticonfig --od-gettemperature

Per settare la velocità delle ventole: $ aticonfig --pplib-cmd "set fanspeed 0 50" Dove 50 è la velocità in percentuale.

Per operazioni di underclock/overclock è più semplice utilizzare programmi ad interfaccia grafica, come ATi Overclocking Utility, che è molto semplice da usare ma richiede le librerie QT per funzionare. La versione i686 è reperibile qui, mentre la x86-64 while x86_64 - qui.

Un'altro, strumento per operare questo tipo di modifiche è AMDOverdriveCtrl. La sua homepage è qui, si possono reperire i pacchetti per arch su AUR o dal repository [catalyst].

Risoluzione problemi

Se si hanno problemi con i driver, la causa più probabile è una configurazione errata del file xorg.conf.

È possibile parsare il file /var/log/Xorg.0.log in cerca di errori tramite questi comandi:

grep '(EE)' /var/log/Xorg.0.log
grep '(WW)' /var/log/Xorg.0.log

Problemi con i colori video

Si può ancora usare vaapi:gl per evitare lo sfarfallio video, ma senza accelerazione video.

Eseguire mplayer senza l'opzione -vo vaapi.

Per smplayer rimuovere -vo vaapi dalle opzioni -> Preferenze -> Avanzate -> Opzioni per MPlayer -> Opzioni: -vo vaapi

Inoltre per smplayer è possibile tranquillamente attivare lo screenshot.

KWin e composite

È possibile utilizzare XRender se il rendering con OpenGL è lento. Tuttavia, XRender potrebbe anche essere più lento di OpenGL a seconda della scheda. XRender risolve anche problemi di artefatti grafici in alcuni casi.

Schermo nero con completo blocco dopo riavvio o startx

Assicurarsi di aver abilitato l'opzione nomodeset sulla linea del kernel nel file di configurazione del proprio bootloader (vedere #Configurazione per ulteriore informazioni).

Chiamate hardware ACPI difettose

E' possibile che fglrx non cooperi bene con le chiamate hardware ACPI del sistema, quinid si autodisabilita e non vi è alcun output su schermo.

Provare ad eseguire:

  aticonfig --acpi-services=off

KDM scompare dopo il logout

Se si sta eseguendo il driver proprietario catalyst e si ottiene una console (tty1) invece della schermata KDM quando si effettua il logout, bisogna indicare a KDM di riavviare il server X dopo ogni logout, editare il file /usr/share/config/kdm/kdmrc e decommentare la seguente linea sotto la sezione [X-:*-Core]:

TerminateServer=True

KDM dovrebbe adesso apparire quando si effettua il logout da KDE.

Il Direct Rendering non funziona

Questo problema può accadere utilizzando i driver proprietari catalyst.

Attenzione: Quest'errore può anche accadere nel caso in cui non si sia riavviato il sistema dopo l'installazione o l'aggiornamento dei driver catalyst. Il sistema cerca di caricare il modulo fglrx.ko in modo tale da far funzionare il driver.

Se si hanno problemi con il direct rendering, si lanci da terminale:

   $ LIBGL_DEBUG=verbose glxinfo > /dev/null

All'inizio dell'output solitamente viene dato un messaggio d'errore che spiega il perchè del mancato funzionamento del direct rendering.

Gli errori più comuni e le relative soluzioni sono:

   libGL error: XF86DRIQueryDirectRenderingCapable returned false
  • Assicurarsi di caricare il modulo agp corretto per il proprio chipset AGP prima di avviare il modulo kernel fglrx. Per determinare il modulo agp necessario, si lanci hwdetect --show-agp, quindi assicurarsi che tutti i moduli elencati col precedente comando siano nella sezione MODULES di /etc/rc.conf, prima di fglrx.
   libGL error: failed to open DRM: Operation not permitted
   libGL error: reverting to (slow) indirect rendering
   libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so
   libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed
   (/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)
   libGL error: unable to find driver: fglrx_dri.so   


  • Qualcosa non è stato installato correttamente. Se il percorso nel messaggio d'errore precedente è /usr/X11R6/lib/modules/dri/fglrx_dri.so, allora assicurarsi di uscire completamente dal sistema e quindi rientrare. Nel caso in cui si usi un manager di login grafico (gdm, kdm, xdm), assicurarsi che /etc/profile venga creato ogni volta che si effettua il login. Questo solitamente si realizza aggiungendo source /etc/profile in /.xsession o ~/.xinitrc, ma potrebbe variare a seconda dei manager di login.
  • Se il percorso del messaggio d'errore è /usr/lib/xorg/modules/dri/fglrx_dri.so, allora qualcosa non è stato installato correttamente. Si provi a reinstallare il pacchetto catalyst.

Errori come:

   fglrx: libGL version undetermined - OpenGL module is using glapi fallback

potrebbero essere causati dall'avere più versioni di libGL.so sul proprio sistema. Si lanci:

   # updatedb
   $ locate libGL.so

Ciò dovrebbe dare il seguente output:

   $ locate libGL.so
   /usr/lib/libGL.so
   /usr/lib/libGL.so.1
   /usr/lib/libGL.so.1.2
   $

Questi sono i soli tre libGL.so file che si dovrebbero avere nel proprio sistema. Se se ne hanno di più (es. /usr/X11R6/lib/libGL.so.1.2), allora si provveda a rimuoverli. Questo dovrebbe risolvere il problema.

Nel caso in cui non si dovessero ottenere errori che indichino la presenza di problemi. Se si usa X11R7, ci si assicuri di non avere questi file sul proprio sistema:

   /usr/X11R6/lib/libGL.so.1.2
   /usr/X11R6/lib/libGL.so.1

Problemi con l'ibernazione/sospensione

La parte video fallisce nel tentativo di di riprendersi dal suspend2ram

I driver proprietari ATI catalyst non riescono a riavviarsi dalla sospensione se il framebuffer è abilitato. Per disabilitare il framebuffer, si aggiunga vga=0 all'opzione kernel in /boot/grub/menu.lst, ad esempio:

kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro vga=0

Blocco del sistema/Hard lock

  • I driver del framebuffer radeonfb erano noti per causare problemi di questa natura. Se il kernel è stato compilato con il supporto per radeonfb, può essere utile provare un kernel diverso per vedere se i problemi si risolvono.
  • Se si notano freeze del sistema durante spegnimento, riavvio, passaggio a tty o altre operazioni in cui si "esce" dal DE, attivare il KMS come indicato nella sezione ATI Catalyst (Italiano)#Configurazione.

Conflitti hardware

Le schede radeon usate insieme ad alcune versione del chipset nForce3 (per esempio, nForce 3 250Gb) non hanno l'accelerazione 3D. Attualmente la causa di questo problema è sconosciuta, ma alcune fonti indicano che è possibile ottenere l'accelerazione con questa combinazione hardware avviando Windows con i drive di nVIDIA e poi riavviando il sistema. Si può controllare il chipset dando questo comando da root:

# dmesg | grep agp

Se si ottiene qualcosa di simile:

agpgart: Detected AGP bridge 0
agpgart: Setting up Nforce3 AGP.
agpgart: aperture base > 4G

si sta utilizzando il chipset nForce3.

Se, inoltre, dando questo comando:

$ tail -n 100 /var/log/Xorg.0.log | grep agp

si ottiene qualcosa del tipo:

(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"

allora si è affetti da questo bug.

Altre fonti indicano che in alcune situazioni può essere utile fare il downgrade del BIOS della scheda madre, ma ciò non può essere verificato in tutti i casi. Oltretutto, un downgrade del BIOS andato male può rendere inutilizzabile l'hardware, quindi prestare attenzione.

Vedere il bug http://bugzilla.kernel.org/show_bug.cgi?id=6350 per ulteriori informazioni e possibili soluzioni.

Blocchi temporanei durante l'esecuzione di video

Questo problema può verificarsi quando si utilizzano i driver proprietari catalyst.

Se si verificano in modo casuale blocchi temporanei della durata di pochi secondi fino a parecchi minuti, durante l'esecuzione di video con mplayer, controllare /var/log/messages.log per messaggi simili a questo:

Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium =======================

L'aggiunta dell'opzione nopat a /boot/grub/menu.lst e il riavvio hanno risolto il problema, almeno nel mio caso.

Catalyst 10.6/10.7/10.8/10.9 : artefatti quadrati neri, grigi e bianchi in firefox/thunderbird

Con i catalyst 10.6, AMD/ATi ha annunciato un nuovo metodo di accelerazione per radeon, ma sfortunatamente questo balzo è stato fonte di bug per alcuni utenti. Per tornare al vecchio (e più lento) metodo xaa per il rendering 2D, eseguire l'azione "kill" al proprio ambiente desltop e Xserver, e digitare il seguente comando da root:

# aticonfig --set-pcs-str=DDX,ForceXAA,TRUE

Now you'll probably need patched xorg-server to fix problems with resizing/maximizing windows, read about it ie. here.

"aticonfig: No supported adaptaters detected"

Se quando viene lanciato il comando:

# aticonfig --initial

si ottiene come output:

aticonfig: No supported adaptaters detected

è ragionevole pensare che i driver Catalyst possano funzionare lo stesso editando a mano il file xorg.conf:

Section "Device"
 Identifier "ATI radeon ****"
 Driver "fglrx"
EndSection

dove **** va rimpiazzato con il modello della propria scheda, ad esempio 6870 per la HD 6870 e 6310 per la E-350.

Xorg ora si avvierà ed sarà possibile utilizzare amdcccle invece di aticonfig anche se risulterà un avviso: "AMD Unsupported hardware".

È possibile rimuovere questo avviso utilizzando il seguente script:

#!/bin/sh
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
 sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
done

Riavviare!

Supporto a WebGL in Chromium

Per qualche ragione Google ha messo in balcklist il driver Catalyst per Linux per ciò che concerne l'accelerazione WebGL nei browser Chromium/Chrome.

Per ovviare a ciò è possibile modificare il file /usr/share/applications/chromium.desktop ed aggiungere la flag --ignore-gpu-blacklist alla riga Exec in modo che appaia così:

/usr/share/applications/chromium.desktop
....
Exec=chromium %U --ignore-gpu-blacklist
....

È anche possibile eseguire il browser da riga di comando direttamente con la flag $--ignore-gpu-blacklist:

$ chromium --ignore-gpu-blacklist
Attenzione: I driver Catalyst non supportano l'estensione GL_ARB_robustness, è possibile che un sito malevolo possa sfruttare questa mancanza per attuare un attacco DDOS sulla scheda grafica, per ulteriori informazioni consultare: [1]

Freeze guardando video flash con flashplugin

Modificare /etc/adobe/mms.cfg per renderlo simile a questo:

#EnableLinuxHWVideoDecode=1
OverrideGPUValidation=true

Artefatti e movimenti lenti delle finestre con GNOME 3

È possibile provare questa soluzione che sembra essere una buona soluzione per molti utenti. Aggiungere la linea:

export CLUTTER_VBLANK=none

nel file ~/.profile o in /etc/profile.

Riavviare X o tutto il sistema.

Impossibile usare la modalità fullscreen con risoluzione 1920x1080

Aggiungere questo a xorg.conf.

Option      "DPMS" "true"

La sezione Monitor dovrebbe risultare simile a questa.

Section "Monitor"
       Identifier   "0-DFP5"
       Option      "VendorName" "ATI Proprietary Driver"
       Option      "ModelName" "Generic Autodetecting  Monitor"
       Option      "DPMS" "true"
       Option      "PreferredMode" "1920x1080"
       Option      "TargetRefresh" "60"
       Option      "Position" "0 0"
       Option      "Rotate" "normal"
       Option      "Disable" "false"
EndSection