<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benjamin+Pineau</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benjamin+Pineau"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Benjamin_Pineau"/>
	<updated>2026-05-05T22:35:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=36105</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=36105"/>
		<updated>2008-01-19T11:15:48Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Useful Patches */ + PCIe link power management patch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power hungry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power hungry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel (AN needs also support in hal to be used).&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
As of now (2.6.24-rc8), the linux kernel doesn't support PCI Express power &lt;br /&gt;
management (aka PCIe ASPM, aka PCIe LPM). Shaohua Li from Intel submited a &lt;br /&gt;
patch on LKML (http://lkml.org/lkml/2008/1/17/544 ) though, and reported it &lt;br /&gt;
to reduce power consumption by 1.3 watts for a system with three PCIe links.&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totally avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems insufficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34796</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34796"/>
		<updated>2007-11-23T02:09:41Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* BIOS settings */ emphasis on &amp;quot;enable&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed ''enable'' them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems unsuficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34795</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34795"/>
		<updated>2007-11-23T02:08:55Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Kernel boot and module loading options */ clarify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hpet=force&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to your kernel boot options (usualy in /boot/grub/menu.lst or lilo.conf). &lt;br /&gt;
Note that &amp;quot;hpet=force&amp;quot; is only available by default in 2.6.24-rc2 and above &lt;br /&gt;
(or as a separated patch for 2.6.22 and 2.6.23, see below).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems unsuficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34794</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34794"/>
		<updated>2007-11-23T02:07:14Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* USB Subsystem */ how to disable PCMCIA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &amp;quot;hpet=force&amp;quot; to your kernel&lt;br /&gt;
boot options (usualy in /boot/grub/menu.lst or lilo.conf). Note that &amp;quot;hpet=force&amp;quot; is only&lt;br /&gt;
available in 2.6.24-rc2 and above (or as a separated patch for 2.6.22 and 2.6.23).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same for PCMCIA/Cardbus. Some users experiences interrupts clouds (sometime up to &lt;br /&gt;
several thousands interrupts/second) causing CPU wakeups, thus totally preventing &lt;br /&gt;
the CPU to reach lower C-states. &lt;br /&gt;
If you don't use PCMCIA, you may disable it the same way (unloading seems unsuficient&lt;br /&gt;
to restore the system properly, you have to boot without it):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist pcmcia&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
 echo &amp;quot;blacklist yenta_socket&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34793</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34793"/>
		<updated>2007-11-23T02:00:52Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Useful sysctls */ usb autosuspend tip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &amp;quot;hpet=force&amp;quot; to your kernel&lt;br /&gt;
boot options (usualy in /boot/grub/menu.lst or lilo.conf). Note that &amp;quot;hpet=force&amp;quot; is only&lt;br /&gt;
available in 2.6.24-rc2 and above (or as a separated patch for 2.6.22 and 2.6.23).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34792</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34792"/>
		<updated>2007-11-23T01:55:57Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* External resources */ better description of LessWatts website (it is run by Intel, but not Intel specific)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &amp;quot;hpet=force&amp;quot; to your kernel&lt;br /&gt;
boot options (usualy in /boot/grub/menu.lst or lilo.conf). Note that &amp;quot;hpet=force&amp;quot; is only&lt;br /&gt;
available in 2.6.24-rc2 and above (or as a separated patch for 2.6.22 and 2.6.23).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* Intel's [http://www.lesswatts.org/ LessWatts] &amp;quot;''Saving power on Linux''&amp;quot; website&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34791</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34791"/>
		<updated>2007-11-23T01:51:46Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* General settings */ advice to enable the HPET timer, and update kernel related infos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). &lt;br /&gt;
Later, 2.6.24-rc2 brought a lot of other power efficiency improvements. &lt;br /&gt;
If it's not already on your distribution and you value power efficiency, &lt;br /&gt;
you may think about compiling a recent kernel yourself. &lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE&lt;br /&gt;
 CONFIG_SND_HDA_POWER_SAVE_DEFAULT=3&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Kernel boot and module loading options ===&lt;br /&gt;
If you have an Intel chipset &amp;gt; ICH3 (cf. lspci output), as in most modern Thinpads, you should&lt;br /&gt;
be using the integrated HPET timer (saves about 30 CPU wake ups per second). To see if&lt;br /&gt;
hpet is enabled on your laptop :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
grep hpet /proc/timer_list&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this does not display &amp;quot;Clock Event Device: hpet&amp;quot;, then add &amp;quot;hpet=force&amp;quot; to your kernel&lt;br /&gt;
boot options (usualy in /boot/grub/menu.lst or lilo.conf). Note that &amp;quot;hpet=force&amp;quot; is only&lt;br /&gt;
available in 2.6.24-rc2 and above (or as a separated patch for 2.6.22 and 2.6.23).&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34790</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34790"/>
		<updated>2007-11-23T01:37:46Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Useful Patches */ SATA ALPM and AN merged in 2.6.24-rc2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). Also from&lt;br /&gt;
Accardi, SATA Asynchronous Notification (SATA AN), alows SATA link to notify&lt;br /&gt;
media insertions (thus avoid hal polling the cdrom). Those patches were merged &lt;br /&gt;
in 2.6.24-rc2 kernel.&lt;br /&gt;
See: http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note, however, that if the network device on the other side has auto-negotiation enabled (which is very common) and you turn auto-negotiation off, the other side will assume half-duplex mode and you will experience a significant loss of performance.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34188</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34188"/>
		<updated>2007-10-30T13:48:54Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Wireless Interface */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/*/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34187</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34187"/>
		<updated>2007-10-30T13:45:34Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Graphic controllers */ clarify, detail more&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
See the section above about how to enable dpms driven display power saving.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output (or any other detected&lt;br /&gt;
as connected but not used outputs) when you're not using it: it's known to consume power. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr # see all displays listed here, but that you don't actually use and disable them. &lt;br /&gt;
 xrandr --output TV -off # for instance (if &amp;quot;xrandr&amp;quot; above listed a connected output named &amp;quot;TV&amp;quot; that you don't use)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34186</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34186"/>
		<updated>2007-10-30T13:10:01Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* LCD Backlight/Brightness */ how to do it, and also recommand using dpms to turn off the display&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
The very recent, but xorg standard way to control backlight from CLI is&lt;br /&gt;
using xbacklight. ie. to set backlight at half the brightness:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xbacklight -set 50&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should configure the DPMS to shutdown the screen when idle (rather than&lt;br /&gt;
displaying a fancy but power consuming screensaver). ie. to turn off the&lt;br /&gt;
display after 5mn of idling:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 xset +dpms&lt;br /&gt;
 xset dpms 0 0 300&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34185</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34185"/>
		<updated>2007-10-30T12:45:46Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Wireless Interface */ clarify somehow (hopefuly)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patches===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most drivers, like ipw2200, that don't use the new mac80211 framework place the&lt;br /&gt;
