Le pilote libre Radeon
Le pilote libre Radeon est dédié au support de certaines cartes graphique AMD-ATI.
En effet, suite au rachat de ATI par AMD (en 2006), 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 libres dont la famille Radeon.
Le pilote libre Radeon se charge par défaut, au moment du démarrage, lorsqu'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 pilote 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.
Connaître sa carte graphique
Identifier sa carte graphique avec lspci
Pour cela il suffit de taper dans votre terminal la commande suivante:
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 nombre (9501) étant l'identifiant (ID) de la carte.
Pour savoir dans quelle famille de pilotes se trouve votre carte, reportez-vous à ce tableau. Ici il s'agit donc du pilote 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 certains logiciels ou jeux peuvent ne pas se charger parce qu’il manque une extension OpenGL. La liste ci-dessus vous aidera peut être à comprendre laquelle.
Et aussi
- La 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
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 bibliothèque 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 par 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 satisfaisantes, 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
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 (Dynamic power management), il faut activer son support dans le noyau Linux.
Pour vérifier si DPM est déjà activé, il suffit de taper :
sudo cat /sys/kernel/debug/dri/64/radeon_pm_info
S'il apparaît des lignes semblables à celles-ci :
uvd vclk: 0 dclk: 0 power level 0 sclk: 11000 mclk: 25200 vddc: 900
Cela veut dire que DPM est déjà activé.
Vous pouvez faire cela 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 sera actif au prochain démarrage.
Au cas où ubuntu ne démarre plus, il est conseillé de tester auparavant avec :
GRUB_CMDLINE_LINUX_DEFAULT="radeon.dpm=1"
Gestion dynamique logicielle
La méthode dynamique "dynpm" est plus moderne et plus efficace que celle par profils. 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 permettront 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:
- (en) Radeon Features
- (en) Méthode dpm
Vitesse du ventilateur
Bien que les fonctionnalités de gestion de l'énergie ci-dessus devraient suffire à gérer les vitesses du ventilateur, certaines cartes graphiques peuvent rester trop bruyantes au repos (idle). Dans ce cas, si votre carte le supporte, vous pouvez changer la vitesse du ventilateur manuellement.
- Gardez à l'esprit que la méthode suivante configure la vitesse du ventilateur à une valeur fixe, et donc qu'elle ne s'ajustera pas automatiquement en fonction de la sollicitation du GPU, ce qui peut entraîner une surchauffe en cas de forte charge d'utilisation.
- Vérifiez (observez) la température du GPU lorsque vous appliquez des valeurs inférieures à la norme.
Procédez comme suit pour activer le réglage manuel de la vitesse du ventilateur de votre carte graphique (ou du premier GPU dans le cas d'une configuration multi GPUs).
sudo sh -c "echo 1 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable"
Ensuite, réglez la vitesse souhaitée du ventilateur de 0 à 255, ce qui correspond à 0-100% de la vitesse du ventilateur (la commande suivante le règle à environ 25%):
sudo sh -c "echo 64 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1"
Source
- (en) ATI: Fan Speed
Décodage vidéo matériel
Problèmes connus
Démarrage sur live-CD impossible
C'est par exemple le cas de la carte ATI Mobility Radeon 4650 HD ou de la carte ATU Trinity HD7480D, mais d'autres cartes de la même famille souffrent du même problème de gestion de DPM.
Il faut dans ce cas passer le paramètres "nomodeset" au démarrage du CD d'installation puis "radeon.dpm=0" à Grub après installation pour activer correctement le pilote radeon.
Dans d'autres cas (*buntu 16.04 et plus récentes), le mode "radeon.dpm=0" est nécessaire mais pas suffisant car l'accélération graphique peut être mal prise en charge et être responsable de plantages plus ou moins graves (écran subitement noir sans possibilité de retrouver une interface graphique, démarrage incomplet…). Il s'agit alors de forcer l'inactivation de l'accélération graphique en éditant le fichier /usr/share/X11/xorg.conf.d/10-radeon.conf.
sudo nano /usr/share/X11/xorg.conf.d/10-radeon.conf
En théorie, il contient ceci :
Section "OutputClass" Identifier "Radeon" MatchDriver "radeon" Driver "radeon" EndSection
Il faut ajouter la ligne
Option "NoAccel" "true"
avant la ligne EndSection puis sauvegarder avec la combinaison de touches Ctrl + O (la lettre, pas le chiffre) et enfin quitter avec la combinaison de touches Ctrl + X. Ensuite, redémarrez votre machine.
Problème de tearing (décalage de l'image par bandes horizontales)
Ce problème a été expérimenté avec Xubuntu 20.04 et une carte graphique AMD Radeon Vega.
Une solution est de modifier la configuration de Xorg:
sudo nano /usr/share/X11/xorg.conf.d/10-amdgpu.conf
et d'ajouter l'option Tearfree:
Section "OutputClass" Identifier "AMDgpu" MatchDriver "amdgpu" Driver "amdgpu" Option "TearFree" "true" EndSection
Liens externes
- (fr)Radeon
- (en)Portail Radeon sur le site de la fondation freedesktop
- (en)Site pour identifier le modèle en fonction de l'identifiant du device
- (en)Forum spécialisé open-source AMD/ATI linux sur le site phoronix
- (en)Site pour suivre l'avancement du support OpenGL 3 et suivant
- (en)Site pour suivre l'évolution des différents pilotes.
- (en)Ubuntu open source ATI radeon driver power usage tweaks. Si le GPU de votre radéon HD s'emballe ainsi que son ventilateur.
- (en)ATI Radeon GPU power management in Ubuntu Natty. Même sujet que le lien précédent.
Contributeurs : Stemp, Id2ndR, Neothor, _Enchained, Smarter, quent57, mAx0r1311 , Réécriture compléte juillet 2012: kao_chen, olivier_v