Comment activer la fonction de gestion dynamique de l'alimentation de Radeon?

16

Récemment, les RC de Linux Kernel 3.11 ont été publiés. Comme vous le savez peut-être, ce nouveau noyau est livré avec une gestion dynamique de l'alimentation pour les utilisateurs du pilote open source Radeon. Étant donné que j'ai des problèmes de gestion de l'alimentation avec le noyau par défaut d'Ubuntu 13.04, je voulais essayer cela.

Quelqu'un sait-il comment activer cette nouvelle fonctionnalité après avoir téléchargé et installé le dernier noyau RC du Kernel Testing PPA?

EDIT: Plus précisément, je parle de cela: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
la source
3.11 n'est pas encore sorti et Ubuntu a déjà un miroir officiel? C'est nouveau. Voulez-vous dire peut-être que le noyau teste le PPA ?
mikewimporte
Oui, c'est celui que je veux dire! J'ai téléchargé le dernier RC (rc2 au moment de la rédaction) à partir de là.
Gladen
1
@mikewwhat: a modifié la question pour la rendre plus claire. À mon avis, cette question n'est pas du tout hors sujet, je parle d'installer un nouveau noyau dans la version actuelle d'Ubuntu (13.04). Quelqu'un peut-il préciser pourquoi cette question est close?
Gladen
1
Vous avez raison, cela devrait être rouvert. Toutes mes excuses pour le vote hâtif (incorrect) de clôture.
Tom Brossman
@Gladen - voulez-vous dire tlp? Cela implique normalement la gestion de l'alimentation pour les accusés de portables et gère également l'utilisation de l'énergie.
dschinn1001

Réponses:

14

Mise à jour (8-05-2014): Comme prévu, dans Ubuntu 14.04 DPM est activé par défaut pour tous les GPU AMD modernes (HD 4000 à HD 7000). Si vous exécutez cette version avec une carte graphique prise en charge, vous n'avez rien à faire pour utiliser cette fonctionnalité.

Mise à jour (28-11-2013): Ubuntu 13.10 est livré avec le noyau 3.11 par défaut. Donc, si vous utilisez cette version, il vous suffit d'ajouter le paramètre au noyau Linux. J'ai mis à jour le guide en conséquence. En outre, il semblerait que sous Ubuntu 14.04, DPM sera activé par défaut, alors j'espère que ce guide sera obsolète d'ici là! ;)

Ok, ces derniers jours, j'ai un peu expérimenté et je l'ai activé! C'est vraiment très facile une fois que vous avez découvert comment le faire. Pour les personnes qui veulent aussi l'essayer, je vais vous expliquer chaque étape. A commencer par l'installation du nouveau noyau.

Tout d'abord quelques points à considérer. La prise en charge Radeon DPM est réservée aux cartes graphiques Radeon HD 2000 (R600) et aux versions plus récentes. Si vous utilisez une très ancienne carte graphique ATI Radeon, la prise en charge de la gestion de l'alimentation est déjà exploitée sur le pilote open-source.

Étapes pour Ubuntu 13.04 ou inférieur uniquement:

Pour utiliser Radeon DPM, vous avez besoin du noyau Linux 3.11 ou plus récent. Vous pouvez utiliser le noyau PPA du noyau principal d'Ubuntu et télécharger la dernière image stable du noyau Linux 3.11 à partir de ce répertoire kernel.ubuntu.com . Toutes les futures mises à jour du noyau sont également correctes et peuvent également être trouvées dans ce répertoire.