interfaces in aggressive scanning mode when they are not associated with any &lt;br /&gt;
Access Point, even when the interface is down (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use. But this can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options &lt;br /&gt;
(Debian/Ubuntu) or in /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34183</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34183"/>
		<updated>2007-10-30T12:20:36Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Wireless Interface */ prevent agressive scanning when the interface is down for pre-mac80211 drivers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
Drivers not using the new mac80211 framework (like ipw2200) use to go in &lt;br /&gt;
aggressive scanning mode when the interface is down and they are not associated&lt;br /&gt;
with any Access Point (more info about this on Intel's&lt;br /&gt;
[http://www.lesswatts.org/tips/wireless.php LessWatts] website).&lt;br /&gt;
This behavior consumes a lot of power, even more than when the interface&lt;br /&gt;
is plain active and in use, but can disabled at module's load time :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod ipw2200&lt;br /&gt;
 modprobe ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can fix this setting by placing the following in /etc/modprobe.d/options (Debian/Ubuntu) &lt;br /&gt;
or /etc/modprobe.conf (Red Hat/Fedora):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 options ipw2200 associate=0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34182</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34182"/>
		<updated>2007-10-30T11:22:29Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Optical drive */ more precise&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive (except if you have a kernel &amp;gt;= 2.6.24, hal &amp;gt;= 0.5.10,&lt;br /&gt;
and SATA AN compatible devices). If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider suspending it when running on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN - Asynchronous Events Notifications) that obsolete the need for polling on modern hardware; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34181</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34181"/>
		<updated>2007-10-30T11:13:22Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Optical drive */ ok, found the version of HAL supporting SATA AN.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN notification events) that obsolete the need for polling; support for this feature had been merged in Linux 2.6.24-rc1 and HAL 0.5.10.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34180</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34180"/>
		<updated>2007-10-30T11:03:41Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Tools */ see also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
See also [[#Misbehaving Userland]].&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN notification events) that obsolete the need for polling; support for this feature had been merged in Linux 2.6.24-rc1 (FIXME: which HAL version support this ?).&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34179</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34179"/>
		<updated>2007-10-30T11:02:29Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Optical drive */ explain that hal polling will be obsoleted for kernels &amp;gt; 2.6.24-rc1 when we use SATA AN capables drives and buses&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery. Some moderns SATA buses and drivers supports a notification mechanism (SATA AN notification events) that obsolete the need for polling; support for this feature had been merged in Linux 2.6.24-rc1 (FIXME: which HAL version support this ?).&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34178</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34178"/>
		<updated>2007-10-30T10:55:17Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: an other general rule: make use of hardware devices power saving features (indeed!)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, use SATA AN, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
* Make use of every hardware devices availables power saving features (AHCI ALPM, USB autosuspend, Alsa and Wireless powersaving modes, HPET timers, ...)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34177</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34177"/>
		<updated>2007-10-30T10:51:10Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Hard Drives */ warning about possible problems with &amp;quot;hdparm -B 1&amp;quot; (possibly affecting disk lifetime)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm (beware&lt;br /&gt;
that &amp;quot;-B 1&amp;quot; may reduce your drive lifetime, if you have lot of intermittent&lt;br /&gt;
disk activity causing lots of heads load/unloads: so reduce I/O activity first,&lt;br /&gt;
as explained above, in order to get longer disks idling periods).&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34176</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34176"/>
		<updated>2007-10-30T10:44:10Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Wireless Interface */ wifi power saving for drivers using mac80211&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/devices/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For drivers using the new Wi-Fi kernel framework (mac80211/cfg80211), &lt;br /&gt;
the canonical way to do this is now:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/pci/devices/%s/power_level ; do echo 5 &amp;gt; $i ; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34175</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34175"/>
		<updated>2007-10-30T10:30:58Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* USB Subsystem */ document how to enable USB autosuspend&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery. And you must enable it, either a boot time &lt;br /&gt;
by adding this in the kernel boot options (ie. in grub's menu.lst):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 usbcore.autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or at runtime, per device, with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 for i in /sys/bus/usb/devices/%s/power/autosuspend; do echo 1 &amp;gt; $i; done&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any device needing USB 1.1 (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34174</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34174"/>
		<updated>2007-10-30T10:25:44Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Useful sysctls */ ah, actually ALPM patchs got merged in linus' git two days ago&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run a 2.6.24-rc2 or more kernel, or applied Kirsten patchset, have an Intel &lt;br /&gt;
AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use kernel &amp;gt; 2.6.24-rc2 (or use Kristen ALPM patchset) : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34173</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34173"/>
		<updated>2007-10-30T10:20:08Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Useful sysctls */ explain to sysctl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
 # those sysctl's are only available if you have an AHCI compatible SATA &lt;br /&gt;
 # controler and use Kristen Carlson Accardi's ALPM patchset : &lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34172</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34172"/>
		<updated>2007-10-30T10:16:21Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Useful Patchs */ update note about hrtimers patchs: they're no more needed as of 2.6.24-rc1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies). Those are &lt;br /&gt;
fully merged in 2.6.24-rc1 vanilla kernel.&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34171</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34171"/>
		<updated>2007-10-30T10:15:06Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* General settings */ leftover frenchism&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE and CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies).&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34170</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=34170"/>
		<updated>2007-10-30T10:14:24Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* General settings */ more relevant settings, from powertop 1.9 and linux 2.6.24-rc1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [[PowerTOP]] utility&lt;br /&gt;
is a gold mine to improve energy efficiency, but is almost only CPU-oriented. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, which prevent the use of CPU power saving mechanisms and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favorite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviors.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with [[PowerTOP]]).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_HPET_TIMER&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 CONFIG_INOTIFY&lt;br /&gt;
&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_CPU_IDLE&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_LADDER&lt;br /&gt;
 CONFIG_CPU_IDLE_GOV_MENU&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE et CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies).&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html here], or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
