¿Se le puede hacer undervolt a una ATI RX580 en ubuntu 18.04?

Hola a todos, pues eso tengo varias tarjetas en un rig con sistema operativo lubuntu 18.04 y he estado buscando la manera de hacerle undervolt pero no he visto nada de información al respecto, a ver si alguien sabe y me puede orientar o voy a tener que morir con windows y msi afterburner.

Gracias de ante mano
WattmanGTK es tu amigo...

Aunque con varias GPU no se como irá, lo que si puedes hacer es modificar el script que genera para modificar el resto de tarjetas.

saludos!


https://github.com/BoukeHaarsma23/WattmanGTK
Hola gracias por tu respuesta, ese programa no lo he probado,al final lo que hice es un poco más laborioso:

Lo primero que tenemos que hacer es descargar el driver oficial para ubuntu de la web de AMD, descomprimimos el archivo y desde consola nos vamos a la carpeta descomprimida y solo instalamos los driver libres, para eso usamos el comando.

./amdgpu-install -y --opencl=pal,legacy

Una vez terminemos el proceso, ahora tenemos que activar overdrive en el kernel, para ello abrimos el grub de linux con este comando:

sudo nano /etc/default/grub

Buscamos la línea donde diga:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

y lo editamos y lo dejamos así:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.ppfeaturemask=0xffffffff"

guardamos y recargamos el grub:

sudo update-grub

y reiniciamos el PC

con eso ya tenemos control sobre nuestras tarjetas AMD, yo uso dos RX580.

Ahora tenemos que averiguar como se llaman nuestras tarjetas dentro de ubuntu y para ello nos vamos a:

cd /sys/class/drm/

y ahí están todas las tarjetas incluida la de la placa base si tiene una, en mi caso aparece la card0, card1 y card2, donde card0 es la de la placa base y las otras dos son las RX580, ahora para configurarlas se hace en un archivo que ha generado el grub al reiniciar que se llama pp_od_clk_voltage ahí dentro estará la frecuencia y el voltaje.
en el caso de las RX580 tiene ocho niveles de frecuencia/voltaje y tres de frecuencia /voltaje de las memorias.
para editar la de la GPU se utiliza la s y para la memoria la m, el comando quedaría así:
echo “s 7 1209 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 2 1850 850” > /sys/class/drm/card1/device/pp_od_clk_voltage

donde el 7 es el nivel donde queremos ediar, 1209 es la frecuencia y 900 el voltaje en milivoltios que le quieres configurar en tu tarjeta, lo mismo para la memoria

una ves se hayan hecho los cambios los guardamos con este comando:

echo “c” > /sys/class/drm/card1/device/pp_od_clk_voltage

pero antes de nada tememos que pasar a manual el control de la tarjeta con este comando.

echo “manual” > /sys/class/drm/card1/device/power_dpm_force_performance_level

y para cambiar la velocidad de los ventiladores lo primero que hay que hacer es pasar a manual el control, para ello se edita

echo “1” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1_enable

en el modo automático el valor es 2, y el 1 es para manual así que lo dejamos en 1.
Ahora editamos el porcentaje de velocidad que le queremos dar al ventilador, eso van viendo ustedes cual es el mejor que les convenga yo he puesto este:

echo “128” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1

Y para hacerlo de manera automática y no estar metiendo los datos uno a uno me he creado un archivo en bash llamado StartGPU.sh donde lo hago todo de un golpe, configuro las dos tarjetas al mismo timpo, eso si, recuerden que cada vez que reinicien el PC estos valores se borran y tendrán que cargar de nuevo el archivo.
si no saben de linux para cargar este archivo desde una consola lo ejecutamos de esta manera:
sudo ./StartGPU.sh
También pueden crear un arranque automático del archivo al arrancar ubuntu pero eso ya no lo he probado así que no sé como es.

el archivo que he creado para el control de mis dos tarjetas es este:

# Configuracion de primera tarjeta AMD RX580 de 8Gb
#!/bin/bash
echo “manual” > /sys/class/drm/card1/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1_enable
echo “128” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1
# Configuración de segunda tarjeta AMD RX580 de 8Gb
echo “manual” > /sys/class/drm/card2/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1_enable
echo “128” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1


