Disable PWM for AMD card0 device
Download zip
archive of the main
branch
wget -c https://github.com/nmtitov/redfan/archive/main.zip -O redfan-main.zip && sudo apt install unzip -y && unzip redfan-main.zip && cd redfan-main
Copy script to /usr/bin/
cp redfan /usr/bin/
Copy systemd service definition
cp redfan.service /etc/systemd/system/
Run script
sudo systemctl start redfan
Enable autostart of the script
sudo systemctl enable redfan
Check if everything is ok
sudo systemctl status redfan
I’m trying to lock RPM of my AMD Radeon videocard fans at the full speed:
echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
echo 255 > /sys/class/hwmon/hwmon1/pwm1
Obviously, it doesn’t work due to missing permissions (even with sudo
/root
) because it is /sys
:
$ sudo su
$ echo 255 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1
bash: echo: write error: Invalid argument
I have also tried sysfs
config to edit these params but it didn’t work:
$ cat /etc/sysfs.conf
class/drm/card1/device/hwmon/hwmon1/pwm1 = 255
class/drm/card1/device/hwmon/hwmon1/pwm1_enable = 1
echo 5 | sudo tee ...
also doesn’t work.
Neither does sudo sh -c
:
sudo sh -c 'echo 225 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1'
sh: 1: echo: echo: I/O error
Archilinux Wiki states it should be possible though https://wiki.archlinux.org/index.php/fan_speed_control#Configuration_of_manual_control They edit values directly with echo
and looks like it works for them.
Another guide also recommends configuring fans this way https://linuxconfig.org/overclock-your-radeon-gpu-with-amdgpu
Python amdgpu-fan
package also doesn’t work for me.
sudo fancontrol
doesn’t work as well:
$ sudo fancontrol
Loading configuration from /etc/fancontrol ...
Common settings:
INTERVAL=10
Settings for hwmon1/pwm1:
Depends on hwmon1/temp1_input
Controls
MINTEMP=10
MAXTEMP=60
MINSTART=50
MINSTOP=0
MINPWM=0
MAXPWM=255
AVERAGE=1
Enabling PWM on fans...
Starting automatic fan control...
/usr/sbin/fancontrol: line 649: echo: write error: Invalid argument
Error writing PWM value to /sys/class/hwmon/hwmon1/pwm1
Aborting, restoring fans...
Verify fans have returned to full speed
Daemon (service) also doesn’t work:
fancontrol[1877]: MAXPWM=255
fancontrol[1877]: AVERAGE=1
fancontrol[1877]: Enabling PWM on fans...
fancontrol[1877]: Starting automatic fan control...
fancontrol[1877]: /usr/sbin/fancontrol: line 649: echo: write error: Invalid argument
fancontrol[1877]: Error writing PWM value to /sys/class/hwmon/hwmon1/pwm1
fancontrol[1877]: Aborting, restoring fans...
fancontrol[1877]: Verify fans have returned to full speed
systemd[1]: fancontrol.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: fancontrol.service: Failed with result 'exit-code'.
To sum up: seems that I can’t edit /sys/ amdgpu-related entries at all
It seems that there has to be another way around, like some amdgpu
config or something like that. Maybe override kernel-defined values during boot?
In Windows, it’s possible to tune fans directly from the AMD Radeon driver GUI app.
I don’t want fancy curves, I’m simply trying to force lock static RPM (full-on mode). I’m using amdgpu-pro
drivers, Ubuntu 20.04. I’d like to avoid using scripts like fancontrol
I wonder if that’s possible just to set pwm1_enable
to 1
and pwm1
to 255
? Looks like the suggested method should be working, but Ubuntu 20.04 security limitations are more restrictive than other distros’ ones.
update
This thing works! But only for 1-2 seconds, after that, fans go back to system-defined speed https://github.com/DominiLux/amdgpu-pro-fans/blob/master/amdgpu-pro-fans.sh
update 2
Disabling pwm works for about 1-2 seconds.echo 0 > /sys/class/hwmon/hwmon1/pwm1_enable
But after that, some daemon reverts this value back to 2. How could I prevent it from changing by other users except me? E.g. prevent it from changing by the system?
https://unix.stackexchange.com/questions/627182/how-to-lock-fan-speed-for-amd-gpu-in-ubuntu-20-04