Ubuntu – Set ATI/AMD GPU Fan speed with MESA Driver

atimesaoverheating

My video card's (Sapphire ATi Radeon HD 3650) temperature reaches 150°C in 5 minutes and then it stops working.
I installed fglrx and it works now. I can even play 3D games for 5-30 minutes.

If I use the Live CD and fglrx isn't installed (it uses Mesa driver then) how can I control the fan?

Best Answer

  1. First I advise you to update your kernel, because based on this link, updating the kernel solves the heating problem. A guide to update your kernel maybe found in this question

  2. Install shell-extension-radeon-power-profile-manager

  3. If the problem persist we will try to create a profile for low power GPU:

Based on this XOrg link

The Power Management code supports two basic methods:

"dynpm"
"profile" 

You can select the methods via sysfs. Echo "dynpm" or "profile" to /sys/class/drm/card0/device/power_method.

sudo echo profile >  /sys/class/drm/card0/device/power_method

Controlling the fan speed directly is not possible (and would be very dangerous), but it can be lowered by setting lower power profile

The "dynpm" method dynamically changes the clocks based on the number of pending fences, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The reclocking is attemped during vertical blanking periods, but due to the timing of the reclocking functions, doesn't not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.

The "profile" method exposes five profiles that can be selected from:

"default"
"auto"
"low"
"mid"
"high" 

Select the profile by echoing the selected profile to /sys/class/drm/card0/device/power_profile.

  • "default" uses the default clocks and does not change the power state. This is the default behavior.
  • "auto" selects between "mid" and "high" power states based on the whether the system is on battery power or not. The "low" power state are selected when the monitors are in the dpms off state.
  • "low" forces the gpu to be in the low power state all the time. Note that "low" can cause display problems on some laptops; this is why auto does not use "low" when displays are active.
  • "mid" forces the gpu to be in the "mid" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.
  • "high" forces the gpu to be in the "high" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.

Thus, to select low profile:

sudo bash -c "echo profile > /sys/class/drm/card0/device/power_method"
sudo bash -c "echo low > /sys/class/drm/card0/device/power_profile"