Tengo las tarjetas controladas con el software que he comentado más arriba donde los valores que me da de consumo es de unos 114w por tarjeta, una temperatura de unos 60ºC más o menos con una velocidad de 14,87Mh/s por tarjetas minando ravencoin.

Cito las fuentes de donde he sacado la información:
HOWTO_undervolt_the_AMD_RX_4XX_and_RX_5XX_GPUs
How to overclock your AMD GPU on Linux

El único problema que me queda por resolver que no he encontrado información al respecto, es que al reiniciar el equipo la gráfica integrada en placa cambia el nombre con la que lo identifica el sistema por una de las AMD, me explico, si de forma normal el nombre de la gráfica integrada es card0 y la primera AMD es card1, estas cambian el nombre una por la otra, pasándose a llamar la integrada card1 y la AMD card0, tengo que reinicar varias veces hasta que adquieren su nombre correcto.

ACTUALIZACIÓN:------------------------------------------------------------------------------------------------------------------------------
Vamos a darle una vuelta de tuerca más a lo que hemos montado. Con las gráficas de serie lo máximo que he logrado es una velocidad de 23MH/s con un voltaje de 0.88v y un consumo de 90w minando ethereum, pero si le modificamos la bios de las GPU podremos conseguir un rendimiento de unos 30MH/s con un voltaje de trabajo de 0.87v
un consumo de 86w.
Antes de nada advierto de que esta modificación puede ser peligrosa, el escribir una bios en una GPU siempre puede ir algo mal y dejar inservible la tarjeta, el riesgo es bajo pero siempre hay un riesgo, aquí es cuando digo que no me hago responsable de lo que pase.
lo primero es descargar un par de programas.
Polaris BIOS Editor 1.6.7
AMD/ATI ATIFlash
GPU-Z

Con GPU-Z nos dirá que gráfica tenemos y que memoria tiene, en mi caso es una hynix
Con ATI ATIFlash haremos una copia de la bios original de la tarjeta, una vez que se abre el programa (como administrador) pulsamos SAVE y guardamos la copia original, OJO nunca perder este archivo por que si algo saliera mal con este devolveríamos la gráfica a su estado original.
Una vez hecha la copia abrimos el software Polaris BIOS Editor como administrador y cargamos la bios original, luego pulsamos en el botón de abajo a la derecha que se llama TIMING PATCH y a todas las ventanas que salen le pulsas YES, cuando termine ahora salvas la bios modificada, OJO al guardar no la guardes con el mismo nombre que la original ya que perderás la bios original, lo que hago yo es dejar las bios originales en una carpeta para ellas y todas estas modificaciones las hago en otra carpeta nueva, es por si cometo algún error tener segura la copia original
Una vez termine vuelves al software ATI ATIFlash y cargas la bios modificada pulsando en el botón que esta abajo a la izquierda con el nombre LOAD IMAGE, y luego pulsas PROGRAM. esperas a que termine y el mismo programa te dice que reinicies, reinicias y listo
Fuente consultada:
Coin Trade & Mine
Thulsa Doom escribió:Hola gracias por tu respuesta, ese programa no lo he probado,al final lo que hice es un poco más laborioso:

Lo primero que tenemos que hacer es descargar el driver oficial para ubuntu de la web de AMD, descomprimimos el archivo y desde consola nos vamos a la carpeta descomprimida y solo instalamos los driver libres, para eso usamos el comando.

./amdgpu-install -y --opencl=pal,legacy

Una vez terminemos el proceso, ahora tenemos que activar overdrive en el kernel, para ello abrimos el grub de linux con este comando:

sudo nano /etc/default/grub

Buscamos la línea donde diga:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

y lo editamos y lo dejamos así:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.ppfeaturemask=0xffffffff"

guardamos y recargamos el grub:

sudo update-grub

y reiniciamos el PC

con eso ya tenemos control sobre nuestras tarjetas AMD, yo uso dos RX580.

Ahora tenemos que averiguar como se llaman nuestras tarjetas dentro de ubuntu y para ello nos vamos a:

cd /sys/class/drm/

