6 juin 2008

tutorial: Compiz Fusion sur Feisty/Gutsy/Hardy


Ceci est un tutorial que j'ai écrit pour l'école; oui que j'ai écrit, pas pompé copié/collé de chez quelqu'un d'autre, (i actually understand what i wrote xD). L'original est sur mon serveur maison dispo ici (onglet Compiz Fusion), il est un peu mieux présenté mais c'est plus lent d'y accéder. J'ai essayé de le rendre clair, il est utilisable de Feisty jusqu'à Hardy.
J'aimerais aussi remercier nkh (vidéo youtube) de m'avoir bien éclairé à propos des modules et de leurs fonctionnement. Compiz Fusion MARCHE avec les cartes ATI, plus ou moins bien c'est vrai mais c'est fonctionnel, actuellement je tourne en Dual Screen avec Compiz activé, et ca marche TRES BIEN.

Compiz Fusion est une application permettant de gérer de superbes effets graphique à l'écran, à l'instar d'Aero sous Windows Vista.
Il rassemble la plupart des effets graphique disponible sous Vista et sous Mac OS X mais va encore plus loin d'une part en proposant des effets inédits, comme par exemple la possibilité d'afficher vos bureaux virtuels sur les faces d'un cube mais en plus, et c'est bien la sa plus grande particularité, il permet "d'alléger" le processeur, c'est à dire que les tâches graphiques ne sont plus calculées par le processeur mais par le GPU de la carte graphique.
En fait Compiz Fusion est un programme qui va agir comme une surcouche de X, il fait le lien entre le serveur X et le driver de la carte graphique. Jusqu'à l'année dernière encore, il fallait passer par un driver propriétaire (pour les cartes ATI et NVIDIA) qui supportait l'accélération matérielle, maintenant des drivers libre plus ou moins stable font surface. Je possède une Ati Radeon x1650 en AGP (celle avec 512 Mo embarqué). Je n'utilise pas le driver libre car il ne supporte pas assez bien mon matériel, et les performances ne sont pas au rendez-vous.
L'installation de Compiz Fusion sur une Ubuntu Gutsy Gibbon est assez aisée, il suffit en gros d'installer les paquets avec apt-get. Mais il faut, pour que Compiz se lance, installer les drivers (pour l'accélération matérielle), vérifier qu'ils soient bien utilisé par Gutsy, et la seulement on pourra installer et configurer Compiz.
Avant de commencer, je voudrais faire remarquer que j'ai démarré d'une fresh install, j'ai essayé d'installer les drivers proprio avec le gestionnaire de pilotes propriétaires sans succès, je n'utilise pas XGL mais AIGLX car les nouveaux drivers ATI (depuis la v.8) supportent AIGLX qui, je trouve, utilise moins de ressources (voir fin).

I - l'accélération matérielle

Pour récupérer les derniers drivers ATI, il faut se rendre ici:

http://ati.amd.com/support/driver.html

et chercher son driver avec l'assistant. Une fois le fichier ati-driver-versionxxx.run téléchargé, il suffit de le lancer avec les droits super utilisateur:

sudo sh ati-driver-versionxxx.run

suivre le GUI qui va s'ouvrir et faire une installation standard. Et c'est la que ca se complique, le premier soucis que j'ai eu c'est que l'installeur de Ati ne m'installait meme pas le driver, je n'avais que la doc et le Control Center d'Ati :/
On vérifie que le driver ai bien été copié et compilé, pour vérifier ca on va voir dans le dossier /lib/modules et on vérifie que le dossier fglrx existe, si oui c'est que l'installateur a bien crée le module, il devrait se trouver dans le dossier fglrx et s'apelle fglrx-version_du_noyau.ko, la version du noyau est disponible par

uname -r

dans une console. Mais si vous ne trouvez pas le module fglrx, on va tenter en demandant a l'installeur de génerer un paquet .deb du module fglrx. Pour cela, il faudra installer les paquets:
  • build-essential
  • fakeroot
  • dh-make
  • debhelper
  • debconf
  • libstdc++5
  • dkms

pour régler tout problèmes de dépendances, ensuite on peut génerer nos paquets avec:

sudo sh ati-driver-versionxxx.run --buildpkg Ubuntu/gutsy

L'installeur va alors génerer 4 paquets:
  • xorg-driver-fglrx_versionxxx.deb
  • xorg-driver-fglrx-dev_versionxxx.deb
  • fglrx-kernel-source_versionxxx.deb
  • fglrx-amdcccle_versionxxx.deb
Le paquet qui nous interesse est fglrx-kernel-source_versionxxx.deb qui va justement nous compiler un module fglrx et nous le copier dans notre répertoire /lib/modules/fglrx
A partir de là, on va tuer X en tapant dans une console:

sudo /etc/init.d/gdm stop

on se met sur un autre TTY (CTRL+ALT+F1 par exemple) et on se logue de nouveau.
On va vérifier que le driver proprio que j'ai essayé d'installer au tout début ne tourne pas actuellement, pour cela je fais un:

lsmod | grep fglrx

si la commande me retourne quelque chose c'est que le driver utilisé par X est toujours en mémoire, il faut le décharger et lancer le notre à la place:

sudo rmmod fglrx
sudo insmod /lib/modules/fglrx/fglrx-version_du_noyau.ko

Voila a partir de la nous n'avons toujours pas redémarré, on relance X avec

startx

X utilise le driver proprio que nous avons installé, pour en être sur, on va ouvrir une console et taper:

fglrxinfo

qui devrait retourner que l'on utilise bien le driver ATI, on peut essayer:

glxgears

Je tourne autour de 3200 FPS avec ma Radeon X1650, pour finir on va éditer le fichier rc.local situé dans /etc et on rajoute:

sudo /lib/modules/fglrx/fglrx-version_du_noyau.ko

juste avant la ligne exit 0 Il faudra redémarrer ensuite, se reloguer et lancer la commande:

sudo aticonfig --initial -f

l'utilitaire d'ATI configurera tout seul votre xorg.conf, il faudra relancer X en faisant la manip pour l'arreter et le redemarrer ou simplement faire un CTRL+ALT+RETOUR ARRIERE, quand X aurra redémarré, on pourra utiliser le Control Center d'ATI pour configurer, comme moi le dual screen ^^.

II - Compiz Fusion

Maintenant on va installer Compiz Fusion, pour cela il suffit d'apeller apt-get:

sudo apt-get update

pour qu'il mette a jour sa base de donnée et:

sudo apt-get install compiz compizconfig-settings-manager

et le tour est joué !
Avant de lancer Compiz Fusion, il faudra autoriser notre module dans le fichier de lancement de Compiz, il se trouve à /usr/bin/compiz. Il faudra chercher la ligne:

# Driver whitelist
WHITELIST="nvidia intel ati radeon i810"

et rajouter fglrx entre les doublequotes.
Il suffit de se rendre dans le menu Système->Préférences-Apparence et se rendre dans le dernier onglet, la on pourra activer Compiz Fusion.
Dans Système->Préférences->Advanced Desktop Effects Settings vous pourrez configurer et modifier les paramètres de Compiz.
Pour vous rendre compte de l'utilisation du CPU avant et apres Compiz, il suffit de taper:

top

dans une console et voir la différence de ressources utilisées, X utilise un peu plus de ressources mais globalement on gagne en rapidité d'execution pour les autres applications.

2 commentaires:

Tuterai a dit…

Il y a une petite erreur dans le tuto. Le paquet a installer est dh-make et non dh_make. =)

milkyboi a dit…

sorry, l'erreur est rectifiée, merci encore !