Update (2012-04-26): I have confirmed that the steps listed here still work in version 12.04.
It turns out the excessive heat and constant fan on my Ideapad U400 was being caused by the switchable graphics, which so far have proven themselves to be more effort than their worth. The situation isn’t even that much better under Windows, not being able to play more graphically intensive OpenGL games like Minecraft (yes, I just that about Minecraft). Maybe the Nvidia cards are better off, but next time I won’t take that chance and just get a laptop without any kind of switchable graphics if I can.
I haven’t yet figured out how to get AMD card working at all under Linux, so if that’s what your looking for, sorry (update! I did get it working finally, see below). The integrated card has worked surprisingly well for me though, so long as I stick to graphically simpler games. Minecraft even works well enough with it, maybe even better than it ran with the integrated card in Windows.
This article might also apply to other laptops with switchable AMD graphics that are running Ubuntu 11.10 (and anything based on Ubuntu). So if you have a laptop like that which you want to run cooler, keep reading.
What we need to do is disable the AMD card by using something known as vga_switcheroo, this makes the situation much more manageable, but still not perfect. At least I no longer get burnt by my laptop, and the fan runs a bit quieter, although still constantly.
During my searches I came across this page on the Ubuntu wiki. I tried to follow it but found some important steps were omitted, like you already knew what you were doing.
Update (2012-08-12): I just came across a forum post which describes how to get the AMD GPU to work under Ubuntu 12.04. I’m not sure yet it if it will address the heat issues or not, but if you want to use the AMD card, take a look. So far the heat seems to be OK until I start up a game, but I’ve only been using it for about an hour.
Here’s what you need to do:
Open up /etc/default/grub:
sudo nano /etc/default/grub
In this file you need to add the modeset=1 option to the line with GRUB_CMDLINE_LINUX_DEFAULT. That line will end up looking something like this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modeset=1"
Save that file (in nano, Ctrl+O), then close (nano: Ctrl+X). Now run the command:
Now, restart. If everything was successful vga_switcheroo should now be active and you should be able to turn off your AMD card.
Now that all of that is done, to manually turn off your AMD card:
Open up your terminal and run the following sequence of commands:
sudo su echo ON > /sys/kernel/debug/vgaswitcheroo/switch echo IGD > /sys/kernel/debug/vgaswitcheroo/switch echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
This turns on both cards, selects the integrated graphics card, then turns off the card that wasn’t selected (your AMD card).
If I’ve correctly written out all the steps, you should no longer have your AMD card turned on, and your laptop should be rapidly cooling down, and another interesting side effect of this is improved battery life. If you’re still having trouble, take a look at that wiki page I linked to earlier. It has more information, but it’s spread out in a way that’s hard to make sense of unless you already have an idea of what needs to be done. If I’ve accidentally missed a step, head to the forums and tell me about it so I can fix the article.
Hope this helped you, and if I find a way to get the AMD card working at all, I’ll write about it.
If you need help figuring out your wireless connection, take a look here.