y ahí están todas las tarjetas incluida la de la placa base si tiene una, en mi caso aparece la card0, card1 y card2, donde card0 es la de la placa base y las otras dos son las RX580, ahora para configurarlas se hace en un archivo que ha generado el grub al reiniciar que se llama pp_od_clk_voltage ahí dentro estará la frecuencia y el voltaje.
en el caso de las RX580 tiene ocho niveles de frecuencia/voltaje y tres de frecuencia /voltaje de las memorias.
para editar la de la GPU se utiliza la s y para la memoria la m, el comando quedaría así:
echo “s 7 1209 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 2 1850 850” > /sys/class/drm/card1/device/pp_od_clk_voltage

donde el 7 es el nivel donde queremos ediar, 1209 es la frecuencia y 900 el voltaje en milivoltios que le quieres configurar en tu tarjeta, lo mismo para la memoria

una ves se hayan hecho los cambios los guardamos con este comando:

echo “c” > /sys/class/drm/card1/device/pp_od_clk_voltage

pero antes de nada tememos que pasar a manual el control de la tarjeta con este comando.

echo “manual” > /sys/class/drm/card1/device/power_dpm_force_performance_level

y para cambiar la velocidad de los ventiladores lo primero que hay que hacer es pasar a manual el control, para ello se edita

echo “1” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1_enable

en el modo automático el valor es 2, y el 1 es para manual así que lo dejamos en 1.
Ahora editamos el porcentaje de velocidad que le queremos dar al ventilador, eso van viendo ustedes cual es el mejor que les convenga yo he puesto este:

echo “128” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1

Y para hacerlo de manera automática y no estar metiendo los datos uno a uno me he creado un archivo en bash llamado StartGPU.sh donde lo hago todo de un golpe, configuro las dos tarjetas al mismo timpo, eso si, recuerden que cada vez que reinicien el PC estos valores se borran y tendrán que cargar de nuevo el archivo.
si no saben de linux para cargar este archivo desde una consola lo ejecutamos de esta manera:
sudo ./StartGPU.sh
También pueden crear un arranque automático del archivo al arrancar ubuntu pero eso ya no lo he probado así que no sé como es.

el archivo que he creado para el control de mis dos tarjetas es este:

# Configuracion de primera tarjeta AMD RX580 de 8Gb
#!/bin/bash
echo “manual” > /sys/class/drm/card1/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1_enable
echo “128” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1
# Configuración de segunda tarjeta AMD RX580 de 8Gb
echo “manual” > /sys/class/drm/card2/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1_enable
echo “128” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1


Tengo las tarjetas controladas con el software que he comentado más arriba donde los valores que me da de consumo es de unos 114w por tarjeta, una temperatura de unos 60ºC más o menos con una velocidad de 14,87Mh/s por tarjetas minando ravencoin.

Cito las fuentes de donde he sacado la información:
HOWTO_undervolt_the_AMD_RX_4XX_and_RX_5XX_GPUs
How to overclock your AMD GPU on Linux

El único problema que me queda por resolver que no he encontrado información al respecto, es que al reiniciar el equipo la gráfica integrada en placa cambia el nombre con la que lo identifica el sistema por una de las AMD, me explico, si de forma normal el nombre de la gráfica integrada es card0 y la primera AMD es card1, estas cambian el nombre una por la otra, pasándose a llamar la integrada card1 y la AMD card0, tengo que reinicar varias veces hasta que adquieren su nombre correcto.


Buenas,

Estoy intentando usar tu manera de undervoltear (en mi caso una RX 5700 XT) pero no me deja escribir en el fichero pp_od_clk_voltage:

sudo echo "s 7 1900 1000" > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage
bash: /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/pp_od_clk_voltage: Permiso denegado



Tengo el parámetro amdgpu.ppfeaturemask=0xffffffff activado y el performance level en manual:

cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/power_dpm_force_performance_level
manual


Y no me deja escribir. ¿A ti te ocurrió?

¡Un saludo y gracias!
Hola, por lo que veo la ruta que utilizas para escribir en la tarjeta no es la indicada, utiliza la ruta que tengo yo en el archivo de configuración que he creado, eso si, siempre como root.

