Como ativar o recurso de gerenciamento dinâmico de energia Radeon?

16

Recentemente, os RCs do Linux Kernel 3.11 foram lançados. Como você deve saber, esse novo kernel vem com gerenciamento dinâmico de energia para usuários do driver Radeon de código aberto. Como tenho problemas de gerenciamento de energia com o kernel padrão do Ubuntu 13.04, eu queria tentar isso.

Alguém sabe como habilitar esse novo recurso depois que eu baixei e instalei o kernel RC mais recente do KPA Testing PPA?

EDIT: Mais especificamente, estou falando sobre isso: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
fonte
3.11 ainda não foi lançado, e o Ubuntu já possui um espelho oficial? Essa é nova. Você quer dizer, talvez, o kernel que está testando o PPA ?
Mikewhatever
Sim, é isso que eu quero dizer! Eu baixei o RC mais recente (rc2 no momento em que escrevi) a partir daí.
Gladen
11
@mikewhatever: editou a pergunta para torná-la mais clara. Na minha opinião, esta questão não está fora de tópico, estou falando sobre a instalação de um novo kernel na versão CURRENT Ubuntu (13.04). Alguém pode esclarecer por que esta pergunta foi encerrada?
Gladen 27/07/2013
11
Você está certo, isso deve ser reaberto. Desculpas pelo voto precipitado (incorreto) para encerrar.
Tom Brossman
@Gladen - você quer dizer tlp? Isso normalmente envolve gerenciamento de energia para acusação de notebooks e também está lidando com o uso de energia.
dschinn1001

Respostas:

14

Atualização (05-05-2014): Como esperado, no Ubuntu 14.04, o DPM é ativado por padrão para todas as GPUs AMD modernas (séries HD 4000 a HD 7000). Se você estiver executando esta versão juntamente com uma placa gráfica suportada, não precisará fazer nada para usar esse recurso.

Atualização (28-11-2013): O Ubuntu 13.10 é fornecido com o kernel 3.11 por padrão. Portanto, se você estiver usando esta versão, tudo que você precisa fazer é adicionar o parâmetro ao Kernel do Linux. Eu atualizei o guia de acordo. Além disso, pelo Ubuntu 14.04, parece que o DPM será ativado por padrão. Espero que este guia esteja obsoleto até então! ;)

Ok, nos últimos dias, experimentei um pouco e o habilitei! Na verdade, é muito fácil quando você descobre como fazê-lo. Para as pessoas que também querem experimentar, vou explicar cada passo. Começando com a instalação do novo kernel.

Primeiro de tudo alguns pontos a considerar. O suporte ao Radeon DPM é apenas para placas gráficas da série Radeon HD 2000 (R600) e mais recentes. Se você estiver usando uma placa de vídeo ATI Radeon realmente antiga, o suporte ao gerenciamento de energia já está disponível no driver de código aberto.

Etapas apenas para o Ubuntu 13.04 ou abaixo:

Para usar o Radeon DPM, você precisa do kernel Linux 3.11 ou mais recente. Você pode usar o PPA do kernel da linha principal do Ubuntu e baixar a imagem estável mais recente do kernel do Linux 3.11 neste diretório kernel.ubuntu.com . Quaisquer atualizações futuras do kernel também são boas e também podem ser encontradas neste diretório.

O uso do recurso de gerenciamento dinâmico de energia requer firmware atualizado para a placa gráfica. O mais recente microcódigo / firmware da Radeon pode ser baixado deste diretório . Você precisa dos arquivos * _smc.bin de junho. Se você não tiver certeza do nome de código da sua placa gráfica específica, geralmente é possível ver a saída de lspci -v | menos ... Os arquivos precisam ser colocados em / lib / firmware / radeon . Se você tentar usar o Radeon DPM sem o firmware, a aceleração acabará sendo desativada para a GPU. Você também precisa ter o firmware atualizado em / lib / firmware / radeon antes de instalar o kernel> 3.11 - ele será puxado automaticamente na imagem instalada.

Ubuntu 13.10 ou inferior, ou usuários do Radeon HD 3000 ou abaixo:

O suporte ao Radeon DPM não é ativado por padrão abaixo do kernel 3.13 do Linux ou para GPUs mais antigas. Você deve adicionar o parâmetro radeon.dpm = 1 ao kernel do Linux para habilitá-lo nesses casos. Para as etapas para fazer isso no Ubuntu, consulte o Ubuntu Wiki sobre as diferentes maneiras.

Com o novo kernel instalado, o firmware atualizado e o parâmetro Kernel ativado, você deve estar pronto. Agora você deve reiniciar o sistema e pode verificar se tudo está funcionando depois disso, fazendo

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

