Solution/workaround with open-source drivers: (kernels>=3.11)
I had the same problem; my laptop will even shutdown itself for overheating few minutes after the boot (and sometime it didn't even manage to finish the boot).
My machine Samsung Chronos 7 (see note (3)) with hybrid graphics:
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Seymour [Radeon HD 6400M/7400M Series]
switching to proprietary drivers helped, but sometime it was overheating too. With open-source drivers, often it didn't arrive to finish the boot. I managed to fix it and use the open-source drivers in Ubuntu 13.10, kernel 3.11.x.
Disclaimer: I do not mind having reduced 3D performance. If you mind it, try installing the latest proprietary drivers.
a) go back to open-source drivers by removing all fglrx packages (link, link). Be sure to remove /etc/X11/xorg.conf
if you have one --- it can block open-source drivers to find screens.
b) fundamental add the kernel boot parameter radeon.dpm=1
(see note 1). This alone keeps the temperature down (although higher than I like). (Edit: should be the default on 14.04 onward).
c) Identify the card number (see note 2). In my case is card1
, you can say it looking if a file named /sys/class/drm/card1/device/power_dpm_state
exists. Go superuser in a terminal with sudo -i
and do
echo battery > /sys/class/drm/card1/device/power_dpm_state
this make my GPU 20 degrees (C) colder. I added this to my /etc/rc.local
:
# avoid overheating of the AMD GPU
if [ -f /sys/class/drm/card1/device/power_dpm_state ]; then
echo battery > /sys/class/drm/card1/device/power_dpm_state
fi
d) After suspend/resume, strangely, the GPU is hotter. A solution is to issue (as above in a superuser terminal)
echo low > /sys/class/drm/card1/device/power_dpm_force_performance_level
Interesting links:
Footnotes:
(1) This will enable "dynamic power management" for the radeon driver. FWIK, it will be the default setting in 14.04 and up, so this hack should become obsolete soon.
Main link: https://wiki.archlinux.org/index.php/ATI#Dynamic_power_management
(2) Note that sometime the AMD card changes number across reboots. As a solution I have put in my scripts (I had to put it as is in /etc/rc.local
and a similar concoction in a resume script in /etc/pm/sleep.d/01-stay-cool
--- comment or read here if you need assistance for the resume script).
# avoid overheating of the AMD GPU
if [ -f /sys/class/drm/card1/device/power_dpm_state ]; then
echo battery > /sys/class/drm/card1/device/power_dpm_state
echo low > /sys/class/drm/card1/device/power_dpm_force_performance_level
fi
if [ -f /sys/class/drm/card0/device/power_dpm_state ]; then
echo battery > /sys/class/drm/card0/device/power_dpm_state
echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
fi
(3) Exact model for being google friendly (sudo dmidecode
):
System Information
Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
Product Name: 700Z3A/700Z4A/700Z5A/700Z5B
Graphic card Radeon HD 6400M/7400M Series
Version: 0.1