amd

Risolvere il problema di surriscaldamento delle schede video ibride ATI/AMD, spegnendone una

Questo post è per chi ha un portatile con una scheda video ibrida AMD/ATI non più supportata dai driver Catalyst (fglrx).

Facciamo un po’ di chiarezza, anche se è alquanto difficile fare chiarezza sullo stato dei driver proprietari Catalyst e capire quali schede video siano davvero supportate e quali no, tra Catalyst e Catalyst Legacy, Xorg e kernel che cambiano le ABI e rompono la compatibilità binaria con i vecchi driver… so solo che leggo nella pagina degli ultimi rilasci di AMD che la mia scheda video dovrebbe essere supportata in produzione su Ubuntu 12.10 ed invece non funziona.

Prima di oggi l’unica soluzione che i motori di ricerca mi suggerivano era: “comprati un’altra scheda video o cambia portatile“. Tanto che mi ero convito che fosse davvero l’ultima soluzione e stavo iniziando a preparmi a vendere un portatile per il quale ho sudato sette camicie a staccare lo stampino di WINDOWS per attaccarci su quello di UBUNTU. Figuratevi a venderlo… «…si però se ci installi una distro con un kernel maggiore del 3.2 surriscalda troppo e si spegne perchè non ci sono i driver della scheda video…», chi cazzo se lo sarebbe comprato, per usarlo con WINDOWS ma con lo stampino di UBUNTU. Avrei potuto venderlo solamente ad un fanatico di WINDOWS che lo avrebbe usato come dimostrazione che GNU/Linux non funziona.

Invece no. Me lo tengo. Perchè funziona. Con i driver opensource che funzionano meglio degli fglrx.

Continuiamo a fare chiarezza, ma stavolta riguardo i driver opensource, perchè con i Catobrepa… Catobepla… Catoblepa… Catalyst ho chiuso.

Lo stato dei driver opensource è ottimo, il #pobblema è un altro: è necessario SPEGNERE la scheda video dedicata, perchè altrimenti sembra che resti attiva, a palla, e si surriscaldi fino a far andare in protezione il sistema in estate o a tenere le ventole al massimo in inverno, quando di certo non va in protezione ma ci diventi cretino e sordo. Semplicemente basta spegnerla. E come si fa?

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Con questo comando si dice al kernel di SPEGNERE la scheda che non si sta utilizzando.

Su qualsiasi distro, perchè è una questione di kernel, se nel vostro sysfs esiste quel percorso potete controllare le due schede video, scegliere quale delle due usare e spegnere l’altra. Magicamente la temperatura inizierà a diminuire, le ventole a rallentare, lo stesso comportamento di quando si usano gli fglrx.

Adesso sto utilizzando la scheda video integrata e va benone con i driver opensource, molto meglio di quella discreta con i driver fglrx: l’esperienza desktop in generale è molto più fluida, non c’è proprio paragone.

E’ non è finita… chi è nella mia stessa condizione ha notato anche che il portatile, senza gli fglrx, ha problemi a spegnersi ed a riavviarsi. Credevo fosse un problema di ACPI, ed in effetti in tutto ciò c’entra l’ACPI ma siamo sempre li: visto che una scheda video non è SPENTA il sistema semplicemente ASPETTA che si spenga inibendo il riavvio e lo spegnimento.

Adesso il mio portatile si spegne e si riavvia tranquillamente, senza dover forzare l’operazione con il tasto hardware e con tutti i rischi del caso.

Vediamo velocemente come liberarci dai Catalyst, o fglrx che dir si voglia. Ho solo questo portatile HP Pavilion dv6 3034sl e non so per altri modelli di schede video, a quanto ho capito dovrebbe funzionare per tutte le schede video ibride riconosciute come tali dal kernel.

1. Rimuovere i Catalyst

sudo apt-get autoremove --purge fglrx*

2. Riavviare il computer

3. Rilassarsi e prepararsi ad ignorare il fastidio delle ventole a palla ed il calore sotto la mano destra

4. Controllare nei log di Xorg quale scheda video attualmente si sta utilizzando (dovrebbe essere quella integrata di default, o comunque quella legata al primo framebuffer /dev/fb0).

$ more /var/log/Xorg.0.log
[    24.620] (--) PCI:*(0:1:5:0) 1002:9712:103c:1440 rev 0, Mem @ 0xd0000000/268435456, 0xf0400000/65536, 0xf0300000/1048576, I/O @ 0x00004000/256
[    24.620] (--) PCI: (0:2:0:0) 1002:68c1:103c:1440 rev 0, Mem @ 0xe0000000/268435456, 0xf0200000/131072, I/O @ 0x00003000/256, BIOS @ 0x????????/131072

è quella con l’asterisco, nel mio caso la 4200 (che mi basta ed AVANZA, io nemmeno la volevo un’altra)

$ lspci
01:05.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RS880M [Mobility Radeon HD 4200 Series]
02:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Madison [Radeon HD 5000M Series] (rev ff)

5. aggiungere queste righe a /etc/rc.local prima di exit 0

