¿Cómo habilitar la función de administración dinámica de energía Radeon?

16

Recientemente, se lanzaron los RC de Linux Kernel 3.11. Como ya sabrán, este nuevo núcleo viene con administración dinámica de energía para los usuarios del controlador Radeon de código abierto. Como tengo problemas de administración de energía con el kernel predeterminado de Ubuntu 13.04, quería probar esto.

¿Alguien sabe cómo habilitar esta nueva característica después de que descargué e instalé el último kernel RC del Kernel Testing PPA?

EDITAR: Más específicamente, estoy hablando de esto: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
fuente
3.11 aún no se ha lanzado, ¿y Ubuntu ya tiene un espejo oficial? Eso es nuevo. ¿Te refieres, quizás, al kernel que prueba PPA ?
mikewhatever
Sí, a eso me refiero. Descargué el último RC (rc2 al momento de escribir) desde allí.
Gladen
1
@mikewhatever: editó la pregunta para que quede más clara. En mi opinión, esta pregunta no está fuera de tema en absoluto, estoy hablando de instalar un nuevo kernel en la versión ACTUAL de Ubuntu (13.04). ¿Alguien puede aclarar por qué esta pregunta está cerrada?
Gladen
1
Tienes razón, esto debería volver a abrirse. Disculpas por el voto apresurado (incorrecto) para cerrar.
Tom Brossman
@Gladen: ¿te refieres a tlp? Esto normalmente implica la administración de energía para las computadoras portátiles, y también está manejando el uso de energía.
dschinn1001

Respuestas:

14

Actualización (8-05-2014): Como se esperaba, en Ubuntu 14.04 DPM está habilitado de forma predeterminada para todas las GPU AMD modernas (series HD 4000 a HD 7000). Si está ejecutando esta versión junto con una tarjeta gráfica compatible, no necesita hacer nada para usar esta función.

Actualización (28-11-2013): Ubuntu 13.10 viene con el kernel 3.11 por defecto. Entonces, si está utilizando esta versión, todo lo que necesita hacer es agregar el parámetro al kernel de Linux. Actualicé la guía en consecuencia. Además, parece que Ubuntu 14.04, DPM estará habilitado por defecto, ¡así que espero que esta guía esté obsoleta para entonces! ;)

Ok, ¡en los últimos días experimenté un poco y lo habilité! En realidad, es realmente fácil una vez que descubriste cómo hacerlo. Para las personas que también quieren probarlo, explicaré cada paso. Comenzando con la instalación del nuevo kernel.

En primer lugar, algunos puntos a tener en cuenta. La compatibilidad con Radeon DPM es solo para las tarjetas gráficas de la serie Radeon HD 2000 (R600) y más recientes. Si está utilizando una tarjeta gráfica ATI Radeon realmente antigua, el soporte de administración de energía ya está disponible en el controlador de código abierto.

Pasos para Ubuntu 13.04 o inferior solamente:

Para usar Radeon DPM necesita el núcleo Linux 3.11 o más reciente. Puede usar el PPA del núcleo de Ubuntu mainline y descargar la última imagen estable del kernel 3.11 de Linux desde este directorio kernel.ubuntu.com . Las futuras actualizaciones del kernel también están bien y también se pueden encontrar en este directorio.

El uso de la función de administración de energía dinámica requiere un firmware actualizado para la tarjeta gráfica. El último microcódigo / firmware Radeon se puede descargar de este directorio . Necesita los archivos * _smc.bin de junio. Si no está seguro del nombre de código de su tarjeta gráfica específica, generalmente puede encontrarlo mirando la salida de lspci -v | menos ... Los archivos deben colocarse dentro de / lib / firmware / radeon . Si intenta usar Radeon DPM sin el firmware, la aceleración terminará deshabilitada para la GPU. También debe asegurarse de tener el firmware actualizado en / lib / firmware / radeon antes de instalar el kernel> 3.11: se extraerá automáticamente en la imagen instalada.

Ubuntu 13.10 o inferior, o usuarios de Radeon HD 3000 o inferior:

La compatibilidad con Radeon DPM no está habilitada por defecto debajo del kernel 3.13 de Linux, o para GPU más antiguas. Debe agregar el parámetro radeon.dpm = 1 al kernel de Linux para habilitarlo en estos casos. Para conocer los pasos para hacerlo en Ubuntu, consulte el Wiki de Ubuntu sobre las diferentes formas.

Con el nuevo kernel instalado, el firmware actualizado y el parámetro Kernel habilitado, debería estar listo. Ahora debe reiniciar su sistema y puede verificar si todo funciona después de eso

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

