Contenu | Rechercher | Menus

Le pilote libre Radeon

Le pilote libre Radeon est dédié au support de certaines carte graphique ATI/AMD. Il se présente comme une alternative crédible au pilote propriétaire fourni par le constructeur.
En effet, suite au rachat de ATI par AMD, les spécifications techniques des cartes sont maintenant en accès libre. Cela a permis à la communauté d'accélérer la création de différents pilotes entièrement libre dont la famille Radeon.

Le pilote libre Radeon se charge par défaut, au moment du démarrage, quand une carte ATI/AMD supportée est détectée. Mais ce pilote peut facilement être remplacé par le pilote propriétaire fourni par le constructeur en allant dans les paramètres système → Pilotes additionnels. Effectivement, le driver libre ne couvre pas encore la totalité des fonctionnalités fournies par le pilote ATI/AMD, notamment dans le domaine de la 3d. Le retard est variable en fonction du type de carte et de la version du pilote.

À noter que le développement des pilotes est très dynamique et que ce retard se comble rapidement. Et chaque nouvelle version d'Ubuntu apporte la dernière version du pilote stable et le lot de nouveautés et de corrections qui vont avec.

AMD vient de publier le code source de l'UVD (Unified Video Decoder ) à la communauté Open source le 11 Avril 2013. Ainsi, la prise en charge complète de l'accélération matérielle sera disponible à partir du noyau 3.10.

Connaître sa carte graphique

Identifier sa carte graphique avec lspci

Pour cela il suffit de taper dans votre terminal:

lspci -nn | grep VGA

La commande doit renvoyer quelque chose dans ce style:

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RV670 [Radeon HD 3870] [1002:9501]

Ici la carte est donc une Radeon HD 3870 équipée d'une puce RV670, le dernier chiffre (9501) étant l'identifiant (ID) de la carte.

Pour savoir dans quelle famille de driver se trouve votre carte, reportez-vous à ce tableau. Ici il s'agit donc du driver R600 qui s'occupe de la puce RV670. Et en fonction de cela, vous pouvez savoir quelles sont les fonctionnalités supportées par le tout dernier pilotes, en lisant la page Radeon Feature

Plus d'informations sur les capacités supportées avec glxinfo

La commande glxinfo va aussi vous permettre de récupérer des infos intéressantes:

