Getting back some battery life in Ubuntu 11.10 by disabling discrete graphics.

2 Nov

After getting Ubuntu 11.1o to recognise the graphics in my Intel/ATI dual-GPU laptop, only one problem remained. There is no easy way to switch between the two in Linux, and any existing solutions require a fair bit of dicking around to implement and, at the very least, a restart of the X server every time the switch is made.

While Ubuntu uses the integrated Intel graphics by default, the discrete ATI stays on, whirring its fan and gorging on the battery like a regular Augustus Gloop. Compared to 4-5 hours of battery life, Ubuntu would give me around 2 hours. Not good enough.

Since I use Windows 7 for gaming [my only need for a beefy GPU], I wondered if I could just switch off the ATI in Ubuntu altogether. After much Googling and head-scratching, I finally found what I was looking for. A massive thank-you to Matt at http://help.stedman.net.au/ for this info:

[NOTE/WARNING: As always, in the unlikely event that this effs your system, it ain’t my fault. Proceed at your own risk.]

First, to get the Intel GPU’s power-saving features, you need to edit GRUB, by typing the following into the Terminal:

gksu gedit /etc/default/grub

Find this line:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”

And change it to this:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash pcie_aspm=force i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 acpi_backlight=vendor acpi_osi=Linux”

Save, close gedit, and run ‘update-grub’.

[EDIT: It appears that these power-saving features aren’t always reliable, which is probably why they’re not enabled by default. I’ve noticed the odd freeze when opening programs — only for 10-20 seconds or so — which don’t seem to occur when the features aren’t enabled. If you have the same problem, you may want to leave the line as “GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash pcie_aspm=force” and simply disable the ATI card as below.]

Then, to disable the discrete ATI card, type the following into the Terminal:

gksu gedit /etc/rc.local

Insert the following line to the very top of the file, then save and close gedit:

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

Then restart your computer.

For me, nothing went wrong. In fact, everything went right. Upon reboot, the ATI’s fan no longer whirred and my battery life had practically doubled. Which is freaking awesome.

10 Responses to “Getting back some battery life in Ubuntu 11.10 by disabling discrete graphics.”

  1. Farrukh November 22, 2011 at 7:19 pm #

    hmm.. when i disable my bluetooth in ubuntu, it disables in windows 7 too (i have a dual boot system).. so it i disable my graphic card, wont it disable it in windows too?? I mean, I once spent hours trying to figure why wasnt my windows detecting my bluetooth until i realized i had disabled it in ubuntu. I don’t want to keep on disabling and enabling stuff everything I switch back and forth..

    • ed. November 22, 2011 at 9:17 pm #

      No, using the method in this article won’t disable the graphics in Windows on a dual boot system. It’s entirely within Ubuntu.

      How do you disable your bluetooth in Ubuntu? For it to affect Windows, I can only assume you must be turning it off at the hardware level.

  2. Saranga Munasinghe December 3, 2011 at 11:54 pm #

    thanks

    It works !!!

    • Ankit December 8, 2011 at 11:07 am #

      i was searching for this for a long tym………
      it really doubles my battery….
      very very thanku buddy…

  3. Juho February 16, 2012 at 8:31 pm #

    Thank you! Worked.

  4. Brady February 24, 2012 at 3:26 am #

    It works well except I have noticed that, on occasion, windows will freeze while I’m entering text to them. The text is still being entered but i cannot see it until i force the window to refresh by moving the window around the screen with mouse. Any idea why windows (usually gedit and terminal) “forget” to refresh on their own?

    • ed. March 4, 2012 at 4:43 am #

      Not sure, Brady. I’ve never had that trouble myself. Sorry I couldn’t be of more help.

  5. John March 7, 2012 at 2:06 am #

    it works perfect.

    now i’m working 15°c cooler by switching off the discrete video card

    totally works.

  6. Mudit March 24, 2012 at 4:10 pm #

    Not working on my laptop. Works for the first 1-2 times after doing the adjustments mentioned above. But from the third time onwards it seems like it gets reset and the cpu fan is back to its wild ways. The battery life has also reduced significantly from 150 min on Win 7 to just 90 min on Linux Mint (I suspect this is because of the discrete graphics). i
    I’ve ATI Radeon 6550m graphics card

    • ed. March 25, 2012 at 5:36 am #

      Damn. Not sure what to tell you, man. Linux is a harsh mistress. I’m hoping the new kernel and drivers in Ubuntu 12.04 / Mint 13 will solve a lot of these problems. Apparently they’ll include the power saving features for the onboard Intel graphics, but I wish I wish I wish they could sort out the ATI hybrid graphics problem. A decent GUI for vga_switcheroo — at the very least! — sure would be nice.

Leave a reply to John Cancel reply