Forcing 100Mbps full-duplex speed on a gigabit ethernet NIC can also save a lot of power (~1W) on most network workloads. This also reduces components temperature (e.g., [[Thermal Sensors|thermal sensor]] 0xC0 on the {{T43}} cools down by 5 degree between 1000Mbps and 100Mbps, and another 1 degree for 10Mbps).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  ethtool -s eth0 autoneg off speed 100&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of its radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Modem==&lt;br /&gt;
When was the last time you used your analog modem? If you can't remember, you probably just don't need it. If it is on a separate module in your laptop, simply remove it. Store it in a ESD safe place (like the bag in which your last addon card or hard drive was packed), in case you should need it again. This won't save you a lot of power and weight, but why carry something around you never use.&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
{{NOTE|Not all software is evil, buggy or badly written. Some produce regular activity because they have to, in order to provide their intented functionality.  Think twice before filling bugs about this.}}&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
* [http://www.lesswatts.org Website dedicated to save energy on Intel systems using Linux]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=PowerTOP&amp;diff=33782</id>
		<title>PowerTOP</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=PowerTOP&amp;diff=33782"/>
		<updated>2007-10-10T11:40:14Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Intel PowerTOP */ delayed + link to the effective powertop homepage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intel PowerTOP ==&lt;br /&gt;
&lt;br /&gt;
PowerTOP is a Linux tool that finds the software component(s) that make your laptop use more power than necessary while it is idle. As of Linux kernel version 2.6.21, the kernel no longer has a fixed 1000Hz timer tick. This will (in theory) give a huge power savings because the CPU stays in low power mode for longer periods of time during system idle.&lt;br /&gt;
&lt;br /&gt;
 [[Image:powertop_small.png]]&lt;br /&gt;
 The PowerTOP curses based display&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
&lt;br /&gt;
For PowerTOP to work best, use a Linux kernel with the tickless idle and highres timer stats (NO_HZ, CONFIG_HIGH_RES_TIMERS, CONFIG_TIMER_STATS) feature enabled (version 2.6.21 or later). Currently, only 32-bit kernels have support for tickless idle; 64-bit kernels are expected to gain this feature in version 2.6.24. &lt;br /&gt;
&lt;br /&gt;
PowerTOP works best on a laptop computer, or at least a computer with an Intel mobile processor (certain small non-laptop devices also contain a mobile processor). When using PowerTOP on a laptop, do so when running on battery.&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxpowertop.org Link to PowerTOP]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=31409</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=31409"/>
		<updated>2007-07-21T10:16:49Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Wireless Interface */ actually, &amp;quot;7&amp;quot; was a bug in ipw2200 driver (fixed in 2.6.23 git). &amp;quot;5&amp;quot; is the right value here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [http://www.linuxpowertop.org/ PowerTOP] utility&lt;br /&gt;
is a gold mine to improve energy efficiency. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favourite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviours.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with powertop).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE et CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies).&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developpers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html there] or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw*/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of it's radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=31051</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=31051"/>
		<updated>2007-07-08T15:32:07Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Distribution (Ubuntu Feisty Fawn 7.04) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} is a very small ultraportable, and doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become power efficient on laptops: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow exclamation mark on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few milliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's known to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is known to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. Some reports are quite old too, and Linux involve at fast pace.&lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux, OpenBSD and FreeBSD on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=31049</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=31049"/>
		<updated>2007-07-08T13:36:41Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Other Linux installation reports on Thinkpad X40 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} is a very small ultraportable, and doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow exclamation mark on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few milliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's known to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is known to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. Some reports are quite old too, and Linux involve at fast pace.&lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux, OpenBSD and FreeBSD on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade_Downloads&amp;diff=30795</id>
		<title>BIOS Upgrade Downloads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade_Downloads&amp;diff=30795"/>
		<updated>2007-06-27T06:11:44Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* X Series */ the link still work but now points to (latest) 2.08 BIOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; columns=&amp;quot;2&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; rowspan=&amp;quot;2&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
{{WARN|Lenovo silently recalled the 1.11 BIOS for the X60 and T60.  No information about this recall is known, they just reverted the BIOS download page, reverting changelogs.}}&lt;br /&gt;
&lt;br /&gt;
{{WARN|BIOS 70ET67WW (1.27, 1.28) for the TP-70 (T43, R52) dated 2006/10/04 and later are buggy.  Console won't work in VESA-1024x768 mode using vesa-tng any more.}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Firefox or Konqueror users should disable the '''Use IBM Download Director''' option when downloading files.}}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
The following table lists direct links to BIOS updates for most Thinkpad Models.  Refer to [[BIOS Upgrade]] for instructions on how to perform a BIOS upgrade.&lt;br /&gt;
&lt;br /&gt;
The '''FW model''' column is what actually identifies which sort of firmware (BIOS and Embedded Controller) should be installed in a ThinkPad.  Machines with the same firmware model use the same BIOS and Embedded Controller firmware.  It can also be found as the OEM table ID in the ACPI DSDT.  It is formed by the characters &amp;quot;TP-&amp;quot;, plus the first two characters from the BIOS/EC update part number.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; rowspan=&amp;quot;3&amp;quot;| '''Models'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; rowspan=&amp;quot;3&amp;quot;| '''FW Model'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Non-Diskette'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; colspan=&amp;quot;3&amp;quot;| '''Diskette (or bootable CD)'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; rowspan=&amp;quot;2&amp;quot;| '''BIOS'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; rowspan=&amp;quot;2&amp;quot;| '''EC'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; colspan=&amp;quot;2&amp;quot;| '''BIOS'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot; rowspan=&amp;quot;2&amp;quot;| '''EC'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot;| '''Windows'''&lt;br /&gt;
| style=&amp;quot;background:#ffdead;&amp;quot;| '''Linux'''&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===200 Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{240}}&lt;br /&gt;
| TP-IR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-496LGR 1.18]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{240X}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4MCKB8 1.09]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 240Z&lt;br /&gt;
| TP-11&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PYQAK 1.72]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===300 Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{365C}}, {{365CD}}, {{365CS}}, {{365CSD}}, {{365E}}, {{365ED}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-60567 2.0.14]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{365X}}, {{365XD}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-60567 1.10]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380}}, {{380D}}, {{380E}}, {{380ED}}, {{385D}}, {{385ED}}&lt;br /&gt;
| TP-I1&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=DSHY-3XWNVG 1.14]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380XD}}, {{385XD}}&lt;br /&gt;
| TP-IF&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=DSHY-3XWNVG 1.19]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380Z}}&lt;br /&gt;
| TP-IG&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=DSHY-3XWNVG 1.08]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390}}, i1720, i1721&lt;br /&gt;
| (none) &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-427MCG 5.62]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390E}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-46AKPY 1.55]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390X}}, i1700&lt;br /&gt;
| TP-IS &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4C5UP9 0.55]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===500 Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{560}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-60522 1.20]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560E}}&lt;br /&gt;
| TP-HR&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-60522 1.13]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560X}}&lt;br /&gt;
| TP-I8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-3QYK7L 1.15]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560Z}}&lt;br /&gt;
| TP-IE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-3YTKKV 1.07]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{570}}&lt;br /&gt;
| TP-IM&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-47JS5Z 1.16]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{570E}}&lt;br /&gt;
| TP-IU&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4HT3RD 1.07]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4HA2BF 1.07]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===600 Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{600}}&lt;br /&gt;
| TP-IB&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-3VRJPK 1.22]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600E}} (2645 selected models, 2646)&lt;br /&gt;
| TP-IN&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-46HLKQ 1.16]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600E}} (2645: 55x, 56x, 57x, 58x, A5x, A6x, Bxx [except for BAU], JJ1, JJ2, RRA)&lt;br /&gt;
| TP-IH&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-43DNQ5 1.15]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}}&lt;br /&gt;
| TP-IT&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4HVUYL 1.11]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4FYS2U 1.11]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===700 Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{750}}, {{750CS}}, {{755C}}, {{755CS}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-60440 1.43]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{755CE}}, {{755CSE}}, {{755CD}}, {{755CX}}, {{755CV}}, {{755CDV}}&lt;br /&gt;
| (none)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-60440 1.44]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760C}}, {{760CD}}, {{760L}}, {{760LD}}&lt;br /&gt;
| TP-HV&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-59734 1.30]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760E}} (XGA), {{760ED}} (XGA), {{760XD}}, {{765D}}, {{765L}}&lt;br /&gt;
| TP-HX&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-59734 2.13]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760E}} (SVGA), {{760ED}} (SVGA), {{760EL}}, {{760ELD}}, {{760XL}}&lt;br /&gt;
| TP-HZ, TP-HY&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-59734 2.13]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770}}, {{770E}}, {{770ED}}&lt;br /&gt;
| TP-ID&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-3P2MCB 1.34]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770X}}&lt;br /&gt;
| TP-II&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1DSHY-42QLVU 1.10]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770Z}}&lt;br /&gt;
| TP-IO&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-47F3VA 1.05]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===A Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{A20m}}&lt;br /&gt;
| TP-IW&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4MNN8Z 1.13]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4JWNTQ 1.13]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A20p}}&lt;br /&gt;
| TP-IV&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4MNN8Y 1.11]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4JWNTR 1.11]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A21e}} (2655)&lt;br /&gt;
| TP-10&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4UNQKX 1.07]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4UNRRF 1.07]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A21e}} (2628)&lt;br /&gt;
| TP-KU&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4Q2KLU 1.13]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4Q2KLV 1.13]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}}&lt;br /&gt;
| TP-KX&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4PJMXK 1.09]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4Q2KM4 1.09]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A21p}}&lt;br /&gt;
| TP-KY&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4Q2KM3 1.11]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4PJN8X 1.11]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A22e}} Celeron&lt;br /&gt;
| TP-10&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4UNQKX 1.07]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4UNRRF 1.07]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A22e}} Pentium&lt;br /&gt;
| TP-1B&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4XQKLK 1.05]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4XQL7B 1.05]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A22m}}&lt;br /&gt;
| TP-KX&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4Q2KM4 1.09]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4PJMXK 1.09]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A22m}} (2628-Sxx)&lt;br /&gt;
| TP-13&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4VXS2T 1.05]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4VXRG4 1.05]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A22p}}&lt;br /&gt;
| TP-KY&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4Q2KM3 1.11]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4PJN8X 1.11]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A30}}, {{A30p}}&lt;br /&gt;
| TP-1E&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-39863 1.18]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-40846 1.08]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-39861 1.18]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-40847 1.08]&lt;br /&gt;
|-&lt;br /&gt;
| {{A31}}, {{A31p}} (Bios 1G*)&lt;br /&gt;
| TP-1G&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-42654 1.12]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45771 1.05]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-42660 1.12]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45900 1.05]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45770 1.05]&lt;br /&gt;
|-&lt;br /&gt;
| {{A31}}, {{A31p}} (Bios 1N*)&lt;br /&gt;
| TP-1N&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-44450 1.09]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45662 1.05]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-44451 1.09]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45898 1.02]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45663 1.05]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===G Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{G40}}&lt;br /&gt;
| TP-1T&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50672 1.21]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50673 1.21]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{G41}}&lt;br /&gt;
| TP-1X&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-58127 1.14]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-58129 1.14]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===R Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}}&lt;br /&gt;
| TP-1C&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-40216 1.38]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-40217 1.38]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R31}}&lt;br /&gt;
| TP-1F&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-41378 3.11]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-41535 3.11]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R32}}&lt;br /&gt;
| TP-1M&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-43571 2.16]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-43572 2.16]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} (2681, 2682, 2683, 2896, 2898, 2899)&lt;br /&gt;
| TP-1O&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-46055 1.27]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-46143 1.14]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-46061 1.27]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-46144 1.14]&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} (2722, 2723, 2724, 2897)&lt;br /&gt;
| TP-1P&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50320 1.33]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-46143 1.14]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50321 1.33]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-46144 1.14]&lt;br /&gt;
|-&lt;br /&gt;
| {{R40e}}&lt;br /&gt;
| TP-1S &lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50302 1.38]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50344 1.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50301 1.38]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50343 1.04]&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}}, {{R50p}}&lt;br /&gt;
| TP-1R&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50273 3.21]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50279 3.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50275 3.21]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50277 3.04]&lt;br /&gt;
|-&lt;br /&gt;
| {{R50e}}&lt;br /&gt;
| TP-1W&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-55000 2.08]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-54996 1.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-55001 2.08]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-54997 1.04]&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} (1829, 1830, 1831, 1836)&lt;br /&gt;
| TP-1R&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50273 3.21]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50279 3.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50275 3.21]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50277 3.04]&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} (2883, 2887, 2888, 2889, 2894, 2895)&lt;br /&gt;
| TP-1V &lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-55003 1.28]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-54996 1.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-55004 1.28]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-54997 1.04]&lt;br /&gt;
|-&lt;br /&gt;
| {{R51e}}&lt;br /&gt;
| TP-78&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61681 1.59]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61677 1.01]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61680 1.59]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61675 1.01]&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} (1846, 1847, 1848, 1849, 1850, 1870)&lt;br /&gt;
| TP-76&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59221 1.28]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59184 1.06]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59220 1.28]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59183 1.06]&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} (1858, 1859, 1860, 1861, 1862, 1863)&lt;br /&gt;
| TP-70&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59379 1.28]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59439 1.05]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59380 1.28]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59440 1.05]&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}}&lt;br /&gt;
| TP-7C&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-64578 2.08]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-64580 2.08] (CD)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===T Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}}&lt;br /&gt;
| TP-IY&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4MNN8X 1.22]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4JWNJC 1.22]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T21}}&lt;br /&gt;
| TP-KZ&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4Q2KM5 1.16]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PJN8Y 1.16]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T22}}&lt;br /&gt;
| TP-16&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4VWPPU 1.12]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4VWP54 1.12]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}}&lt;br /&gt;
| TP-1A&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-39366 1.18]&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-40022 1.06a]&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-39362 1.18]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-40021 1.06a]&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}}&lt;br /&gt;
| TP-1I&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-42694 2.10]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-42711 1.07]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-42720 2.10]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-45745 2.02]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-42725 1.07]&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}&lt;br /&gt;
| TP-1R&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50275 3.21]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50279 3.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50273 3.21]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50277 3.04]&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} (1871, 1872, 1873, 1874, 1875, 1876)&lt;br /&gt;
| TP-70 &lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59379 1.28]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59439 1.05]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59380 1.28]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59440 1.05]&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} (2668, 2669, 2678, 2679, 2686, 2687), {{T43p}}&lt;br /&gt;
| TP-1Y&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59096 1.29]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59120 1.06]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59097 1.29]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59121 1.06]&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}}, {{T60p}}&lt;br /&gt;
| TP-79&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-63024 2.13]&lt;br /&gt;
| 1.07&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-63027 2.13] (CD)&lt;br /&gt;
| 1.07&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}}&lt;br /&gt;
| TP-7L(BIOS)/TP-7K(EC)&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67853#bios none yet]&lt;br /&gt;
| 1.07&lt;br /&gt;
| none yet&lt;br /&gt;
| 1.03&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===X Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}}, {{X21}}&lt;br /&gt;
| TP-IZ&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4P52BM 2.25]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4VQNTP 1.36]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4P52BL 2.25]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-4PBMCT 1.36]&lt;br /&gt;
|-&lt;br /&gt;
| {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
| TP-1D&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-39672 1.32]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-39806 1.30]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-39665 1.32]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-39808 1.30]&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}}&lt;br /&gt;
| TP-1K&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-44135 1.09]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-44152 1.06]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-44131 1.09]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-44149 1.06]&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}}, {{X32}}&lt;br /&gt;
| TP-1Q&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50298 3.02]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-53480 1.08]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-50308 3.02]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-53479 1.08]&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}}&lt;br /&gt;
| TP-1U&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-53881 2.08]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-53882 1.61]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-53883 2.03]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-53885 1.60]&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}}&lt;br /&gt;
| TP-74&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59206 2.06]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59208 1.02]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59205 2.06]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-59207 1.02]&lt;br /&gt;
|-&lt;br /&gt;
| {{X41T}}&lt;br /&gt;
| TP-75&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-60193 2.04]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-60191 1.02]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-60194 2.04]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-60189 1.02]&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}}, {{X60s}}&lt;br /&gt;
| TP-7B&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-63144 2.10]&lt;br /&gt;
| 1.13&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-63145 2.10] (CD)&lt;br /&gt;
| 1.13&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}}&lt;br /&gt;
| TP-7J&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67148 1.09]&lt;br /&gt;
| 1.04&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-67149 1.09] (CD)&lt;br /&gt;
| 1.04&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Z Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}}, {{Z60t}}&lt;br /&gt;
| TP-77&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61687 1.22]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61686 1.18]&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61688 1.22]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ibm.com/support/docview.wss?uid=psg1MIGR-61685 1.18]&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
| TP-7F&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-64409 2.18]&lt;br /&gt;
| (1.08)&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-64305 2.18] (CD)&lt;br /&gt;
| (1.08)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=7 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
|-&lt;br /&gt;
| {{TransNote}}&lt;br /&gt;
| TP-KV&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4UDSMK 1.02]&lt;br /&gt;
|&lt;br /&gt;
| [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4UDRRF 1.02]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30792</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30792"/>
		<updated>2007-06-26T21:25:18Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Not tested yet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} is a very small ultraportable, and doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow exclamation mark on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few milliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's known to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is known to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. Some reports are quite old too, and Linux involve at fast pace.&lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30791</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30791"/>
		<updated>2007-06-26T21:23:15Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} is a very small ultraportable, and doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow exclamation mark on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few milliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. Some reports are quite old too, and Linux involve at fast pace.&lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30790</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30790"/>
		<updated>2007-06-26T21:20:47Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Other Linux installation reports on Thinkpad X40 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow exclamation mark on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few milliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. Some reports are quite old too, and Linux involve at fast pace.&lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30789</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30789"/>
		<updated>2007-06-26T21:19:46Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Hardware and BIOS limitations */ ah, wrong word (that's not being native english speaker ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow exclamation mark on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few milliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30788</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30788"/>
		<updated>2007-06-26T21:16:39Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Distribution (Ubuntu Feisty Fawn 7.04) */ gnome logout also hides s2disk, for no reason&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram and s2disk (hibernate) options. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (this one is a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller. evolution-alarm-notify is running while I've never launched (let alone configured) Evolution.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=30787</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=30787"/>
		<updated>2007-06-26T21:08:54Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: remove all number of Watt consumed/saved: this depends to much on the context and hardware model to be precise&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [http://www.linuxpowertop.org/ PowerTOP] utility&lt;br /&gt;
is a gold mine to improve energy efficiency. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favourite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviours.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with powertop).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE et CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies).&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developpers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html there] or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume power even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the very major power drain. &lt;br /&gt;
Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (it's known to consume power) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a difference in power usage) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network consume a lot of power.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw2200/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 7&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of it's radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Fans consumes power when running, so you may look at the [[ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=30786</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=30786"/>
		<updated>2007-06-26T20:55:08Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Optical drive */ well I kept this phrase from the old page, but I don't have confirmatoin of this&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [http://www.linuxpowertop.org/ PowerTOP] utility&lt;br /&gt;
is a gold mine to improve energy efficiency. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favourite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviours.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with powertop).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE et CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies).&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developpers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html there] or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive is reported to consume about 1W even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the major power drain, usually consuming  &lt;br /&gt;
5W or more at full brightness. Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (can save about 1W):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a ~0.5W difference) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network can consume up to 4W.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw2200/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 7&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of it's radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Consumes about 0.5W when running.&lt;br /&gt;
* [[ACPI fan control script]]&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=30785</id>
		<title>How to reduce power consumption</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=30785"/>
		<updated>2007-06-26T20:50:27Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Hard Drives */ clarify&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reducing system power consumption will extend battery life, reduce system&lt;br /&gt;
temperature and (on some models) reduce system fan noise.&lt;br /&gt;
Power consumption can be greatly improved from a stock distribution configuration&lt;br /&gt;
to a fine tuned system. The general rules are :&lt;br /&gt;
* Unload drivers for unused devices (ie. USB 1.1, Yenta/PCMCIA, Wireless, IRDA, Bluetooth, ...)&lt;br /&gt;
* Reduce polling on devices (drives, USB subsystem, nvram, ...)&lt;br /&gt;
* Reduce hard drive activity&lt;br /&gt;
* Reduce LCD brightness to the minimum you can stand&lt;br /&gt;
* Reduce CPU wakeups, so it can stay longer in deep power saving c-states&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
Arjan van de Ven's [http://www.linuxpowertop.org/ PowerTOP] utility&lt;br /&gt;
is a gold mine to improve energy efficiency. This tool helps to easily detect&lt;br /&gt;
the top power offenders, both userland and kernel modules, and sometime suggest &lt;br /&gt;
fixes accordingly.&lt;br /&gt;
PowerTOP users collected some [http://www.linuxpowertop.org/known.php tips &amp;amp; tricks]&lt;br /&gt;
and an informative [http://www.linuxpowertop.org/faq.php faq].&lt;br /&gt;
&lt;br /&gt;
Alternatively (or complementary) to PowerTOP, running &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; &lt;br /&gt;
for all your favourite or background running applications while they are expected to be &lt;br /&gt;
idle, will show the misbehaviours.&lt;br /&gt;
&lt;br /&gt;
Beside CPU wakeups, disks spins are also power angry. To detect what make your disk spinning,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 sysctl vm.block_dump=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will list all applications causing disks wakeups on the kernel's dmesg.&lt;br /&gt;
Other useful tools for this purpose are blktrace, iostat and lm-profiler&lt;br /&gt;
(from laptop-mode-tools suite).&lt;br /&gt;
&lt;br /&gt;
==BIOS settings==&lt;br /&gt;
Some Thinkpad BIOS (like 2.08 BIOS on {{X40}}) offer two very lame options,&lt;br /&gt;
with a very misleading online help (saying &amp;quot;Usually not needed&amp;quot;). That's&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management: (default disabled)&lt;br /&gt;
 PCI bus power management: (default disabled)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should indeed enable them, else the deepest C3 and C4 ACPI C-states&lt;br /&gt;
are disabled.&lt;br /&gt;
&lt;br /&gt;
==CPU==&lt;br /&gt;
Look at:&lt;br /&gt;
* [[How to make use of Dynamic Frequency Scaling]]&lt;br /&gt;
* [[Pentium M undervolting and underclocking]]&lt;br /&gt;
&lt;br /&gt;
A good thing to keep in mind is that every CPU wakeup, even if it's for&lt;br /&gt;
a trivial light job, reduce the time the CPU stays on a deep power&lt;br /&gt;
saving C-state (like C3 or C4). Therefore you should ensure your applications&lt;br /&gt;
stay really idle when they meant to be idle (track shorts select timeouts&lt;br /&gt;
in loop, etc. with powertop).&lt;br /&gt;
&lt;br /&gt;
Also note that manually locking the CPU in the lowest P-state (frequency) &lt;br /&gt;
available is '''not''' an efficient way to improve battery lifetime. This will&lt;br /&gt;
cause the CPU to stay longer in C0 (power angry C-state) doing hard work when &lt;br /&gt;
there is something to do, while it could have done this work faster by augmenting&lt;br /&gt;
the CPU freq, and returned back faster to a deeper, economic, C-state and to a&lt;br /&gt;
lower frequency (P-state).&lt;br /&gt;
The best is to let the kernel select the appropriates CPU frequencies by itself&lt;br /&gt;
with the help of in kernel CPU governors.&lt;br /&gt;
Have a look at [http://www.bughost.org/pipermail/power/2007-May/000166.html this explanation]&lt;br /&gt;
from Intel's kernel developer Arjan van de Ven.&lt;br /&gt;
&lt;br /&gt;
==Kernel settings and patches==&lt;br /&gt;
&lt;br /&gt;
===General settings===&lt;br /&gt;
The 2.6.21 kernel brought some very effective changes (like dynticks). If&lt;br /&gt;
it's not already on your distribution and you value power efficiency, you&lt;br /&gt;
may think about compiling it (or a more recent one) yourself.&lt;br /&gt;
&lt;br /&gt;
Here are a few options (beside the ACPI and APM related one) that matter to &lt;br /&gt;
reduce power consumption or to help diagnosing consumers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 # From PowerTOP's FAQ:&lt;br /&gt;
 CONFIG_NO_HZ&lt;br /&gt;
 CONFIG_HIGH_RES_TIMERS&lt;br /&gt;
 CONFIG_HPET&lt;br /&gt;
 CONFIG_CPU_FREQ_GOV_ONDEMAND&lt;br /&gt;
 CONFIG_USB_SUSPEND&lt;br /&gt;
 CONFIG_SND_AC97_POWER_SAVE&lt;br /&gt;
 CONFIG_TIMER_STATS&lt;br /&gt;
 CONFIG_ACPI_BATTERY&lt;br /&gt;
 CONFIG_CPU_FREQ_STAT&lt;br /&gt;
 # Not from the PowerTOP FAQ:&lt;br /&gt;
 CONFIG_BLK_DEV_IO_TRACE&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_CENTRINO&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_ICH&lt;br /&gt;
 CONFIG_X86_SPEEDSTEP_SMI&lt;br /&gt;
 CONFIG_X86_ACPI_CPUFREQ&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Those options are already in Fedora Core 7 and Ubuntu Gutsy (not Feisty) default i686 kernels.&lt;br /&gt;
PowerTOP FAQ also suggest to '''disable'''&lt;br /&gt;
CONFIG_IRQBALANCE et CONFIG_ACPI_DEBUG.&lt;br /&gt;
&lt;br /&gt;
Also, you need to properly set APM and ACPI. Look at:&lt;br /&gt;
* [[Power Management]]&lt;br /&gt;
* [[How to make use of Power Management features]]&lt;br /&gt;
&lt;br /&gt;
===Useful Patchs===&lt;br /&gt;
&lt;br /&gt;
Thomas Gleixner High Resolution Timers (hrt) patchset brings many improvements,&lt;br /&gt;
like the cpuidle work and Udo A. Steinberg and Venki Pallipadi &amp;quot;force&lt;br /&gt;
enable HPET&amp;quot; patches (non HPET timers causes about 20-40 CPU wakeups/second, but&lt;br /&gt;
HPET is often hidden by the BIOS due to Windows XP deficiencies).&lt;br /&gt;
See http://www.tglx.de/projects/hrtimers/&lt;br /&gt;
&lt;br /&gt;
Kristen Carlson Accardi from Intel has a patchset to turn on &amp;quot;Aggressive&lt;br /&gt;
Link Power Management&amp;quot; (ALPM) for the AHCI driver (for SATA bus). See:&lt;br /&gt;
http://www.kernel.org/pub/linux/kernel/people/kristen/patches/SATA/alpm/&lt;br /&gt;
&lt;br /&gt;
The [[HDAPS]] disk protection systems can reduce battery life. &lt;br /&gt;
Matthew Garrett provides [http://www.linuxpowertop.org/patches/hdaps.patch a patch]&lt;br /&gt;
that prevents hdaps kernel module to generate interrupts when&lt;br /&gt;
this feature isn't used.&lt;br /&gt;
&lt;br /&gt;
===Useful sysctls===&lt;br /&gt;
The meaning of those settings is explained case by case on the relevant &lt;br /&gt;
sections of this document. But for convenience sake, we group them here too.&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;ondemand&amp;quot; scaling governor is recommended by Intel developpers&lt;br /&gt;
for energy efficiency: it's expected to be more efficient than the &amp;quot;powersave&amp;quot;&lt;br /&gt;
governor, or than userspace daemons (like cpufreq-utils, cpufreqd, powernowd...).&lt;br /&gt;
Look [http://www.bughost.org/pipermail/power/2007-May/000071.html here],&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000073.html there] or&lt;br /&gt;
[http://www.bughost.org/pipermail/power/2007-May/000166.html here] for a&lt;br /&gt;
kernel developer explanation about &amp;quot;ondemand&amp;quot; being better on modern Intel CPUs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;link_power_management_policy&amp;quot; tunable won't be available unless you&lt;br /&gt;
run Kirsten patchset, have an Intel AHCI compatible chipset, and use SATA drives.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
 echo 0 &amp;gt; /proc/sys/kernel/nmi_watchdog&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
 echo 1 &amp;gt; /sys/devices/system/cpu/sched_mc_power_savings&lt;br /&gt;
 echo ondemand &amp;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host0/link_power_management_policy&lt;br /&gt;
 echo min_power &amp;gt; /sys/class/scsi_host/host1/link_power_management_policy&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're running a kernel older than 2.6.22 do this. Not needed for kernels 2.6.22 onward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 cd /sys/devices/system/cpu/cpu0/cpufreq&lt;br /&gt;
 cat ondemand/sampling_rate_max &amp;gt; ondemand/sampling_rate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ATA drives==&lt;br /&gt;
Hard drives and CDRom drives spinning is very costly. To improve battery&lt;br /&gt;
lifetime, you should reduce disks access (or devices polling) the more you&lt;br /&gt;
can.  &lt;br /&gt;
&lt;br /&gt;
===Hard Drives===&lt;br /&gt;
The files access time update, while mandated by POSIX, is causing lots of&lt;br /&gt;
disks access; even accessing files on disk cache may wake the ATA or USB&lt;br /&gt;
bus. If you don't use this feature, disable it via:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mount -o remount,noatime /  # and so on for all mounted fs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The laptop_mode reduce disk usage by regrouping writes. You should enable&lt;br /&gt;
it, at least while on battery. See [[Laptop-mode]] for more details:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 5 &amp;gt; /proc/sys/vm/laptop_mode&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default kernel dirty page writeback frequency is very conservative. On&lt;br /&gt;
a laptop running on battery, one might find more appropriate to reduce it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1500 &amp;gt; /proc/sys/vm/dirty_writeback_centisecs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some power saving hard drives features can be activated with hdparm.&lt;br /&gt;
For more details look at [[How to make use of Power Management features]] :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 hdparm -B 1 -S 12 /dev/sda # and/or any other disk device&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Optical drive===&lt;br /&gt;
The optical drive consumes about 1W even when not accessed. See &lt;br /&gt;
&lt;br /&gt;
* [[How to hotswap UltraBay devices|Eject the UltraBay optical drive]], or just turn off its power supply (i.e., run the appropriate eject script but leave the drive inserted).&lt;br /&gt;
* [[How to set optical drive speed|Reduce the spinning speed of the optical drive]].&lt;br /&gt;
&lt;br /&gt;
The hald daemon polling tends to maintain the ATA buses out of power saving&lt;br /&gt;
modes, and to wakeup CDROM drive. If you have a recent hald version, you&lt;br /&gt;
can stop this polling when on battery:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your hald is not recent enough, consider stopping it on battery.&lt;br /&gt;
&lt;br /&gt;
==LCD Backlight/Brightness==&lt;br /&gt;
The LCD backlight is one of the major power drain, usually consuming  &lt;br /&gt;
5W or more at full brightness. Reducing brightness to the lowest readable&lt;br /&gt;
level will save a lot of battery lifetime. Also, don't forget to configure&lt;br /&gt;
your screen saver to shutdown the screen backlight (rather than displaying some&lt;br /&gt;
eye candy), when no activity for a few minutes.&lt;br /&gt;
&lt;br /&gt;
You can also let the system [[automatically reduce brightness]] after a &lt;br /&gt;
period of inactivity.&lt;br /&gt;
&lt;br /&gt;
If you're choosing your Thinkpad laptop model, keep in mind that the screen&lt;br /&gt;
size affect the battery time greatly: more power needed for larger screens.&lt;br /&gt;
&lt;br /&gt;
==Graphic controllers==&lt;br /&gt;
All xorg Thinkpad graphics chipsets drivers (ati, radeon, fglrx, i810) have&lt;br /&gt;
the same bug causing very frequent CPU wakeups when DRI is activated, even&lt;br /&gt;
when you don't use any 3D application.&lt;br /&gt;
This problem is partly fixed on xorg git tree but not released as of xorg&lt;br /&gt;
7.2. If you value more battery than 3D, you should disable DRI: put this on&lt;br /&gt;
the /etc/X11/xorg.conf &amp;quot;Device&amp;quot; of you graphic controller:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 Option          &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also be sure that DPMS is working: &amp;lt;code&amp;gt;grep DPMS /var/log/Xorg.0.log&amp;lt;/code&amp;gt;&lt;br /&gt;
should output &amp;quot;DPMS enabled&amp;quot;. If not, put &amp;lt;code&amp;gt;Option &amp;quot;DPMS&amp;quot;&amp;lt;/code&amp;gt; in your config.&lt;br /&gt;
&lt;br /&gt;
On recent xrandr/xorg versions, you can disable the TV output when you're&lt;br /&gt;
not using it (can save about 1W):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 xrandr --output TV -off&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you don't have an external monitor plugged, disable CRT and DVI output &lt;br /&gt;
(for some, this can make a ~0.5W difference) : &lt;br /&gt;
&amp;lt;code&amp;gt; &lt;br /&gt;
 echo crt_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
 echo dvi_disable &amp;gt; /proc/acpi/ibm/video&lt;br /&gt;
&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Some drivers have specials power saving mode, and/or allows underclocking the GPU. See also:&lt;br /&gt;
* [[How to make use of Graphics Chips Power Management features]], or with [[Rovclock]] on ATI.&lt;br /&gt;
* [[Problem with high power drain in ACPI sleep]]&lt;br /&gt;
&lt;br /&gt;
==USB Subsystem==&lt;br /&gt;
The kernel support an efficient USB 2.0 power saving feature if you enabled&lt;br /&gt;
CONFIG_USB_SUSPEND. This may not trigger in when you have an USB device&lt;br /&gt;
plugged (and beside, USB devices tends to suck power on their own), so avoid&lt;br /&gt;
using such devices when on battery.&lt;br /&gt;
&lt;br /&gt;
USB 1.1 is worst. It needs polling the bus frequently, hence can't really go&lt;br /&gt;
in a low power mode when you enabled it, even if you don't have any device&lt;br /&gt;
plugged. You'd better remove it when you don't use a 1.1 device:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 rmmod uhci_hcd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't intend to use any USB 1.1 device (unfortunately, the built-in bluetooth and fingerprint-reader are USB 1.1 devices), the USB 1.1 support can also be totaly avoided. On Debian and derivatives, just do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo &amp;quot;blacklist uhci_hcd&amp;quot; &amp;gt; /etc/modprobe.d/blacklist&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sound==&lt;br /&gt;
ALSA has a power saving feature that should be enabled on your kernel&lt;br /&gt;
(CONFIG_SND_AC97_POWER_SAVE). Note that this low power mode won't trigger in&lt;br /&gt;
unless you muted all sound inputs (micro, line in etc.). This feature has&lt;br /&gt;
to be activated with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 amixer set Line mute nocap&lt;br /&gt;
 amixer set Mic mute nocap&lt;br /&gt;
 echo Y &amp;gt; /sys/module/snd_ac97_codec/parameters/power_save&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More radical: you can unload all sound related modules when you are on &lt;br /&gt;
battery, or mute the sound system (echo mute &amp;gt; /proc/acpi/ibm/volume).&lt;br /&gt;
&lt;br /&gt;
Seel also [[How to enable AC97 power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
Wireless network can consume up to 4W.&lt;br /&gt;
To save power on ipw adapters, you can kill the Wi-Fi radio when it's not in use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 echo 1 &amp;gt; /sys/bus/pci/drivers/ipw2200/*/rf_kill&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need Wi-Fi, you can also reduce power consumption (at the price of&lt;br /&gt;
performances) by activating the power saving modes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 iwpriv eth1 set_power 7&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducing beacon intervals on your Access Point to 1 per second will also&lt;br /&gt;
reduce network card interrupts, therefore power savings. This shouldn't have&lt;br /&gt;
negatives side effects.&lt;br /&gt;
&lt;br /&gt;
See also, to activate power saving on the wireless network card:&lt;br /&gt;
* For [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] and [[Intel PRO/Wireless 2915ABG Mini-PCI Adapter]], see instructions for the [[ipw2200]] driver.&lt;br /&gt;
* For [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter]], see the [http://ipw3945.sourceforge.net/README.ipw3945 ipw3945 driver README]&lt;br /&gt;
&lt;br /&gt;
==Ethernet Controler==&lt;br /&gt;
If you don't use Wake-on-LAN, you should disable it for your network card,&lt;br /&gt;
because it sucks a lot of power:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ethtool -s eth0 wol d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, try to reduce useless network activity on your ethernet&lt;br /&gt;
segment, coming to your NIC (ie. uneeded broadcasts), those cause &lt;br /&gt;
interrupts and CPU wakeups.&lt;br /&gt;
&lt;br /&gt;
==Bluetooth==&lt;br /&gt;
When you don't need bluetooth, disable it. Because of it's radio, &lt;br /&gt;
bluetooth is not power friendly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hciconfig hci0 down ; rmmod hci_usb&lt;br /&gt;
 echo disable &amp;gt; /proc/acpi/ibm/bluetooth&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==System Fans==&lt;br /&gt;
Consumes about 0.5W when running.&lt;br /&gt;
* [[ACPI fan control script]]&lt;br /&gt;
&lt;br /&gt;
==Misbehaving Userland==&lt;br /&gt;
You should avoid using Beagle, Compiz, Beryl, XMMS, gnome-power-manager&lt;br /&gt;
and Evolution while on battery.&lt;br /&gt;
Look at the PowerTOP's [http://www.linuxpowertop.org/known.php known problems]&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
Deactivate desktop animations (blinking cursor on the terms, animated wallpapers, ...): they cause regular X (therefore kernel and CPU) wakeups.&lt;br /&gt;
&lt;br /&gt;
In short, while on battery, you should stop all applications that don't really stay idle when you're not using them. This means applications that:&lt;br /&gt;
* Wakes up the CPU too often (by polling something, because of too short select() timeouts, ...)&lt;br /&gt;
* Access the disks at regular intervals&lt;br /&gt;
* Access an hardware bus (USB, ATA, ...) at regular intervals&lt;br /&gt;
To find those offenders run:&lt;br /&gt;
* &amp;lt;code&amp;gt;strace -p $(pidof yourapp)&amp;lt;/code&amp;gt; # for all your running applications&lt;br /&gt;
* &amp;lt;code&amp;gt;powertop&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sysctl vm.block_dump=1&amp;lt;/code&amp;gt; # and look at dmesg&lt;br /&gt;
* &amp;lt;code&amp;gt;ps aux | awk '{print$10,$11}' | sort -n&amp;lt;/code&amp;gt; # will list all running softs sorted by used cpu time&lt;br /&gt;
Please, don't forget to fill a bug when you find such a misbehaving software.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
* [[How to measure power consumption]]&lt;br /&gt;
* [[Script for monitoring power consumption]]&lt;br /&gt;
* Battery [[maintenance]]&lt;br /&gt;
&lt;br /&gt;
==External resources==&lt;br /&gt;
* [http://www.free-it.de/archiv/talks_2005/paper-11017/paper-11017.html ''Current trends in Linux Kernel Power Management''], Dominik Brodowski, 2005&lt;br /&gt;
* [http://www.linuxpowertop.org PowerTOP] website&lt;br /&gt;
* [http://www.gentoo.org/doc/en/power-management-guide.xml Power Management Guide] from the Gentoo Linux documentation&lt;br /&gt;
* [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030478.html When/where/what for low power consumption?] (thread on Linux-Thinkpad)&lt;br /&gt;
* ''8 hours of battery life on your lap(top)'' ([http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.odp ODP]/[http://atrey.karlin.mff.cuni.cz/~pavel/swsusp/8hours.pdf PDF]), a presentation by Pavel Machek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:600X]] [[Category:A20m]] [[Category:A20p]] [[Category:A21e]] [[Category:A21m]] [[Category:A21p]] [[Category:A22e]] [[Category:A22m]] [[Category:A22p]] [[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:i1200]] [[Category:i1300]] [[Category:i1620]] [[Category:G40]] [[Category:G41]] [[Category:R30]] [[Category:R31]] [[Category:R32]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50e]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:R60e]] [[Category:T20]] [[Category:T21]] [[Category:T22]] [[Category:T23]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X20]] [[Category:X21]] [[Category:X22]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30781</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30781"/>
		<updated>2007-06-26T15:40:31Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* The machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I opted for this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* [[E1000|Intel gigabit ethernet]] controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* [[Harddisk Drives|Hard Drive]] : 1.8&amp;quot; - PATA - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (that's a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30780</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30780"/>
		<updated>2007-06-26T15:35:51Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Executive summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg (with 3D acceleration), sound and suspend-to-ram were properly configured and functional, all with opensource drivers only, at the end of the default Ubuntu installation. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (that's a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30779</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30779"/>
		<updated>2007-06-26T15:34:13Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Executive summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required. Even network, wifi, xorg, sound and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (that's a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30778</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30778"/>
		<updated>2007-06-26T15:33:32Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Distribution (Ubuntu Feisty Fawn 7.04) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
* The default Ubuntu install left me with a lot processes related to printing (cupsd, gnome-cups-icon, hpiod, hpssd (that's a python script!)) while I have no printer configured nor attached. Bad. They shouldn't start this until hald find something plugged or until I try to configure a printer. It also left the bluetooth &amp;quot;hcid&amp;quot; daemon, while I've no bluetooth controller.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30777</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30777"/>
		<updated>2007-06-26T15:29:04Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* The machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]] on a [[MiniPCI slot]]&lt;br /&gt;
* Northbridge / Graphic chipset : [[Intel Extreme Graphics 2]] ([[Intel 855GME]])&lt;br /&gt;
* [[Ricoh R5C511]] [[PCMCIA]] controller ([[CardBus slot]])&lt;br /&gt;
* [[IrDA]]&lt;br /&gt;
* [[TFT display]]: 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30776</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30776"/>
		<updated>2007-06-26T15:16:21Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Distribution (Small Ubuntu 7.04) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]&lt;br /&gt;
* Northbridge / Graphic chipset : Intel Extreme Graphics 2 : [[Intel 855GME]]&lt;br /&gt;
* 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Ubuntu Feisty Fawn 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30775</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30775"/>
		<updated>2007-06-26T15:15:58Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]&lt;br /&gt;
* Northbridge / Graphic chipset : Intel Extreme Graphics 2 : [[Intel 855GME]]&lt;br /&gt;
* 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life, and applied tips from the ''[[How to reduce power consumption]]''.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Small Ubuntu 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30774</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30774"/>
		<updated>2007-06-26T15:13:55Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* System informations */ internal and external links about Free OS (Linux, *BSD) installs on X40&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]&lt;br /&gt;
* Northbridge / Graphic chipset : Intel Extreme Graphics 2 : [[Intel 855GME]]&lt;br /&gt;
* 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Small Ubuntu 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Linux installation reports on Thinkpad X40==&lt;br /&gt;
Don't forget that the X40 line included different ethernet (tg3 or e1000) and wireless (atheros or Intel) chipsets, and that Linux support involved over time. So there may be some difference between your experience with X40 and others reports. &lt;br /&gt;
&lt;br /&gt;
'''Thinkwiki internal notes about installing Linux on X40'''&lt;br /&gt;
*{{Install|Gentoo||X40}}&lt;br /&gt;
*{{Install|Debian||X40}}&lt;br /&gt;
*{{Install|Fedora| Core|X40}}&lt;br /&gt;
&lt;br /&gt;
'''Exernal links to notes about installing linux on X40'''&lt;br /&gt;
&lt;br /&gt;
* [http://gentoo-wiki.com/HARDWARE_IBM_ThinkPad_X40 HARDWARE IBM ThinkPad X40] on the Gentoo wiki&lt;br /&gt;
* [http://www.srcf.ucam.org/~mjg59/thinkpad/x40acpi.html ''Linux and ACPI on an IBM Thinkpad X40''], by Matthew Garrett&lt;br /&gt;
* [http://littlesvr.ca/linux-stuff/articles/x40slack/x40slack.php Slackware 10.1 and 10.2] on X40, by Andrew Smith&lt;br /&gt;
* [http://people.bath.ac.uk/masrjb/x40.html SuSE 9.1] on X40, by Russell Bradford&lt;br /&gt;
* [http://www.sun.com/bigadmin/hcl/data/systems/details/1454.html Solaris] on X40, on Sun's BigAdmin database&lt;br /&gt;
* [http://www.cl.cam.ac.uk/~pb22/TPX40/ Red Hat 9] on X40, by Piete Brooks&lt;br /&gt;
* [http://blog.tarotoast.com/2007/01/13/333/ PC-BSD] on X40, by Tarotoast&lt;br /&gt;
* [http://www.roe.ch/FreeBSD_on_the_IBM_ThinkPad_X40 FreeBSD 5.4] on X40, by Daniel Roethlisberger&lt;br /&gt;
* [http://www.iosn.net/Members/kaeru/articles/freebsd/x40 FreeBSD 5.3] on X40, by Khairil Yusof&lt;br /&gt;
* [http://lowerca.se/laptops/ OpenBSD] on X40, by Joshua Stein&lt;br /&gt;
* [http://www.openbsd.org/i386-laptop.html OpenBSD], OpenBSD official site,  i386-laptops page&lt;br /&gt;
* [http://www.citi.umich.edu/u/rees/openbsd/tpx40.html OpenBSD 3.9, 4.0 and 4.1] on X40, by Jim Rees&lt;br /&gt;
* [http://www.catb.org/~esr/faqs/Fedora-Core-on-Thinkpad-X40/ Fedora Core] on X40, by the infamous Eric S. Raymond&lt;br /&gt;
* [http://johnleach.co.uk/documents/thinkpadx40/index.html Fedora] on X40, by John Leach&lt;br /&gt;
* [http://www.mrc-cbu.cam.ac.uk/~matthew/linuxiste/10p1/x40_mandrake_10p1.html Mandrake 10.1] on X40, by Matthew Brett&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40.php Mandriva 10.1] on X40, by ZoneO&lt;br /&gt;
* [http://soft.zoneo.net/Linux/x40_2006.php Mandriva 2006] on X40, by Zone0&lt;br /&gt;
* [http://www.linux-on-laptops.com/hosted/ubuntu-thinkpad-x40.html Ubuntu Feisty 7.04], by Chris Cartledge&lt;br /&gt;
* [http://www.tenshu.net/archives/2006/08/08/ubuntu-dapper-606-lts-on-an-ibmlenovo-thinkpad-x40/ Ubuntu Dapper 6.06] on X40, by cmsj&lt;br /&gt;
* [http://www.noapparentmotive.org/topics/ubuntuX40.html Ubuntu Breezy 5.04] on X40, by John Schmitt&lt;br /&gt;
* [http://www.leopold.dk/~martin/IBMx40UbuntuInstall.html Ubuntu Breezy 5.04] on X40, by Martin Leopold&lt;br /&gt;
* [http://martin.wuertele.net/x40/ Debian] on X40, by Martin Würtele&lt;br /&gt;
* [http://www.chronox.de/x40_linux/linux_on_x40.html Debian] on X40, by Stephan Müller;&lt;br /&gt;
* [http://steffenpingel.de/news/archive/2005/apr/22/linux-debian-on-ibm-thinkpad-x40/ Debian] on X40, by Sebastian Schmieg&lt;br /&gt;
* [http://m.ash.to/@/@/Linux/DebianOnThinkpadX40 Debian/GNU Linux 3.1 (Sarge)], by Michael Aschauer&lt;br /&gt;
* [http://www.mathematik.uni-marburg.de/~dfinke/html/howto.html Debian GNU/Linux Unstable with ACPI on an IBM Thinkpad X40], by madn3ss&lt;br /&gt;
* [http://grapevine.net.au/~striggs/thinkpad-x40.html Debian] on X40 (with example PXE network install), by Mark Triggs&lt;br /&gt;
&lt;br /&gt;
[[Category:X40]] [[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30767</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30767"/>
		<updated>2007-06-26T14:10:58Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* Executive summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functional at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after [[How to reduce power consumption|tuning]])&lt;br /&gt;
* To access some special features (like some [[Default meanings of special keys|Thinkpad special keys]])&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]&lt;br /&gt;
* Northbridge / Graphic chipset : Intel Extreme Graphics 2 : [[Intel 855GME]]&lt;br /&gt;
* 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Small Ubuntu 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30766</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30766"/>
		<updated>2007-06-26T14:09:01Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* System informations */ ha, c-states list must be obtained while on battery, not AC, else C4 is hidden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functionals at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after tuning)&lt;br /&gt;
* To access some special features (like some Thinkpad special keys)&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]&lt;br /&gt;
* Northbridge / Graphic chipset : Intel Extreme Graphics 2 : [[Intel 855GME]]&lt;br /&gt;
* 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Small Ubuntu 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3] C4[C4])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30765</id>
		<title>Installing Ubuntu 7.04 (Feisty Fawn) on a ThinkPad X40</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_7.04_(Feisty_Fawn)_on_a_ThinkPad_X40&amp;diff=30765"/>
		<updated>2007-06-26T14:07:54Z</updated>

		<summary type="html">&lt;p&gt;Benjamin Pineau: /* System informations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Executive summary==&lt;br /&gt;
Ubuntu Linux 7.04 -and probably any modern distro- &amp;quot;just works&amp;quot; out-of-the-box on this machine.&lt;br /&gt;
&lt;br /&gt;
No manual configuration was required, and even network, wifi, xorg and suspend-to-ram were properly configured and functionals at the end of the default Ubuntu installation, all with opensource drivers only. I've no problem with fan noises either.&lt;br /&gt;
&lt;br /&gt;
But there's still some room for fine tuning: &lt;br /&gt;
* To improve energy efficiency and battery life (8 cell bat gives 4h with default install, 6h after tuning)&lt;br /&gt;
* To access some special features (like some Thinkpad special keys)&lt;br /&gt;
* To better use resources (memory, CPU, power, ...)&lt;br /&gt;
&lt;br /&gt;
==The machine==&lt;br /&gt;
This an &amp;quot;all Intel&amp;quot; machine: differing from most other Thinkpad models because even the network, wireless and graphic controllers uses Intel chipsets. Note that some X40 models use atheros for wifi, or tg3 for ethernet (but not mine). That's why I choosed this one (beside the 1.2 Kg ultraportable form factor).&lt;br /&gt;
&lt;br /&gt;
* IBM Thinkpad {{X40}} (model 2371Y29), Centrino platform&lt;br /&gt;
* 1 Go DDR SDRAM (333MHz [[PC2700]])&lt;br /&gt;
* CPU: [[Intel Pentium M (Dothan)]] 738 at 1.4 GHz -32KB L1 - 2Mo cache L2 - 90 nm - LV (low voltage) - 400MHz FSB (4 x 100) - MMX - SSE - SSE2 -  no NX/XD bit, no hyperthreading, no 64bits - socket 479 - (Enhanced) EIST SpeedStep - CPUID : 6D6 (cpu family: 6 / model: 13 / stepping: 6)&lt;br /&gt;
* Southbridge chipset ICH4-M ([[Intel 82801DBM]]) : PCI, USB, IDE&lt;br /&gt;
* Intel gigabit ethernet controller (linux kernel module: e1000) 82541GI MT mobile (support PXE boot :)&lt;br /&gt;
* Wifi controller: [[Intel PRO/Wireless 2200BG Mini-PCI Adapter]]&lt;br /&gt;
* Northbridge / Graphic chipset : Intel Extreme Graphics 2 : [[Intel 855GME]]&lt;br /&gt;
* 12&amp;quot; screen, @1024x768 nominal resolution  &lt;br /&gt;
* Hard Drive : 1.8&amp;quot; - 40 Go - 4200 RPM - Hitachi DK13FA-40B&lt;br /&gt;
* ATA controler : [[Intel 82801DBM]] Ultra ATA storage controller 24CA&lt;br /&gt;
* Audio controller: [[AD1981B]] AC'97 (linux kernel module: i810_audio)&lt;br /&gt;
* Weigth / size:  1.24 Kg / 26.8 cm x 23.7 cm x 2.4 cm&lt;br /&gt;
* [[UltraBase X4]] with broken DVDROM &lt;br /&gt;
* Batteries :&lt;br /&gt;
** default small one: 4 cells, Li-Ion, 1900mAh (about 27.4W) ~ 3h00&lt;br /&gt;
** new one : 8 cells, Li-Ion, 4400 mAh (about 63W), 0.4 kg, ref (FRU) : IBM-92P1083 ~5h30&lt;br /&gt;
* BIOS version : 1UETD3WW (2.08 ), built on 2006-12-21, released on 2007/01/31&lt;br /&gt;
* IBM ThinkPad Embedded Controller version : 1UHTA6WW (1.56)&lt;br /&gt;
* FW model : TP-1U&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
The {{X40}} doesn't have builtin CDROM or floppy drive. I own an IBM [[UltraBase X4]] dock station, but her DVDrom is dead. So I went for PXE (network boot) installation for the first time ; I just applied instructions from [http://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install this web page] : this was unexpectedly simple and worked flawlessly. Everything got installed from network, &amp;quot;over the air&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I kept the 4Go [[Hidden Protected Area|IBM recovery]] partition at the end of the drive, by superstition ;) and for [[Rescue and Recovery]]. Afterwards, I compiled my own 2.6.22 kernel, patched with high resolution timers, to improve the battery life.&lt;br /&gt;
&lt;br /&gt;
==Small glitches==&lt;br /&gt;
===Distribution (Small Ubuntu 7.04)===&lt;br /&gt;
Even if everything was supported, there was some small things where Ubuntu (or Gnome, or Linux kernel) could have done better: &lt;br /&gt;
* Suspend-to-ram works out-of-the-box, no special tricks are needed. But sometimes, not always, for an unknown reason, the Gnome &amp;quot;logout&amp;quot; screen hides the s2ram option. Whatever, we still can suspend thanks to the thinkpad's special keys (or just with an &amp;quot;echo mem &amp;gt; /sys/power/state&amp;quot;).&lt;br /&gt;
* Ubuntu installs the &amp;quot;special keys&amp;quot; handler from the &amp;quot;hotkey-setup&amp;quot; package. This is suboptimal, since hotkey-setup supports less special keys than [[tpb]], and consumes a lot of battery (see for instance this [https://bugs.launchpad.net/ubuntu/+source/hotkey-setup/+bug/45404 bug report]).&lt;br /&gt;
* More generally, the whole Ubuntu system needs work to become efficient on laptop: switch to a 2.6.21 or more kernel, use in kernel &amp;quot;ondemand&amp;quot; governor rather than userland powernowd+hald-addon-cpufreq, activate AC97 power saving features when on battery, etc.&lt;br /&gt;
===Hardware and BIOS limitations===&lt;br /&gt;
The hardware is fine for me, even if a bit old by nowadays standards (I'd prefer have an Intel AHCI chipset with SATA drive on it, for power efficiency reason, and I'd prefer a Core2Duo CPU....). It lacks also some options available on some other Thinkpads models, like the fingerprint reader (but seriously, I prefer give this up to keep my &amp;quot;all Intel&amp;quot; chipsets). It lacks a Firewire controler. The BIOS is also somehow suboptimal, in some aspects.&lt;br /&gt;
&lt;br /&gt;
For an unknown reason, the BIOS disable by default the deeper power saving c-states (C3 and C4). There's two option for this that you need to turn on, despite the the misleading BIOS online help that says &amp;quot;usualy not needed&amp;quot;. Type &amp;quot;F1&amp;quot; during boot to access the BIOS, then enable: &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 CPU power management&lt;br /&gt;
 PCI bus power management&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The BIOS, as in many laptops, hides the HPET hardware timer to the system. Windows XP don't support HPET and when enabled, it displays a yellow shebang on his device manager list, hence the common vendor choice to disable it. That's a bit odd since Linux can make a great use of it: other available timers (PIC/LAPIC) can't schedule timer events more than a few miliseconds away, so they causes about 20 to 40 CPU wakeups per second. This impact the power consumption greatly. Yet, thanks to the Udo A. Steinberg and Venki Pallipadi, we have a way to force enable HPET on chipsets known to support it (this include ICH3-M, ICH4-M, ICH5-M etc.). So I applied their patch, part of the [http://www.tglx.de/projects/hrtimers/|High Resolution Timer patchset] on top of my hand compiled 2.6.22-rc5 kernel, and all worked fine: &amp;lt;code&amp;gt;dmesg | grep hpet&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    3.740522] hpet clockevent registered&lt;br /&gt;
 [    3.740527] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0&lt;br /&gt;
 [    3.740532] hpet0: 3 64-bit timers, 14318180 Hz&lt;br /&gt;
 [    5.080000] Time: hpet clocksource has been installed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Not tested yet==&lt;br /&gt;
* [[Embedded Security Subsystem|TCPA chipset]]: Trusted Computing controller. Should be supported by [[tpm]] and [[tpmdd]] but who need this, really ?&lt;br /&gt;
* [[HDAPS]] (Hard Drive protection mechanism): this should work out of the box, we have a kernel module for that but I disable it because it's know to suck power&lt;br /&gt;
* [[IrDA]] (Infrared controller) : is know to work too, and looks supported by my kernel, but I've no other IrDA device to test with&lt;br /&gt;
* [[SD Card slot]] : I've no SD cards to test this&lt;br /&gt;
* [[IBM Integrated 56K Modem (MDC-2)|56K Modem]]: I've no use of this&lt;br /&gt;
&lt;br /&gt;
==System informations==&lt;br /&gt;
'''dmesg | grep states'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 [    5.280003] ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])&lt;br /&gt;
 [    5.280009] ACPI: Processor [CPU] (supports 8 throttling states)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''lspci''' :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)&lt;br /&gt;
 00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)&lt;br /&gt;
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)&lt;br /&gt;
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)&lt;br /&gt;
 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)&lt;br /&gt;
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)&lt;br /&gt;
 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)&lt;br /&gt;
 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)&lt;br /&gt;
 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)&lt;br /&gt;
 00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 01)&lt;br /&gt;
 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)&lt;br /&gt;
 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)&lt;br /&gt;
 02:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 8d)&lt;br /&gt;
 02:00.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)&lt;br /&gt;
 02:01.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller&lt;br /&gt;
 02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''cat /proc/cpuinfo''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 processor       : 0&lt;br /&gt;
 vendor_id       : GenuineIntel&lt;br /&gt;
 cpu family      : 6&lt;br /&gt;
 model           : 13&lt;br /&gt;
 model name      : Intel(R) Pentium(R) M processor 1.40GHz&lt;br /&gt;
 stepping        : 6&lt;br /&gt;
 cpu MHz         : 600.000&lt;br /&gt;
 cache size      : 2048 KB&lt;br /&gt;
 fdiv_bug        : no&lt;br /&gt;
 hlt_bug         : no&lt;br /&gt;
 f00f_bug        : no&lt;br /&gt;
 coma_bug        : no&lt;br /&gt;
 fpu             : yes&lt;br /&gt;
 fpu_exception   : yes&lt;br /&gt;
 cpuid level     : 2&lt;br /&gt;
 wp              : yes&lt;br /&gt;
 flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up est  tm2 &lt;br /&gt;
 bogomips        : 1196.93&lt;br /&gt;
 clflush size    : 64&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benjamin Pineau</name></author>
		
	</entry>
</feed>