u400-temperature

Does your Lenovo Ideapad U400 run hot under Ubuntu 11.10?

It turns out the excessive heat and constant fan on my 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. 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.

 

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 modeset=1 acpi_osi=\"Linux\""

Save that file (in nano, Ctrl+O), then close (nano: Ctrl+X). Now run the command:

update-grub

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.

This entry was posted in Hardware and tagged , , , . Bookmark the permalink.
Forum topic
  • Jack Lonsdale

    I was wondering whether you have the cypress or synaptics touchpad? Does multitouch work in linux or not? Thanks

    • Anonymous

      Hey Jack,
      I’m pretty sure I don’t have a synaptics touchpad and multitouch isn’t working for me. I haven’t made any attempt to get it working, though. I had multi touch working in Linux on my last laptop, it did have a synaptics touchpad.

  • CStoddard

    Really clever, thanks for posting. I can’t seem to be able to get it stay switched off after a restart, but will post once I do. Keep the fixes coming!

  • Andrew Milkowski

    Thanks!, the instructions worked well, core temperature dropped significantly (below)

    Question however, fan is constantly on even when temp is < 50 C , did anyone discover a way to control thermal sensors in Lenovo U400? (no Bios update is available at the time) and reading of message log, reports

    Thanks in advance!

    [root@localhost amilkowski]# dmesg | grep -i fan[    1.708951] [drm] Internal thermal controller without fan control[root@localhost amilkowski]#(sensors output now gives:[amilkowski@localhost ~]$ sensors
    acpitz-virtual-0
    Adapter: Virtual device
    temp1:        +50.0 C  (crit = +98.0 C)
    temp2:        +42.0 C  (crit = +126.0 C)

    radeon-pci-0100
    Adapter: PCI adapter
    temp1:       -128.0 C  

    coretemp-isa-0000
    Adapter: ISA adapter
    Physical id 0:  +51.0 C  (high = +86.0 C, crit = +100.0 C)
    Core 0:         +49.0 C  (high = +86.0 C, crit = +100.0 C)
    Core 1:         +51.0 C  (high = +86.0 C, crit = +100.0 C)

    [amilkowski@localhost ~]$