Autore Topic: AMD dual graphics APU/GPU con Catalyst > 12.8  (Letto 1436 volte)

Offline IVIonty

  • *
  • Post: 70
  • Reputazione: 15
    • Mostra profilo
AMD dual graphics APU/GPU con Catalyst > 12.8
« il: 21 Febbraio 2013 ore 22:50 »
Scopo:
La guida si rivolge a chi possiede computer (generalmente notebook) con doppio chip grafico AMD (sistemi Fusion, Trinity, etc) e vuole utilizzare gli ultimi driver AMD Catalyst proprietari.
Aggiornamento: rispetto alla prima stesura della guida, ne consiglio l'uso a chi ha un sistema con chip integrato nel processore e GPU separata, quindi sistema APU/GPU. In sistemi con doppia GPU, entrambe separate dal processore, sono emersi dei problemi di risparmio energetico che sto approfondendo.
La guida inoltre non si rivolge a chi possiede sistemi ibridi Intel/AMD. In quel caso è possibile configurare il sistema facendo riferimento ai seguenti Wiki di Arch:

con driver open Radeon -> https://wiki.archlinux.org/index.php/Hybrid_graphics#ATI_Dynamic_Switchable_Graphics
con driver proprietari Catalyst -> https://wiki.archlinux.org/index.php/AMD_Catalyst#PowerXpress_support

Il perchè di questa guida:
Nei sistemi ibridi AMD è presente una GPU a basse prestazioni, rivolta al risparmio energetico (ad esempio una GPU integrata nella CPU, ossia una APU), ed una GPU separata per prestazioni avanzate.
A partire dalla versione 12.9 dei driver proprietari AMD Catalyst si è presentato un bug tuttora irrisolto: in sistemi ibridi se si attiva la GPU a risparmio energetico, si ottiene un kernel panic ogni qualvolta si riavvia o si spegne il sistema.
Ciò è causato da un errore di sync nel momento in cui il modulo FGLRX viene rimosso dalla memoria.

Per maggiori informazioni a riguardo potete far riferimento alle seguenti fonti:
thread sul forum di Arch dedicato ai driver proprietari AMD (gestito da Vi0L0, manutentore e patcher dei pacchetti Catalyst per Arch) in cui abbiamo discusso del problema:
- https://bbs.archlinux.org/viewtopic.php?pid=1234653#p1234653
bug tracking sul sito AMD:
- http://ati.cchtml.com/show_bug.cgi?id=645

Come:
Attraverso una opportuna configurazione del server X è possibile ottenere il corretto funzionamento dei driver proprietari AMD con PowerXpress. In questo modo diventa possibile passare dalla GPU a risparmio energetico a quella con prestazioni elevate senza generare kernel panic.
La soluzione proposta aggira un problema insito nei driver AMD, è quindi un workaround che però sembra funzionare in maniera stabile.
Il tutto l'ho testato nelle seguenti combinazioni sistema/kernel/driver/xorg
- Chakra / linux 3.7.6-1 / catalyst 13.1-3 / xorg 1.12.3-3
- Arch / linux 3.7.9-1 / catalyst 13.1-2 / xorg 1.13.2-1
- Debian Testing / linux 3.2.0-38 / catalyst 13.1-1 / xorg 1.11.1-1 (in pratica una quasi Ubuntu 12.04 LTS credo)
Con medesimi risultati.

Tempo necessario:
10 minuti

Procedimento:
Per comodità e brevità di qui in avanti mi riferisco con
iGPU -> processore grafico a risparmio energetico;
pGPU -> processore grafico a prestazioni elevate;
che sono gli stessi acronimi utilizzati da AMD.
La modifica al file xorg.conf si basa su un'assunto: il kernel panic che si ottiene quando si spegne e/o riavvia il sistema con la iGPU attiva può essere causato dalla mancanza di descrizione, all'interno del file di configurazione di X, della iGPU stessa. Nelle versioni precedenti del driver ciò non comportava problemi, in quanto i Catalyst non utilizzano in toto i file di configurazione di X, ma dalla 12.9 la gestione degli schermi pare essere cambiata.
In effetti quando si crea la configurazione iniziale col comando
Codice: [Seleziona]
$ sudo aticonfig --initialviene configurata la prima GPU identificata, che è sempre la pGPU.
Si può infatti immaginare il sistema ibrido come due GPU in parallelo (dual-head), ma che utilizzano il medesimo schermo/monitor di Xorg di volta in volta.
Detto ciò, andiamo a configurarle X col comando:
Codice: [Seleziona]
$ sudo aticonfig -f --initial --adapter=allIn questo modo aticonfig creerà due sezioni distinte per le due GPU, con gli opportuni riferimenti al modulo FGLRX per gestirle.
Il file creato automaticamente va però modificato, infatti se utilizzato così crea una layout degli schermi inutilizzabile.
Ho provato diversi ServerLayout di Xorg, e quello descritto sotto finora è risultato il migliore. Per utilizzarlo andiamo ad editare il file xorg.conf ad esempio dando il comando
Codice: [Seleziona]
$ kdesu kate /etc/X11/xorg.confe modifichiamo la sezione ServerLayout come segue:
Codice: [Seleziona]
Section "ServerLayout"
Identifier     "aticonfig Layout"
Screen      0  "aticonfig-Screen[0]-0" 0 0
Screen         "aticonfig-Screen[1]-0" Relative "aticonfig-Screen[0]-0" x y
EndSection
Dove al posto di x ed y andremo ad inserire l'ampiezza e l'altezza in pixel relative alla risoluzione del nostro monitor (ad esempio 1024x768, 1366x768, 1920x1080, etc).
Riavviamo il sistema o in alternativa solo il server X, e successivamente diamo il comando
Codice: [Seleziona]
$ sudo  aticonfig --px-igpuIn modo che il sistema passi ad utilizzare la iGPU.
Riavviamo per l'ultima volta il sistema e voilà, avremo la iGPU funzionante senza kernel panic.
« Ultima modifica: 22 Febbraio 2013 ore 09:52 da IVIonty »
- Per arrivare all'alba non c'è altra via che la notte -
Kahlil Gibran

 

Template by Homey | Sito ufficiale | Disclaimer