Seems like you need to be able to create a custom fan curve. Try Corectrl, rather simple and has gui.
just image from internet but corectrl gui
Add PPA
sudo add-apt-repository ppa:ernstp/mesarcUpdate
sudo apt-get updateInstall Corectrl
sudo apt install -y corectrl
If you want to remove the package and the repository
sudo apt remove corectrl
sudo add-apt-repository --remove ppa:ernstp/mesarc
I can also recommend Radeon Profile, but I don’t think it has custom fan curve.
this is radeon profile
Add PPA
sudo add-apt-repository ppa:radeon-profile/stableUpdate
sudo apt-get updateInstall
sudo apt install -y radeon-profile
If you want to remove package and repository
sudo apt remove radeon-profile
sudo add-apt-repository --remove ppa:radeon-profile/stable
Edit: You can get gnome tweaks which is an extended settings package essentially. In it you will be able to set programs to launch at startup easily.
And yes you should also be able to set the fan curve to exactly the same as in windows if you want. I don't know if you can copy directly with a file or anything but just try to set the same fan curve and it will be fine.
Answer from user1574268 on askubuntu.comSeems like you need to be able to create a custom fan curve. Try Corectrl, rather simple and has gui.
just image from internet but corectrl gui
Add PPA
sudo add-apt-repository ppa:ernstp/mesarcUpdate
sudo apt-get updateInstall Corectrl
sudo apt install -y corectrl
If you want to remove the package and the repository
sudo apt remove corectrl
sudo add-apt-repository --remove ppa:ernstp/mesarc
I can also recommend Radeon Profile, but I don’t think it has custom fan curve.
this is radeon profile
Add PPA
sudo add-apt-repository ppa:radeon-profile/stableUpdate
sudo apt-get updateInstall
sudo apt install -y radeon-profile
If you want to remove package and repository
sudo apt remove radeon-profile
sudo add-apt-repository --remove ppa:radeon-profile/stable
Edit: You can get gnome tweaks which is an extended settings package essentially. In it you will be able to set programs to launch at startup easily.
And yes you should also be able to set the fan curve to exactly the same as in windows if you want. I don't know if you can copy directly with a file or anything but just try to set the same fan curve and it will be fine.
You could try a program called LACT. It works really well with AMD GPUs, not so much with nVidia. Image to temperature curve is below.
Link to the program is here: https://github.com/ilya-zlobintsev/LACT

linux - How to lock fan speed for amd gpu in Ubuntu 20.04? - Unix & Linux Stack Exchange
Controlling fan speed of AMD gpu
You'll want to be installing Radeon Profile.
It seems to be the best tool for undervolting/overclocking/fan control of AMD cards. It's certainly the best I have used.
It operates in two parts. There is a system daemon running in the background, and a front end GUI that connects to it.
Update: I just went back and had another look at Corectrl as well, and it is pretty simple to set up fan curves in it as well (just go to the Profiles section). You won't go far wrong with either.
More on reddit.comRecommend me a good amd gpu fan control program with ubuntu
LACT (AMDGPU settings tool) now supports advanced fan curve configuration, voltage control on newer GPUs and uses GTK4 for the GUI
Videos
I wanted to lock fans at 80% but in a slightly different manner. I've changed nothing in /sys/class/drm/. Just
readlink -f /sys/class/drm/card1/device
, where card1 is my amd videocard.
Thus I know the path to the file I want to change.

And after that:
sudo sh -c "echo '1' > /sys/devices/pci0000:00/0000:00:03.0/0000:06:00.0/hwmon/hwmon1/pwm1_enable"
sudo sh -c "echo '200' > /sys/devices/pci0000:00/0000:00:03.0/0000:06:00.0/hwmon/hwmon1/pwm1"
Works! Ubuntu kernel 5.4
In case anyone is interested the solution I made and the corresponding systemd service is here: redfan https://github.com/nmtitov/redfan
So far my best guess is to write the following script and keep it always running in the background:
while sleep 1; do echo 0 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1_enable; done
Every second I "disable" pwm and make fans running at max speed. The driver (or something else) restores the value, but the next second I immediately disable it again.
Hi Folks,
I am very new to Linux and try to control my gpu fan speed like I do with Afterburner on Windows.
I installed fancontrol and lm-sensors via the terminal and used "sudo pmwconfig", but am unsure how to proceed.
I get:
"This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.
We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.
Found the following devices:
hwmon0 is k10temp
hwmon1 is asus
hwmon2 is amdgpu
Found the following PWM controls:
hwmon2/pwm1 current value: 104
hwmon2/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n)"
How do I now actually create a speed curve for hwmon2? Does the system know which temp sensor belongs to hwmon2?
- I don't want to proceed without a plan, fearing I deactivate the automatic mode and can't compensate it. I read that at some point a config is created, which (for the gpu fan) would be nice
- i don't want to interfere with the cpu fans, as I control them via BIOS and am very happy with it
Thank you very much!
Edit: I just noticed this sub may be not perfectly fitting for this kind of question, sorry. This happens me all the time...
You'll want to be installing Radeon Profile.
It seems to be the best tool for undervolting/overclocking/fan control of AMD cards. It's certainly the best I have used.
It operates in two parts. There is a system daemon running in the background, and a front end GUI that connects to it.
Update: I just went back and had another look at Corectrl as well, and it is pretty simple to set up fan curves in it as well (just go to the Profiles section). You won't go far wrong with either.
I think corectrl will do what you want. Probably in your repo. I'm not an AMD GPU guy but I remember reading about this a while back thinking it was cool.
Using an rx 5700xt for 1080p on ubuntu 22.04 LTS. I want a fan control program so it doesn't sound like a jet engine taking off while playing. Anything similar to nvidia control panel out there, but for amd?
I've been working on a configuration GUI for AMD GPU settings, and now after a period of inactivity in the project there is a major update, which adds new features:
-
More advanced fan control, you can now edit temperature points and add or remove them
-
Voltage control on newer GPU models
-
JSON API in the daemon
-
Searchable Vulkan feature/extension lists
Also, there are generated deb/rpm packages for different distros now.
Repo link
The program is similar to CoreCtrl, but it runs the configuration bit as a the daemon instead of requiring an open GUI.
I have an r9 280 for which only open source drivers are available and would like to control the fan curve if possible, the card is unnecessarily loud as it barely reaches 50 degrees under load but the fans are still kicking into high gear..