# Configuracion de primera tarjeta AMD RX580 de 8Gb
#!/bin/bash
echo “manual” > /sys/class/drm/card1/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1_enable
echo “128” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1
# Configuración de segunda tarjeta AMD RX580 de 8Gb
echo “manual” > /sys/class/drm/card2/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1_enable
echo “128” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1

Ve a esas rutas /sys/class/drm/ y mira como tu sistema llama a las tarjetas y haces las modificaciones pertinentes
Thulsa Doom escribió:Hola, por lo que veo la ruta que utilizas para escribir en la tarjeta no es la indicada, utiliza la ruta que tengo yo en el archivo de configuración que he creado, eso si, siempre como root.

# Configuracion de primera tarjeta AMD RX580 de 8Gb
#!/bin/bash
echo “manual” > /sys/class/drm/card1/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card1/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1_enable
echo “128” > /sys/class/drm/card1/device/hwmon/hwmon2/pwm1
# Configuración de segunda tarjeta AMD RX580 de 8Gb
echo “manual” > /sys/class/drm/card2/device/power_dpm_force_performance_level
echo “s 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 1 600 769” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 2 918 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 3 1145 880” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 4 1160 885” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 5 1180 890” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 6 1200 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “s 7 1245 900” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 0 300 750” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 1 1000 800” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “m 2 1900 875” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “c” > /sys/class/drm/card2/device/pp_od_clk_voltage
echo “1” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1_enable
echo “128” > /sys/class/drm/card2/device/hwmon/hwmon3/pwm1

Ve a esas rutas /sys/class/drm/ y mira como tu sistema llama a las tarjetas y haces las modificaciones pertinentes


Hola,

En otra web me aconsejaron ir a la ruta que estaba intentando, pero he intentado probar con tu ruta y...

mekadragon@mekalinux /sys/class/drm/card0/device $ sudo echo “s 7 1900 1000” > pp_od_clk_voltage
bash: pp_od_clk_voltage: Permiso denegado


Ah, en mi caso no existe card1, no me detectará la integrada o algo:

mekadragon@mekalinux /sys/class/drm $ ls
card0       card0-DP-2  card0-HDMI-A-1  ttm
card0-DP-1  card0-DP-3  renderD128      version


Sólo existe ese archivo en la carpeta card0-DP-1, en el resto no.

Me da que o la RX 5700 XT aún no soporta esta opción o me falta algo...

Lo raro además es que no puedo ver los power states que trae de fábrica:

Imagen

No sé qué más me puede faltar hacer.
Hola, en principio debería de funcionar,
Al ir a la ruta de /sys/class/drm/ ahí tendría que aparecer todas las tarjetas que tengas en el sistema, ya sea la de la placa base, una Nvidia o lo que sea, al arrancar el sistema las irá llamando según le vaya asignando un nombre.
Por ejemplo en mi caso la tarjeta integrada la ha llama card0, y como tengo 1 Nvidia 1050ti, la ha llamado card2 y tres AMD RX580 a las que ha renombrado como card1, card3 y card4.

Desde la terminal como root, si te vas a la ruta de donde están todas las tarjetas que es /sys/class/drm/ debes de ver todas las tarjetas que el sistema ha añadido, en mi caso una AMD tendría este aspecto:
Imagen

Lo que buscamos es el directorio donde podemos cambiar el voltaje y la frecuencia, este directorio se encuentra en /card1/device
Si entras ahí y hacer un ls -la te va a decir todos los directorios que tiene y si la instalación del driver ha ido bien te tendrá que aparecer el directorio /pp_od_clk_voltage, ahí es donde modificamos el voltaje y frecuencias de las memorias y el GPU.
Para modificar la velocidad de los ventiladores es otro directorio, la ruta es:
/sys/class/drm/card1/device/hwmon/hwmon1/
Con esta ruta hay que ver bien como tu sistema la ha llamado ya que en el mío según le de cambia el nombre del directorio hwmon1 y aveces lo llama hwmon3 y cuando usas el archivo bash que he creado para hacer el undervolt no encuentra la ruta y tengo que ir a ver como ha llamado al directorio y editarlo en el bash
Thulsa Doom escribió:Hola, en principio debería de funcionar,
Al ir a la ruta de /sys/class/drm/ ahí tendría que aparecer todas las tarjetas que tengas en el sistema, ya sea la de la placa base, una Nvidia o lo que sea, al arrancar el sistema las irá llamando según le vaya asignando un nombre.
Por ejemplo en mi caso la tarjeta integrada la ha llama card0, y como tengo 1 Nvidia 1050ti, la ha llamado card2 y tres AMD RX580 a las que ha renombrado como card1, card3 y card4.

