You’re not alone, I’m sure. For a while I’ve been avoiding Fedora if only because I wasn’t able to figure out why my ATI video card seemed to be in overdrive even when it was simply idle. The fan would turn on as if I were gaming or watching a Blu-Ray disk.
I wasn’t about to let Fedora melt my expensive video card or wear out the fan bearings, so I decided that I was either going to fix the problem or never run Fedora. This shelved my exploration of Fedora for quite some time until tonight when I felt compelled to try it once more – and to fix the hot video card problem.
The problem is, simply put, Fedora’s default settings for the video card’s power management are the highest settings. The GPU is essentially revved to its factory max at all times, the way I understand it. This of course makes the fan spin too fast all the time.
How do you fix it? Here’s what I did, but your mileage may vary:
echo auto > /sys/class/drm/card0/device/power_profile
As soon as I did this, my GPU’s fan slowed to an almost inaudible pur. I needed to chattr +i the file to get the changes to stick. I’m not sure what’s changing it – perhaps someone can comment and let me know. Perhaps changing the power_method mentioned later in this post to dynpm would stop it from being changed.
Adding the immutable option definitely stops this from happening though:
chattr +i /sys/class/drm/card0/device/power_profile
Now, there are a few ways to tweak power management related settings. You can select from two PM methods: dynpm and profile. The dynpm method dynamically change the GPU clocks according to GPU load. The profile method is supposed to be more static.
Fedora 16 64bit comes with profile enabled by default. To change the PM to dynpm, do this:
echo dynpm > /sys/class/drm/card0/device/power_method
Now, with the profile method you can select from several profiles: default, auto, low, mid and high. The default setting is the default profile and it runs HOT. It uses default clocks and doesn’t change power states. The low, mid, high profiles change the GPU clocks accordingly. The auto profile does just what it says, it automatically switches between the profiles. There is some conflicting information out there on exactly which profile it switches to at what time, but I consider my problem resolved with the auto profile setting.
So to summarize, you can either use dynpm or profile for Power Management.
to switch to profile:
echo profile > /sys/class/drm/card0/device/power_method
and to switch to dynpm:
echo dynpm > /sys/class/drm/card0/device/power_method
Works, but after restarting setting return to its default behaviour.
Hey Alberto, thanks for pointing that out. I needed to add the immutable trait to the file to get the changes to stick:
chattr +i /sys/class/drm/card0/device/power_profile
May also need to run that as root.
Thanks to you
Hmm … I have a different problem. I am trying to get the fan on my ATI HD4890 to run faster. The problem I have is that even as root I can not create a dataset in the directory mentioned. The shell says “not such file or directory”. If I try gedit, gedit says the directory is in some radically different place, like the whole structure was really virtual.
What am I missing? I am new to Fedora, but old to Solaris. There are a lot of differences under the covers!!
Any help? or hints?
Tia
Hi Mike,
Why are you trying to make the fan run faster? Is the GPU too hot or something? You might be able to get a temp readout from the “sensors” command. Likely not installed by default, so you’ll need to:
yum install lm_sensors*
then just type sensors at the command prompt.
As far as finding the directory, I’m afraid it’ll be hard for me to help from here. I would try using either “locate” or “find” with some flags. See the man pages for help on either one of those commands by using “man find” or “man locate”.
Fwiw, it just sounds like the directory isn’t where you’re looking. I’m not sure why it’s like that for ya though. Wish I could help more.