Nota: @ luca992 apontou que o arquivo radeon_pm_info poderia estar em um diretório diferente (por exemplo, em / sys / kernel / debug / dri / 1 / em vez de dri / 64 /). Se tiver certeza absoluta de que seguiu todas as etapas corretamente, verifique se esse pode ser o seu caso.

Você deve ver algo assim:

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

Você pode configurar ainda mais o DPM abrindo /etc/rc.local e adicionando a seguinte linha:

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

Onde "parâmetro" pode ser:

  • bateria (um conjunto de níveis de desempenho direcionados para uma operação ideal com bateria)
  • equilibrado (um conjunto de níveis de desempenho direcionados para o uso diário ideal)
  • desempenho (um conjunto de níveis de desempenho direcionados para o mais alto desempenho da GPU)

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

Gladen
fonte
11
Tenho que dizer ... a vida da bateria do meu laptop agora é tão boa quanto com os drivers proprietários. Além disso, o desempenho deve ser um pouco melhor como efeito colateral de poder recuperar a velocidades mais altas em cargas mais pesadas. Estou impressionado com os resultados!
Gladen 31/07/2013
Se você conseguir command not found: glxinfo. Então não está instalado. Para instalar, faça sudo apt-get install mesa-utils.
13305
Qual é o nome do pacote apt que precisa ser instalado?
Entea 20/02
"Se você estiver executando esta versão juntamente com uma placa de vídeo suportada, não precisará fazer nada para usar esse recurso." - Exceto que a configuração padrão é 'balanceada', então você pode mudar para 'bateria' se quiser minimizar o consumo de energia.
Otus
Na 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methoddiz profilee não aceita, a dynamicmenos que também esteja ativado na linha de comando do kernel.
Sam Brightman
6

Ok, vou partir da suposição de que você já possui o kernel 3.11-GIT e tem uma placa A6 r6xx-SI ou mais recente. A partir daí, basta adicionar radeom.dpm=1 como parâmetro do módulo do kernel e o DPM deve ser ativado.

Pode estar no parâmetro GRUB, no /etc/default/grubarquivo write

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

Ou em um .confarquivo no seu /etc/modprobediretório:

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"

Citação das fontes:

O driver AMD Radeon finalmente oferece suporte dinâmico ao gerenciamento de energia! Para as GPUs Radeon, o relógio principal e os relógios de memória se ajustam dinamicamente (junto com as tensões) com base na carga, isso funciona para configurações de vários monitores e está quase parecido com o que é fornecido pelo PowerPlay e com os recursos do driver AMD Catalyst. Esta é uma grande vitória para economizar energia / bateria ao usar o driver Radeon Linux de código aberto, além de oferecer melhor desempenho para as GPUs mais recentes que possuem uma velocidade de clock de inicialização inferior às frequências classificadas. Esse suporte remonta às GPUs Radeon HD 2000 (R600), mas atualmente não está ativado por padrão, mas requer a configuração de radeon.dpm = 1.

Fontes:

Braiam
fonte
não se esqueça: 'sudo update-grub' depois de fazer 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank Frank
cara, você não tem idéia de como isso foi útil para eu consertar uma placa de vídeo ATI HD 4890 no Manjaro. OBRIGADO.
TheFrack
1

Caso o tlp atenda às suas intenções:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

Para thinkpads é:

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

Quando não estou errado - o tlp não depende imediatamente da versão do kernel - depende mais do hardware. Entre o Kernel 3.11 e o Kernel 3.10, não há grandes diferenças.

No artigo do phoronix estão listadas as novas mudanças no Kernel 3.11:

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

Mas na versão 3.11 não há mudanças sobre o gerenciamento de energia em geral.

Eu acho que as mudanças dinâmicas no gerenciamento de energia da Radeon afetam apenas o suporte à fonte de alimentação da placa de vídeo.

Após a instalação, o tlp deve começar com:

sudo tlp start

dschinn1001
fonte
11
Obrigado pela resposta! Mas não é exatamente isso que eu quero dizer. Há, na verdade, é o gerenciamento de energia como você pode ler neste artigo sobre Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

Além da resposta de Gladen, pensei em fazer um comprometimento adicional para verificar se o dpm está trabalhando para salvar outras frustrações.

No meu caso

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

não existe, então pensei que o dpm não estava funcionando.

No entanto, aparentemente, esse arquivo está apenas em pastas diferentes para mim.

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

ou

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

ambos existem e listam as mesmas informações.

luca992
fonte
agora é/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo 14/04
0

Seguindo a resposta de @Gladen, descobri que

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

não funcionou. Uma rápida ls -l /sys/class/drm/me mostrou que card0 refere-se ao cartão integrado & card1 ao cartão discreto. Portanto, o seguinte funciona para mim no cartão1:

$ 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
fonte