L'utilisation de la fonction de gestion dynamique de l'alimentation nécessite la mise à jour du micrologiciel de la carte graphique. Le dernier microcode / firmware Radeon peut être téléchargé à partir de ce répertoire . Vous avez besoin des fichiers * _smc.bin de juin. Si vous n'êtes pas sûr du nom de code de votre carte graphique spécifique, vous pouvez généralement le trouver en regardant la sortie de lspci -v | moins ... Le ou les fichiers doivent être placés dans / lib / firmware / radeon . Si vous essayez d'utiliser Radeon DPM sans le micrologiciel, l'accélération finira par être désactivée pour le GPU. Vous devez également vous assurer que vous avez le micrologiciel mis à jour dans / lib / firmware / radeon avant d' installer le noyau> 3.11 - il sera automatiquement tiré dans l'image installée.

Ubuntu 13.10 ou inférieur, ou utilisateurs de Radeon HD 3000 ou inférieur:

La prise en charge de Radeon DPM n'est pas activée par défaut sous le noyau Linux 3.13 ou pour les anciens GPU. Vous devez ajouter le paramètre radeon.dpm = 1 au noyau Linux pour l'activer dans ces cas. Pour les étapes à suivre sur Ubuntu, consultez le wiki Ubuntu sur les différentes manières.

Avec le nouveau noyau installé, le micrologiciel mis à jour et le paramètre du noyau activé, vous devriez être prêt à partir. Vous devez maintenant redémarrer votre système et vous pouvez vérifier si tout fonctionne après cela en faisant

cat / sys / kernel / debug / dri / 64 / radeon_pm_info

Remarque: @ luca992 a indiqué que le fichier radeon_pm_info pouvait se trouver dans un répertoire différent (par exemple dans / sys / kernel / debug / dri / 1 / au lieu de dri / 64 /). Si vous êtes absolument sûr d'avoir suivi toutes les étapes correctement, vous pouvez vérifier si cela peut être le cas dans votre situation.

Vous devriez voir quelque chose comme ceci:

uvd    vclk: 0 dclk: 0
power level 0    sclk: 22000 mclk: 25000 vddc: 900

Vous pouvez configurer davantage DPM en ouvrant /etc/rc.local et en ajoutant la ligne suivante:

echo parameter > /sys/class/drm/card0/device/power_dpm_state

"paramètre" peut être:

  • batterie (un ensemble de niveaux de performances ciblés pour un fonctionnement optimal sur batterie)
  • équilibré (un ensemble de niveaux de performances ciblés pour une utilisation quotidienne optimale)
  • performances (un ensemble de niveaux de performances ciblés pour les performances GPU les plus élevées)

Sources: http://www.botchco.com/agd5f/?p=57

Gladen
la source
1
Je dois dire que la durée de vie de la batterie de mon ordinateur portable est maintenant aussi bonne qu'avec les pilotes propriétaires. Les performances devraient également être un peu meilleures en tant qu'effet secondaire de pouvoir revenir à des vitesses plus élevées sur des charges plus lourdes. Je suis impressionné par les résultats!
Gladen
Si vous obtenez command not found: glxinfo. Ensuite, il n'est pas installé. Pour installer, faites sudo apt-get install mesa-utils.
meshy
Quel est le nom du package apt qui doit être installé?
Entea
"Si vous exécutez cette version avec une carte graphique prise en charge, vous n'avez rien à faire pour utiliser cette fonctionnalité." - Sauf que le paramètre par défaut est «équilibré», vous pouvez donc passer à la «batterie» si vous souhaitez réduire la consommation d'énergie.
otus
En 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_method dit profileet n'acceptera dynamicque s'il est également activé sur la ligne de commande du noyau.
Sam Brightman
6

Ok, je vais me séparer de la présomption que vous avez déjà le noyau 3.11-GIT et que vous avez une carte ATI r6xx-SI ou plus récente. À partir de là, il vous suffit d'ajouter radeom.dpm=1 un paramètre de module de noyau et DPM doit être activé.

Cela peut être soit dans le paramètre GRUB, dans l' /etc/default/grubécriture du fichier

GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.dpm=1"
sudo update-grub

Ou dans un .conffichier sous votre /etc/modproberépertoire:

