Power issues with X200s and Ubuntu 12.10
Posted: Wed Mar 06, 2013 8:28 am
I'm getting basically dreadful power efficiency with my X200s and Ubuntu 12.10. If you're really lucky you might get it to 4 hours, but barely 3 is more likely.
I use powertop and thinkfan (please do not tell me to use them; this is not useful) and try to keep plugin-container killed. Typically I crank down the brightness, run powertop, and turn off Bluetooth (but not WLAN as in that case I might as well turn off the computer).
And it draws anywhere between 14 and 20 W, typically about 15-16.
Weirdness 1): powertop often shows the GigE port pulling 5 or so watts when not in use. sudo ifup set eth0 down cures.
Weirdness 2): power consumption is dominated by the fan. As I write this, it's doing 21 W and the fan accounts for 7.9 W of that.
Here's some data, in W, from a recent session.
Fan 9.5
Backlight 3.73
/usr/lib/firefox/firefox 0.801
[45] i915 0.608
/usr/lib/thunderbird/thun 0.601
Network interface: wlan0 0.319
hrtimer_wakeup 0.299
compiz 0.251
tick_sched_timer 0.238
intel_unpin_work_fn 0.173
PS/2 Touchpad / Keyboard 0.0635
[9] RCU(softirq) 0.0635
/usr/bin/X :0 -core -auth 0.0585
[7] sched(softirq) 0.0556
to summarise, that's a total draw of 16.76 W, of which 3.5 W is being used to actually do stuff. In all, 56% of the power consumption is being guzzled by the fan. Therefore, the fan is mostly fanning heat generated by the fan motor fanning. This sucks, and in general the laptop has been a bit of a disappointment, very much because its battery life is pitiful. It's not as if it runs particularly hot, even.
I am tempted to try to disable the fan entirely.
Here's /etc/thinkfan.conf. If anyone has actual values for x200s it would be useful:
######################################################################
# thinkfan 0.7 example config file
# ================================
#
# ATTENTION: There is only very basic sanity checking on the configuration.
# That means you can set your temperature limits as insane as you like. You
# can do anything stupid, e.g. turn off your fan when your CPU reaches 70°C.
#
# That's why this program is called THINKfan: You gotta think for yourself.
#
######################################################################
#
# IBM/Lenovo Thinkpads (thinkpad_acpi, /proc/acpi/ibm)
# ====================================================
#
# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.
# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#
# I use this on my T61p:
sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)
(0, 0, 42) # thinkwiki.de proposed x200 values
(1, 40, 47)
(2, 45, 52)
(3, 50, 57)
(4, 55, 62)
(5, 60, 67)
(6, 65, 72)
(7, 70, 77)
(127, 75, 32767) # full
I use powertop and thinkfan (please do not tell me to use them; this is not useful) and try to keep plugin-container killed. Typically I crank down the brightness, run powertop, and turn off Bluetooth (but not WLAN as in that case I might as well turn off the computer).
And it draws anywhere between 14 and 20 W, typically about 15-16.
Weirdness 1): powertop often shows the GigE port pulling 5 or so watts when not in use. sudo ifup set eth0 down cures.
Weirdness 2): power consumption is dominated by the fan. As I write this, it's doing 21 W and the fan accounts for 7.9 W of that.
Here's some data, in W, from a recent session.
Fan 9.5
Backlight 3.73
/usr/lib/firefox/firefox 0.801
[45] i915 0.608
/usr/lib/thunderbird/thun 0.601
Network interface: wlan0 0.319
hrtimer_wakeup 0.299
compiz 0.251
tick_sched_timer 0.238
intel_unpin_work_fn 0.173
PS/2 Touchpad / Keyboard 0.0635
[9] RCU(softirq) 0.0635
/usr/bin/X :0 -core -auth 0.0585
[7] sched(softirq) 0.0556
to summarise, that's a total draw of 16.76 W, of which 3.5 W is being used to actually do stuff. In all, 56% of the power consumption is being guzzled by the fan. Therefore, the fan is mostly fanning heat generated by the fan motor fanning. This sucks, and in general the laptop has been a bit of a disappointment, very much because its battery life is pitiful. It's not as if it runs particularly hot, even.
I am tempted to try to disable the fan entirely.
Here's /etc/thinkfan.conf. If anyone has actual values for x200s it would be useful:
######################################################################
# thinkfan 0.7 example config file
# ================================
#
# ATTENTION: There is only very basic sanity checking on the configuration.
# That means you can set your temperature limits as insane as you like. You
# can do anything stupid, e.g. turn off your fan when your CPU reaches 70°C.
#
# That's why this program is called THINKfan: You gotta think for yourself.
#
######################################################################
#
# IBM/Lenovo Thinkpads (thinkpad_acpi, /proc/acpi/ibm)
# ====================================================
#
# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.
# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#
# I use this on my T61p:
sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)
(0, 0, 42) # thinkwiki.de proposed x200 values
(1, 40, 47)
(2, 45, 52)
(3, 50, 57)
(4, 55, 62)
(5, 60, 67)
(6, 65, 72)
(7, 70, 77)
(127, 75, 32767) # full