Nota: @ luca992 señaló que el archivo radeon_pm_info podría estar en un directorio diferente (por ejemplo, en / sys / kernel / debug / dri / 1 / en lugar de dri / 64 /). Si está absolutamente seguro de haber seguido todos los pasos correctamente, puede verificar si este podría ser el caso en su situación.

Debería ver algo como esto:

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

Puede configurar aún más DPM abriendo /etc/rc.local y agregando la siguiente línea:

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

Donde "parámetro" puede ser:

  • batería (un conjunto de niveles de rendimiento destinados a un funcionamiento óptimo con batería)
  • equilibrado (un conjunto de niveles de rendimiento destinados a un uso diario óptimo)
  • rendimiento (un conjunto de niveles de rendimiento destinados al mayor rendimiento de la GPU)

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

Gladen
fuente
1
Tengo que decir ... la duración de la batería de mi computadora portátil ahora es tan buena como con los controladores propietarios. Además, el rendimiento debería ser un poco mejor como efecto secundario de poder volver a bloquear a velocidades más altas con cargas más pesadas. Estoy impresionado con los resultados!
Gladen
Si consigues command not found: glxinfo. Entonces no está instalado. Para instalar, hacer sudo apt-get install mesa-utils.
meshy
¿Cuál es el nombre del paquete apt que necesita ser instalado?
Entea
"Si está ejecutando esta versión junto con una tarjeta gráfica compatible, no necesita hacer nada para usar esta función". - Excepto que la configuración predeterminada es 'equilibrada', por lo que es posible que desee cambiar a 'batería' si desea minimizar el consumo de energía.
otus
En 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methoddice profiley no aceptará a dynamicmenos que también esté habilitado en la línea de comando del núcleo.
Sam Brightman
6

Ok, voy a partir de la presunción de que ya tienes el kernel 3.11-GIT y tienes una tarjeta A6 r6xx-SI o más nueva. A partir de ahí, solo tiene que agregar radeom.dpm=1 como parámetro de módulo de núcleo y se debe activar DPM.

Podría estar en el parámetro GRUB, en el /etc/default/grubarchivo escribir

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

O en un .confarchivo bajo su /etc/modprobedirectorio:

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 de las fuentes:

¡El controlador AMD Radeon finalmente tiene soporte dinámico de administración de energía! Para las GPU Radeon, el reloj central y los relojes de memoria se ajustarán dinámicamente (junto con los voltajes) en función de la carga, esto funciona para configuraciones de monitores múltiples, y está casi a la paridad de características de lo que proporciona PowerPlay y las características en el controlador AMD Catalyst. Esta es una gran victoria para ahorrar energía / batería al usar el controlador Radeon Linux de código abierto junto con ofrecer un mejor rendimiento para las GPU más nuevas que tienen una velocidad de reloj de arranque más baja que sus frecuencias nominales. Este soporte se remonta a las GPU Radeon HD 2000 (R600) pero actualmente no está habilitado de forma predeterminada, pero requiere configurar radeon.dpm = 1.

Fuentes:

Braiam
fuente
no se olvide: 'sudo update-grub' después de hacer 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank
amigo, no tienes idea de lo útil que fue para mí arreglar una tarjeta gráfica ATI HD 4890 en Manjaro. GRACIAS.
TheFrack
1

En caso de que tlp cumpla con tus intenciones:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

Para thinkpads es:

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

Cuando no me equivoco, tlp no depende inmediatamente de la versión del kernel, depende más del hardware. Entre Kernel 3.11 y Kernel 3.10 no hay grandes diferencias.

En el artículo de phoronix se enumeran los nuevos cambios en Kernel 3.11:

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

Pero en 3.11 no hay cambios sobre la gestión del poder en general.

Creo que los cambios dinámicos de administración de energía para Radeon afectan solo el soporte con la fuente de alimentación de la tarjeta gráfica.

Después de la instalación, tlp es comenzar con:

sudo tlp start

dschinn1001
fuente
1
¡Gracias por la respuesta! Pero eso no es exactamente lo que quiero decir. En realidad, hay administración de energía como puede leer en este artículo en Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

Además de la respuesta de Gladen, pensé que haría un compromiso adicional para verificar que dpm está trabajando para ahorrarles a otros cierta frustración.

En mi caso

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

no existe, así que pensé que dpm no estaba funcionando.

Sin embargo, aparentemente ese archivo está solo en diferentes carpetas para mí.

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

o

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

ambos existen y enumeran la misma información.

luca992
fuente
ahora es/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo
0

Siguiendo la respuesta de @Gladen, encontré que

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

no funcionó Un rápido ls -l /sys/class/drm/me mostró que card0 se refiere a la tarjeta integrada y card1 a la tarjeta discreta. Así que lo siguiente funciona para mí en 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
fuente