Ubuntu grafica ibrida (switchable graphics)

Finalmente ho trovato una soluzione temporanea per la gestione della grafica ibrida del mio portatile.

Il mio touchsmart tm2-2101sl è equipaggiato da due schede video: la scheda Intel integrata nella CPU e la scheda discreta ATI HD5450 mobility. Purtroppo avevo entrambe le schede attive prima di questo approccio e quindi il computer sempre caldo e la durata breve della batteria. La soluzione attuale consiste nello spegnere la GPU discreta (ATI) e far funzionare il tutto sulla più energeticamente economica GPU integrata nella CPU. Il parametro switch del kernel non era disponibile nella 12.04 di Ubuntu per questo sono passato alla 12.10 prima del tempo (pre-alpha).

In soldoni da terminale visualizzo la situazione delle GPU con:

$ sudo su
# cat /sys/kernel/debug/vgaswitcheroo/switch

0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0
2:DIS-Audio: :Off:0000:01:00.1

IGD è la scheda integrata mentre DIS rappresenta la scheda discreta; nel mio caso, come si vede qui sopra, solo quella integrata è attiva (Pwr).

Primo comunico al kernel che voglio usare la scheda integrata e, col secondo comando, gli chiedo di spegnere il resto:

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

In teoria adesso potrei scaricare il driver della GPU discreta con un:

# rmmod radeon

Nel momento in cui lo scarico il kernel nasconde il parametro vgaswitcheroo. Dato che non voglio ripetere a mano ogni volta i comandi echo per spegnere la GPU aggiungo le due righe al file /etc/rc.local in maniera che vengano eseguite ad ogni avvio.

Maggiori informazioni sulla grafica ibrida si trovano sulla documentazione di Ubuntu