glxinfo
direct rendering: Yes  \\(support de l'accélération graphique Oui)
OpenGL vendor string: X.Org \\(notre bienfaiteur, la fondation X.org)
OpenGL renderer string: Gallium 0.4 on AMD RV670 \\(Gallium embarque le pilote radeon)
OpenGL version string: 2.1 Mesa 8.0.2 \\(la version de Mesa et le support complet de OpenGL 2.1)
OpenGL shading language version string: 1.20 \\(La version de glsl supportée) 

Ainsi qu'un détail des extensions OpenGL utilisables par votre carte:

OpenGL extensions:
    GL_ARB_multisample, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, 
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_copy_texture ......

Certaines font déjà partie des spécifications d'OpenGL 3, mais comme il en manque quand même, le support complet n'est valable que pour la version 2.1.

À noter que certain logiciel ou jeux peuvent ne pas se charger parce qu’il manque une extension. Cette liste vous aidera peut être à trouver laquelle.

Et aussi

  • Il existe un manuel pour les pilotes radeon accessibles en tapant:
    man radeon
  • Le version du paquet incorporant les pilotes se trouve en tapant:
    apt-cache show xserver-xorg-video-ati

Installer une version plus récente des pilotes

Attention, la suite comporte des risques et peut provoquer des crashs.

Installer une version plus récente à l'aide d'un PPA

Dans le cas où vous souhaiteriez tester une version plus récente mais instable des pilotes, il est possible d'ajouter le dépôts PPA ppa:xorg-edgers/ppa 1).
Ce dépôt comprend les dernières versions des pilotes libres radeon (xserver-xorg-video-ati), Nouveau, Intel, ainsi que Mesa (OpenGL), et xorg et bien d'autres paquets liés au support des cartes graphiques.
Ce dépôt comporte beaucoup d'éléments instables, c'est donc à vos risques et périls. Avec l'outil apt-get vous saisirez :

  • Ajout du dépôt:
    sudo add-apt-repository ppa:xorg-edgers/ppa
  • Mise à jour de la liste des paquets:
    sudo apt-get update
  • Installation des mises à jours:
    sudo apt-get upgrade
  • Redémarrez à la fin de la mise à jour

Sachez qu'il est possible de revenir en arrière avec la commande ppa-purge.

sudo ppa-purge xorg-edgers

Installer la version Git

Git vous permet de bénéficier des dernières modifications de radeon et donc d'une quantité importante de nouvelles fonctionnalités et corrections de BUGS. Cependant, de nouveaux BUGS peuvent être introduits. Cette méthode d'installation est donc réservée aux utilisateurs avancés, testeurs et autres enthousiastes.

Depuis que la version git nécessite xorg-macros version 1.8, pour pouvoir compiler sous Ubuntu 10.04, il faut préalablement installer le paquet xutils-dev_7.5+4_i386.deb disponible ici

Avant de pouvoir installer la "version git", il faut s'assurer que les paquets suivants soient bien installés sur le système :

Installez les paquets build-essential git-core configure-debian automake autoconf xorg-dev libtool libdrm-dev mesa-common-dev xutils-dev
soit pour les adeptes de la ligne de commande avec l'outil apt-get :

sudo apt-get install build-essential git-core configure-debian automake autoconf xorg-dev libtool libdrm-dev mesa-common-dev xutils-dev xutils

Ensuite, il faut récupérer la dernière version du pilote grâce à GIT

git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati

puis la compiler :

cd xf86-video-ati/; ./autogen.sh --prefix=/usr; make; sudo make install 

Configuration de l'affichage

À une époque il était courant de modifier le fichier /etc/X11/xorg.conf pour activer une option ou ajouter un second moniteur. Mais depuis quelques versions d'Ubuntu ce fichier de configuration de Xorg est divisé en plusieurs morceaux et de nombreuses options ne sont plus fonctionnelles.
Il est maintenant conseillé d'utiliser la librairie xrandr qui permet d'ajouter un moniteur ou de tourner l'affichage de son écran en quelques commandes.

Purger une installation non fonctionnelle

Vues les difficultés que posent encore les cartes graphiques, difficultés qui se contournent souvent pas des manipulations à la main, il arrive régulièrement que l'on se retrouve à nouveau dans une situation graphique non fonctionnelle. Cela arrive en particulier lors de migration d'une version d'Ubuntu à une autre. Le pilote libre radeon offrant des performances de plus en plus satisfaisante, il est intéressant de l'essayer à nouveau dans une telle situation, puisqu'il est libre, maintenu par la communauté et se mettra donc à jour automatiquement via le gestionnaire de paquets. Le paragraphe suivant propose de purger toutes les tentatives d'installations de pilotes précédentes, de configurer correctement le pilote radeon et de relancer le serveur graphique. Les commandes supposent que vous utilisez lightdm comme fenetre_de_connexion, ce qui est le cas par défaut. Le fichier de configuration du Display Manager est /etc/X11/default-display-manager que l'on peut afficher avec la commande

 cat /etc/X11/default-display-manager

Si votre fenetre_de_connexion n'est pas lightdm, remplacer les lignes correspondantes en conséquence.

Pour réaliser cette opération, voici la démarche. Passer en session terminale tty1 en appuyant simultanément sur <ctrl>+<alt>+<F1>. Renseignez votre login et mot de passe. À partir de là, vous pouvez stopper votre serveur graphique qui se trouve lui en <ctrl>+<alt>+<F7> :

sudo service lightdm stop

Supprimer toutes les possibles installations préalables de drivers pour votre carte AMD-ATI. Avant de lancer la première commande, vérifier que le dossier /usr/share/ati/ existe par

cd /usr/share/ati/

Si tel n'est pas le cas, alors vous n'avez pas besoin de lancer cette commande.

sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo apt-get remove --purge fglrx*
sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon  
sudo apt-get install xserver-xorg-video-radeon
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core 
sudo dpkg-reconfigure xserver-xorg

Nous allons maintenant générer un nouveau xorg.conf. Pour cela, commencer par sauvegarder la version courante de ce fichier (on ne sait jamais) :

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

puis déplacez vous dans un endroit où vous avez tous les droits, par exemple votre /home

cd 

et lancer la commande de configuration du xorg.conf

sudo Xorg -configure

En cas de message d'erreur ne permettant pas d'exécuter cette commande, supprimer le fichier à l'origine de ce blocage:

sudo rm /tmp/.X0-lock

Puis réexécuter la commande précédente, qui devrait vous avoir généré un fichier nommé xorg.conf.new à l'endroit même, même si la commande a terminé par une erreur. Il vous faut maintenant éditer ce fichier pour vous assurer qu'il n'y a qu'une seule section "Device" qui pointe vers le driver radeon

[...]
Section "Device"
    [...]
    Driver        "radeon"
EndSection

Enfin, placez le nouveau fichier xorg.conf au bon endroit

sudo cp xorg.conf.new /etc/X11/xorg.conf

et relancer le serveur graphique

sudo service lightdm start

Gestion de l'énergie/performance

Il y a maintenant moyen d'avoir une gestion de l'énergie assez efficace et comparable à celle du pilote propriétaire grâce au KMS (Kernel-based mode-setting).

Trois méthodes s’offrent à vous:

Gestion dynamique matérielle

Attention, vous avez besoins du noyaux linux 3.11 et de firmwares récents pour utiliser cette méthode (donc Ubuntu 13.10 ou plus récent)

Cette méthode ne fonctionne qu'à partir des cartes HD2000 (r600) et plus récentes. Elle utilise la gestion de l'énergie au niveau matériel, ce qui peut entraîner un gain de performance et une baisse de la consommation énergique. Cette méthode permet quelques fois d'obtenir des températures équivalentes à celle du pilote propriétaire, mais aussi plus basses que dans le cas des autres méthodes utilisées.

Pour activer le dpm, il faut activer son support dans le noyaux.

Le dmp est activé par défaut avec le noyau linux 3.13 (donc Ubuntu 14.04) sur les cartes radeon HD 4000 (sauf 4200), HD 5000, HD 6000 (sauf HD 6900), HD 7000 (sauf HD 7790), HD 8000 (sauf HD 8770), R7 250X et inférieur, R7 265, R9 280X et supérieur (sauf R9 295X2). Aucune manipulation n'est nécessaire avec cette version d'Ubuntu avec ces cartes. Le dmp n'est pas activé avec l'igp intégré Radeon HD 3450

Attention, on modifie ici des options de démarrage, une manipulation non compatible peut empêcher votre machine de démarrer.

Vous pouvez le faire en ajoutant la commande "radeon.dpm=1" au fichier de configuration /etc/default/grub:

Ouvrez le fichier /etc/default/grub avec des droits d'administration.

Repérez la ligne

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Modifiez la en:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.dpm=1"

Puis enregistrez.

Il reste alors à mettre grub à jour:

sudo update-grub

L'effet serra actif au prochain démarrage.

Gestion dynamique logicielle

La méthode dynamique "dynpm" est plus moderne et plus efficace que celle par profiles. Elle ne fonctionne pas sur toutes les cartes graphiques. Elle modifie dynamiquement les fréquences (ram + core) et le voltage de la carte.

Pour le rendre automatique au démarrage, vous pouvez commencer par créer un fichier dans init.d:

Créez le fichier /etc/init.d/ati-power-save avec des droits d'administration.

Vous ajoutez ces lignes dans le fichier:

#!/bin/sh
 
# ATI power save
echo dynpm > /sys/class/drm/card0/device/power_method

Vous l'enregistrez puis le rendez exécutable:

sudo chmod +x /etc/init.d/ati-power-save 

Il reste à créer les liens qui permettrons au script d'être exécuté à chaque démarrage:

sudo update-rc.d ati-power-save defaults 99 

Gestion de l'énergie par profils

La méthode par profils est basée sur 5 profils de gestion plus basiques mais qui fonctionne sur une gamme de matériel plus large.

Les 5 profils sont:

  • "default": Horloges et voltages par défaut (option que vous avez si vous ne faites rien)
  • "auto": Passer en mode "high" quand le système est sur secteur et "mid" quand il est sur batterie.
  • "low": Force les fréquences et voltages les plus bas. Peut poser des problèmes sur certains matériels car il correspond au mode d'affichage dpms innactif
  • "mid": Force un mode de puissance moyenne.
  • "high": Force les fréquences et voltages au plus haut accessible (sans overclocking).

Pour le rendre automatique au démarrage, vous commencer par créer un fichier dans init.d:

Créez le fichier /etc/init.d/ati-power-save avec des droits d'administration.

Vous y ajoutez ensuite les lignes:

#!/bin/sh
 
# ATI power save
echo profile > /sys/class/drm/card0/device/power_method
echo low > /sys/class/drm/card0/device/power_profile

(remplacez low par le mode voulu).

Vous l'enregistrez puis le rendez exécutable:

sudo chmod +x /etc/init.d/ati-power-save 

Il reste à créer les liens qui permettrons au script d'être exécuté à chaque démarrage:

sudo update-rc.d ati-power-save defaults 99 

Les commandes contenues dans les scripts peuvent êtres utilisées seules pour un effet jusqu'à extinction de la machine.

Sources pour l’économie d'énergie:

Décodage vidéo matériel

A partir d'Ubuntu 14.04, il est possible d'utiliser VDPAU pour le décodage des vidéos par la carte graphique. Cela concerne toutes les radeons supportant l'UVD 2.2 et supérieur donc radeon HD 4000 et plus, excepté HD 4200, HD 4800 et quelques mobility HD 4000. (Liste complète ici : http://en.wikipedia.org/wiki/Unified_Video_Decoder#UVD-enabled_GPUs).

Pour l'utiliser, il suffit d'installer le paquet "mesa-vdpau-drivers" :

sudo apt-get install mesa-vdpau-drivers

Vous pouvez également installer "vdpauinfo" pour vérifier si VDPAU est correctement installé:

sudo apt-get install vdpauinfo

Ce qui doit normalement renvoyer quelque chose proche de ceci :

display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Liens externes


Contributeurs : Stemp, Id2ndR, Neothor, _Enchained, Smarter, quent57, mAx0r1311 , Réécriture compléte juillet 2012: kao_chen



Le contenu de ce wiki est sous licence : CC BY-SA v3.0