Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a hybrid Radeon 6600M/Intel laptop, and I've installed the Ubuntu beta 2, hoping that I'd get a better battery life but I still seem to be getting high power consumption.

With radeon blacklisted, I'm still getting ~23W of power consumption. I get ~5 hours on Windows compared to <2 hours on Ubuntu. What can I do to decrease power consumption?

share|improve this question
    
It would be useful to have some details about your system; I've written an answer based on my inferences as to what you have. –  RAOF Apr 24 '12 at 7:24
    
It is a hybrid system with ATI Radeon 6600M. What other information do you want? –  infoquad Apr 24 '12 at 8:07
    
That's the important bit (that you can see that I've guessed). –  RAOF Apr 24 '12 at 8:14
add comment

2 Answers 2

On a hybrid Intel/AMD system, blacklisting radeon won't actually turn off the discrete Radeon card; it'll be in a lowish-power state because it's not doing anything, but it won't be off.

In order to actually turn off the card you need to have both intel and radeon loaded so that the vgaswitcheroo infrastructure gets initialised, and then you can run

echo OFF | sudo tee /sys/kernel/debug/vgaswitcheroo/switch

which will turn off any GPUs that vgaswitcheroo thinks are unused; in this case, it'll be your Radeon. You'll need to do this each boot; it's not persistent across restarts.

share|improve this answer
    
Thanks a tonne. This worked like a charm on my machine. –  Vamsi Emani May 1 '12 at 12:19
1  
Any way to make this persistent? –  Pakman May 2 '12 at 3:21
add comment

To make it "persistent", set an rc.local line(s) to arrange it every startup. (It's not actually persistent, but it will seem like it is to the user).

This site gives some hints: https://help.ubuntu.com/community/HybridGraphics

To have permanent write permissions to the switch file, add the following line, replacing USERNAME with your username, to /etc/init.d/rc.local:

chown USERNAME /sys/kernel/debug/vgaswitcheroo/switch

Now, whichever card you want to be in use and on/off, just add another line that follows the convention for vgaswitcheroo, as seen on that page.

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

Turns on the GPU that is disconnected (not currently driving outputs), but does not switch outputs.

echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

Connects integrated graphics with outputs.

echo DIS > /sys/kernel/debug/vgaswitcheroo/switch

Connects discrete graphics with outputs.

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Turns off the graphics card that is currently disconnected.

There are also a couple of options that are useful from inside an X-Windows session:

echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch

Queues a switch to integrated graphics to occur when the X server is next restarted.

echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch

Queues a switch to discrete graphics to occur when the X server is next restarted.

cat /sys/kernel/debug/vgaswitcheroo/switch

Allows you to verify the current state of the hybrid graphics. Typically, there will be two lines of output - one should indicate "Pwr" and the other should indicate "Off".

NB: The script with a gui on that page, by Roberto Martinez, may work or it may not, for many reasons. YMMV, so be prepared to try and see, if you want it.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.