echo OFF > /sys/kernel/debug/vgaswitcheroo/switchecho low > /sys/class/drm/card0/device/power_profileecho low > /sys/class/drm/card1/device/power_profile

ovvero: spegni l’altra scheda ; imposta il profilo energetico basso ad entrambe (per scrupolo, visto che l’altra è spenta)

Maggiori info: http://wiki.ubuntu-it.org/Hardware/Video/GraficaIbrida/Vga_switcheroo

La situazione attuale dei driver AMD ATI Catalyst – fglrx

In questi ultimi tempi stiamo tutti assistendo a tante novità riguardo le interfacce grafiche che stanno iniziando a sfruttare appieno le potenzialità delle schede video, com’è giusto che sia. Fino a qualche anno fa chi non aveva esigenze specifiche poteva tranquillamente sopravvivere senza l’accelerazione 3D, ovvero senza le “animazioni aggiuntive” di GNOME2 (compiz). Adesso l’accelerazione 3D è diventata un requisito per poter utilizzare Unity o GNOME3 ed infatti si può notare quanti passi avanti abbino fatto xorg ed i vari driver sia open source inclusi nel kernel che proprietari.

Non c’è da meravigliarsi più di tanto se quelli proprietari, come nel caso dei Catalyst di ATI/AMD, decidano di sviluppare solo quello che gli conviene maggiormente e di smettere di supportare prodotti ormai legati al passato, anche se ancora utilizzati da tante persone. E non c’è nemmeno da meravigliarsi ne biasimare gli aggiornamenti di xorg che va avanti nel suo sviluppo e dalla versione 1.12 ha introdotto delle novità che rendono incompatibili i vecchi driver. Anche se sono stati rilasciati agli sviluppatori del driver open source radeon pezzi di codice ACPI per migliorarne il supporto ci vorrà tempo prima che arrivi nei kernel stabili e nei portatili sfortunati il surriscaldamento è troppo e rende necessario l’utilizzo dei driver proprietari che funzionano appieno solo con le versioni di xorg minori od uguali alla 1.11.

In parole povere c’è da controllare bene questa pagina e scegliersi la distro che offre il software più recente/stabile utilizzando xorg 1.11 ed il kernel <= 3.2, nel mio caso elementaryOS Luna, basato su Ubuntu 12.04.

Nel limbo tra i radeon e gli fglrx

Stavo scrivendo due righe su rc.local per attivare automaticamente il profilo energetico basso ai driver OSS radeon per tamponare la temperatura quando non uso gli fglrx.

SPACCHIO=`grep fglrx /proc/modules`
if [ “$?” -ne “0” ]; then
   logger setting ‘low’ power profile
   echo low > /sys/class/drm/card0/device/power_profile
   echo low > /sys/class/drm/card1/device/power_profile
fi

Nel frattempo pensavo che per il mio portatile e per la mia scheda video la situazione attuale sia dei driver radeon che degli fglrx è davvero tragicomica. I radeon OSS come prestazioni sfrecciano ma purtroppo riscaldano ancora troppo sul mio modello, di contro con gli fglrx la temperatura è OK ma il 3D è quello che è e suprattutto non funziona ancora Gnome 3 (pure compiz ogni tanto crasha).

Finchè la situazione non migliora (nel senso che o ATI rilascia driver seri o gli sviluppatori dei driver OSS fanno il miracolo con un miglior supporto al risparmio energetico) mi continuo a trovare ad attivare e disattivare gli fglrx e soprattutto ad usare una rolling instabile pur di vivere gli aggiornamenti in attesa di una soluzione. Da distribuzione a distribuzione non cambia nulla, le funzionalità dei driver del kernel attuali quelle sono… per il mio modello la combinazione di versioni più stabili ed usabili tra xorg, kernel e librerie sono orientativamente quelle di Ubuntu 10.10 ma che portano vecchi bug, tipo al touchpad ed all’ACPI. Per questo ora mi trovo a scrivere per disperazione ma ottimista da una Ubuntu 12.04 alpha che nonostante tutto funziona già meglio di 11.04 e 11.10.

Insomma, che possano piacere o meno, sia Unity che Gnome 3 rappresentano un approccio nuovo molto interessante… stiamo osservando quotidianamente quanto mouse e tastiera si allontanano ed il touch si avvicina ed a me -personalmente- non dispiacerebbe affatto poter sostituire nel futuro un portatile con un tablet che però so che dentro ci sta girando una distro intera che mi permette di aprire un terminale e continuare ad utilizzarlo come voglio io, modificarlo o svilupparci qualcosa.

Niente, mi girano un po’ i coglioni che con i driver ed i kernel attuali non posso provare ancora appieno queste novità. Tutto qui. Era solo una riflessione per dire che nonostante tutto sono grato agli sviluppatori open source per il lavoro che fanno e che stavolta me lo sono accollato ma nel futuro non comprerò nemmeno una cornicetta elettronica se so che c’è dentro un chipset AMD/ATI.

HP Pavilion dv6 3034sl

Advanced Micro Devices [AMD] nee ATI RS880M [Mobility Radeon HD 4200 Series]
Advanced Micro Devices [AMD] nee ATI Madison [Radeon HD 5000M Series]