Desde la terminal como root, si te vas a la ruta de donde están todas las tarjetas que es /sys/class/drm/ debes de ver todas las tarjetas que el sistema ha añadido, en mi caso una AMD tendría este aspecto:
Imagen

Lo que buscamos es el directorio donde podemos cambiar el voltaje y la frecuencia, este directorio se encuentra en /card1/device
Si entras ahí y hacer un ls -la te va a decir todos los directorios que tiene y si la instalación del driver ha ido bien te tendrá que aparecer el directorio /pp_od_clk_voltage, ahí es donde modificamos el voltaje y frecuencias de las memorias y el GPU.
Para modificar la velocidad de los ventiladores es otro directorio, la ruta es:
/sys/class/drm/card1/device/hwmon/hwmon1/
Con esta ruta hay que ver bien como tu sistema la ha llamado ya que en el mío según le de cambia el nombre del directorio hwmon1 y aveces lo llama hwmon3 y cuando usas el archivo bash que he creado para hacer el undervolt no encuentra la ruta y tengo que ir a ver como ha llamado al directorio y editarlo en el bash


Hola de nuevo,

Cambiar el ventilador no es problema, me deja hacerlo con el Radeon Profile. Lo que me extraña es que no me detecta bien las power states de la tarjeta gráfica, sólo dice que hay 1:

mekadragon@mekalinux /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card0/device $ ls
aer_dev_correctable       device            i2c-3                    mem_info_vis_vram_used             pp_cur_state       pp_power_profile_mode  revision
aer_dev_fatal             dev_rescan        i2c-5                    mem_info_vram_total                pp_dpm_dcefclk     pp_sclk_od             rom
aer_dev_nonfatal          dma_mask_bits     i2c-7                    mem_info_vram_used                 pp_dpm_fclk        pp_table               subsystem
ari_enabled               driver            irq                      modalias                           pp_dpm_mclk        remove                 subsystem_device
boot_vga                  driver_override   local_cpulist            msi_bus                            pp_dpm_pcie        reset                  subsystem_vendor
broken_parity_status      drm               local_cpus               msi_irqs                           pp_dpm_sclk        resource               uevent
class                     enable            max_link_speed           numa_node                          pp_dpm_socclk      resource0              vbios_version
config                    fw_version        max_link_width           pcie_bw                            pp_features        resource0_wc           vendor
consistent_dma_mask_bits  gpu_busy_percent  mem_busy_percent         pcie_replay_count                  pp_force_state     resource2
current_link_speed        graphics          mem_info_gtt_total       power                              pp_mclk_od         resource2_wc
current_link_width        hwmon             mem_info_gtt_used        power_dpm_force_performance_level  pp_num_states      resource4
d3cold_allowed            i2c-1             mem_info_vis_vram_total  power_dpm_state                    pp_od_clk_voltage  resource5
mekadragon@mekalinux /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card0/device $ cat pp_num_states
states: 1
0 default
mekadragon@mekalinux /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/0000:03:00.0/drm/card0/device $ cat pp_od_clk_voltage


Y como siempre, el archivo pp_od_clk_voltage está vacío.

¿Recomendarías reinstalar Mesa? Hay que decir que he cambiado de gráfica hace poco, de una NVIDIA GTX 970 a una AMD RX5700 XT y no sé si había que hacer algo más que eliminar lo de NVIDIA.

Un saludo,
Yo lo que haría es, volver a formatear todo y empezar de cero, todo esto lo he probado en un ubuntu 18.04 de escritorio no la versión servidor, y yo instalaría la misma versión.
de todas maneras si quieres puedo echarte un vistazo a tu sistema si me permites el acceso por ssh yo le puedo echar un vistazo rápido y te digo, eso si, si aceptas envíame los detalles por privado no vaya algún h.p. a querer hacer una gracia....
8 respuestas