sudo su -
touch /etc/modprobe.d/radeon-dpm.conf
echo options radeon dpm=1 > /etc/modprobe.d/radeon-dpm.conf 
cat /etc/modprobe.d/radeon-dpm.conf 
# will output "options radeon dpm=1"

Citation des sources:

Le pilote AMD Radeon prend enfin en charge la gestion dynamique de l'alimentation! Pour les GPU Radeon, l'horloge de base et les horloges mémoire s'ajusteront dynamiquement (ainsi que les tensions) en fonction de la charge, cela fonctionne pour les configurations multi-écrans, et il est à parité des fonctionnalités proche de ce qui est fourni par PowerPlay et des fonctionnalités du pilote AMD Catalyst. C'est une grande victoire pour économiser de l'énergie / batterie lors de l'utilisation du pilote open-source Radeon Linux et offrir de meilleures performances pour les nouveaux GPU qui ont une vitesse d'horloge de démarrage inférieure à leurs fréquences nominales. Cette prise en charge remonte aux GPU Radeon HD 2000 (R600) mais n'est actuellement pas activée par défaut mais nécessite de définir radeon.dpm = 1.

Sources:

Braiam
la source
n'oubliez pas: 'sudo update-grub' après avoir fait 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank
mec, vous ne savez pas à quel point cela a été utile pour moi de réparer une carte graphique ATI HD 4890 sur Manjaro. MERCI.
TheFrack
1

Si tlp répond à vos intentions:

sudo add-apt-repository ppa: linrunner / tlp

mise à jour sudo apt-get

sudo apt-get install tlp tlp-rdw

Pour les thinkpads c'est:

sudo apt-get install tp-smapi-dkms acpi-call-tools

Quand je ne me trompe pas - tlp ne dépend pas immédiatement de la version du noyau - cela dépend davantage du matériel. Entre le noyau 3.11 et le noyau 3.10, il n'y a pas de différences extrêmes.

Dans l'article de phoronix est répertorié sur les nouveaux changements dans le noyau 3.11:

http://www.phoronix.com/scan.php?page=news_item&px=MTQwODk

Mais en 3.11, il n'y a aucun changement concernant la gestion de l'alimentation en général.

Je pense que les changements dynamiques de gestion de l'alimentation pour Radeon n'affectent que le support avec l'alimentation de la carte graphique.

Après l'installation, tlp doit commencer par:

sudo tlp start

dschinn1001
la source
1
Merci pour la réponse! Mais ce n'est pas exactement ce que je veux dire. Il y a en fait une gestion de l'alimentation comme vous pouvez le lire dans cet article sur Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

En plus de la réponse de Gladen, je pensais que je ferais un engagement supplémentaire pour vérifier que dpm fonctionne pour sauver les autres de la frustration.

Dans mon cas

cat /sys/kernel/debug/dri/64/radeon_pm_info

n'existe pas alors j'ai pensé que dpm ne fonctionnait pas.

Cependant, apparemment, ce fichier se trouve dans différents dossiers pour moi.

cat /sys/kernel/debug/dri/65/radeon_pm_info

ou

cat /sys/kernel/debug/dri/1/radeon_pm_info

les deux existent et répertorient les mêmes informations.

luca992
la source
il est maintenant/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo
0

Suite à la réponse de @Gladen, j'ai constaté que

echo parameter > /sys/class/drm/card0/device/power_dpm_state

n'a pas fonctionné. Un rapide ls -l /sys/class/drm/m'a montré que card0 se réfère à la carte intégrée et card1 à la carte discrète. Donc, ce qui suit fonctionne pour moi sur card1:

$ sudo -i

# cat /sys/class/drm/card1/device/power_dpm_state
balanced
# cat /sys/class/drm/card1/device/power_dpm_force_performance_level  
auto
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "low" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "performance" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
-bash: echo: write error: Invalid argument
# # Not sure why the above happened!?
#
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 2    sclk: 75000 mclk: 80000 vddc: 1120 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# 
Danimal
la source