6

I'm successfully using the open source radeon driver and use KMS-power_profiles (see link below) for power management of my graphics to prevent overheating. But I can't manage to set the power_profile on boot and retain it after suspend - so I have to do it manually every time I start up or wake up my laptop.

Several questions about setting it at boot were posed at askubuntu and elsewhere and I've tried every way described without success. I'm new to (Ubuntu) Linux but believe I followed the instructions correctly. Since I cannot comment on the answers as a new users and hours of research on the web didn't help I'm posting this as a new question. Please help :)

I'm using: ATI Mobility Radeon HD 4250 (family R600) on Ubuntu 12.04 x64 with Gallium 0.4 on AMD RS880 = the default open source driver, that came with the installation.

The method most often described is putting

echo profile > /sys/class/drm/card0/device/power_method
echo low > /sys/class/drm/card0/device/power_profile

in

/etc/rc.local

before

exit 0

After doing this I can prove that rc.local is being executed (inserted a command to create a directory which worked), but

cat /sys/class/drm/card0/device/power_profile

returns high instead of low.

Again, setting the power_profile manually as root (even executing rc.local directly) does work. But even then the setting is reverted to high after waking up from suspend.

Other ways I've tried without success:

  • installing the sysfsutils package and adding a rule to the /etc/sysfs.conf file
  • putting a script in /etc/init.d/

Is there any reason you could think of that prevents setting radeon power_profile from boot and retaining it after suspend? Could there be another process overriding my settings?

Thank you for your help!

P.S. I don't want to use the proprietary driver for power-management because it brings along other severe problems.

References:

2 Answers 2

5

I still don't know why the other solutions didn't work for me, but finally found a working solution using pm-utils. I'm not sure if it is the best way to do it but it does all I wished for: Set the radeon power_profile to low on boot and retain that setting after suspend-resume.

Step 1: Create hook

gksudo gedit /usr/lib/pm-utils/power.d/radeon-power_profile

Step 2: Fill in the desired setting

#!/bin/sh

echo profile > /sys/class/drm/card0/device/power_method
echo low > /sys/class/drm/card0/device/power_profile

exit 0

Step 3: Make it executable

sudo chmod +x /usr/lib/pm-utils/power.d/radeon-power_profile

That's it :)

1

alt-f2:

gksudo gedit /etc/init.d/ati-power-save

write this in ati-power-save file:

#!/bin/sh

# ATI power save
echo profile > /sys/class/drm/card0/device/power_method
echo low > /sys/class/drm/card0/device/power_profile

save and run these commands:

sudo chmod +x /etc/init.d/ati-power-save 
sudo update-rc.d ati-power-save defaults 99

as described in here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .