<?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=Aumuell</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=Aumuell"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Aumuell"/>
	<updated>2026-05-03T07:38:16Z</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=37566</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=37566"/>
		<updated>2008-05-04T10:29:22Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* USB Subsystem */ move pcmcia to its own section&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 depreciated as of kernel 2.6.24, use CONFIG_X86_ACPI_CPUFREQ&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;
=== 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;
====SATA Link Power Management====&lt;br /&gt;
On kernels 2.6.24 and new this enables SATA Link Power Management:&lt;br /&gt;
&amp;lt;code&amp;gt;&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;
Disable it by replacing &amp;lt;code&amp;gt;min_power&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;max_performance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On Hardy Heron with a 2.6.24-16 kernel, a suspend/resume cycle is much quicker if you disable SATA Link Power Management before initiating the suspend.&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 --device /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
start polling again when on ac:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling --enable-polling --device /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&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. To enable it by default, you must add the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
options usbcore autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
to your &amp;lt;tt&amp;gt;/etc/modprobe.conf&amp;lt;/tt&amp;gt; or add it to (and create if necessary) the file &amp;lt;tt&amp;gt;/etc/modprobe.d/usbcore&amp;lt;/tt&amp;gt; depending on how your distribution organises modprobe configuratoin. &lt;br /&gt;
&lt;br /&gt;
If on the other hand, you have &amp;lt;tt&amp;gt;usbcore&amp;lt;/tt&amp;gt; built into your kernel, you can add 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;
==PCMCIA/CardBus==&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;
See also [[How to enable audio codec power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
===intel wireless===&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:X61]] [[Category:X61s]]  [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_reduce_power_consumption&amp;diff=37565</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=37565"/>
		<updated>2008-05-04T10:26:40Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* Hard Drives */&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 depreciated as of kernel 2.6.24, use CONFIG_X86_ACPI_CPUFREQ&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;
=== 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;
====SATA Link Power Management====&lt;br /&gt;
On kernels 2.6.24 and new this enables SATA Link Power Management:&lt;br /&gt;
&amp;lt;code&amp;gt;&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;
Disable it by replacing &amp;lt;code&amp;gt;min_power&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;max_performance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On Hardy Heron with a 2.6.24-16 kernel, a suspend/resume cycle is much quicker if you disable SATA Link Power Management before initiating the suspend.&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 --device /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
start polling again when on ac:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 hal-disable-polling --enable-polling --device /dev/scd0 # or whatever your CD drive is&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&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. To enable it by default, you must add the line &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
options usbcore autosuspend=1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
to your &amp;lt;tt&amp;gt;/etc/modprobe.conf&amp;lt;/tt&amp;gt; or add it to (and create if necessary) the file &amp;lt;tt&amp;gt;/etc/modprobe.d/usbcore&amp;lt;/tt&amp;gt; depending on how your distribution organises modprobe configuratoin. &lt;br /&gt;
&lt;br /&gt;
If on the other hand, you have &amp;lt;tt&amp;gt;usbcore&amp;lt;/tt&amp;gt; built into your kernel, you can add 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;
See also [[How to enable audio codec power saving]].&lt;br /&gt;
&lt;br /&gt;
==Wireless Interface==&lt;br /&gt;
===intel wireless===&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:X61]] [[Category:X61s]]  [[Category:Z60m]] [[Category:Z60t]] [[Category:Z61t]] [[Category:Z61e]] [[Category:TransNote]]&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_8.04_(Hardy_Heron)_on_a_ThinkPad_T61&amp;diff=37564</id>
		<title>Installing Ubuntu 8.04 (Hardy Heron) on a ThinkPad T61</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_8.04_(Hardy_Heron)_on_a_ThinkPad_T61&amp;diff=37564"/>
		<updated>2008-05-04T10:01:20Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* Items that work out of the box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Features ==&lt;br /&gt;
=== Open Source Intel Wifi Driver ===&lt;br /&gt;
Intel has created a new Linux Wifi driver project for Intel Wireless cards, &amp;quot;[[Iwlwifi]]&amp;quot;.  This driver is Open Source and no longer requires the Intel daemon to run in addition.  This project will support the [[:Category:T61 | T61]]'s Wifi [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter | Intel 3945ABG network adapter]] and [[Intel PRO/Wireless 4965AGN Mini-PCI Express Adapter| Intel 4965AGN network adapter]].&lt;br /&gt;
&lt;br /&gt;
An automatic migration will occur when upgrading from [[Installing Ubuntu 7.10 (Gutsy Gibbon) on a ThinkPad T61|Ubuntu 7.10]] to Ubuntu 8.04.  However, there is a caveat to be aware of:&lt;br /&gt;
* The new driver wants to name the interface wlan0 (by default -- you can rename it to anything you want), and requires a different entry in {{path|/etc/udev/rules.d/70-persistent-net.rules}}, which handles the naming of interfaces.  Simply edit this file and delete your old entry for the ipw3945 driver, then unload/reload the new driver, or simply reboot.  A new entry will automatically be created that is appropriate for the new driver.  Here's an example of the lines to delete:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PCI device 0x8086:0x4227 (ipw3945)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTRS{address}==&amp;quot;00:1b:77:a4:0e:2f&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need to perform a manual migration, the Ubuntu Help Community has written some [https://help.ubuntu.com/community/WifiDocs/Driver/iwlwifi_Intel_3945_4965/gutsy documentation] that will make this very easy to do.&lt;br /&gt;
&lt;br /&gt;
=== Compiz and XV Playback on Intel GM965/GL960 ===&lt;br /&gt;
&lt;br /&gt;
With Ubuntu 7.10 (Gutsy Gibbon) you currently have to choose between using Compiz and working video playback using XV. On 8.04 (Hardy Heron) alpha 5 you can play videos using XV under compiz, it works right out of the box using the Live-CD.&lt;br /&gt;
&lt;br /&gt;
=== Suspend with Nv140m ===&lt;br /&gt;
Suspend may not work even after editing acpi-support. Enable bluetooth (Fn+F5) may result in a successful suspend. NOTE: that although the wifi led does not change when Fn+F5 is used, the wifi is still toggled by this key.&lt;br /&gt;
&lt;br /&gt;
'''Hal &amp;quot;S3 BIOS&amp;quot; parameter issue!'''&lt;br /&gt;
&lt;br /&gt;
After doing the changes to the /etc/default/acpi-support file (described [http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_T61#How_to_Suspend_with_nVidia_140m.2F570m here]), I for one, managed to have '''stable''' suspend support by creating a new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;device&amp;gt;&lt;br /&gt;
    &amp;lt;match key=&amp;quot;system.hardware.vendor&amp;quot; string=&amp;quot;LENOVO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;merge key=&amp;quot;power_management.quirk.s3_bios&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;
    &amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;/device&amp;gt;&lt;br /&gt;
&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{NOTE|The problem (after reading the HAL and pm-utils documentations) is the fact that (as far as I can tell) the T61 Lenovo doesn't allow the S3 BIOS to be called *during* suspend/resume, which HAL seems to do by default (who knows, maybe there are T61s out there that do work with this default)!&lt;br /&gt;
&lt;br /&gt;
This did not seem to be necessary for previous versions of Ubuntu. Also note that I have an NVIDIA card so I have no idea what to do for Intel versions.The change should also be resistant to HAL and pm-utils upgrades.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Still no suspend with nvs140m? Got Modell 6460?'''&lt;br /&gt;
&lt;br /&gt;
Fix above didn't work for me on a 15.4 wide T61 Modell 6460 with nv140m. Bios is updated to 2.14 but didn't change anything, except the usb bug is fix. Suspend seems to work fine, but resume gives me a black screen (backlight off - no reaction to brightness up) and I can hear 2 beeps. Most of the time I can reboot with ctrl+alt+delete but the screen stays dark until bios.&lt;br /&gt;
&lt;br /&gt;
follow the instructions above but create the new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;device&amp;gt;&lt;br /&gt;
    &amp;lt;match key=&amp;quot;system.hardware.vendor&amp;quot; string=&amp;quot;LENOVO&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.s3_mode&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.s3_bios&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.save_pci&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
    &amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;/device&amp;gt;&lt;br /&gt;
&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you want to set the following parameter in &lt;br /&gt;
&lt;br /&gt;
{{path|/etc/default/acpi-support}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SAVE_VIDEO_PCI_STATE=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This works for me with mode 6460, except for one problem: You may get a white screen in xorg after resume when using compiz. If you don't have a 6460 with nvidia this file may break things for you because it doesn't care about the modell and sets the parameter for any lenovo product}}&lt;br /&gt;
{{HELP|Anyone with more knowledge of hal and acpi-support is welcome to clean this up. I also don't know why this setting can be done via hal and in acpi-support}}&lt;br /&gt;
&lt;br /&gt;
[[Category:  T61]]&lt;br /&gt;
&lt;br /&gt;
=== TrackPoint ===&lt;br /&gt;
The [[TrackPoint]] works out of the box, but does not scroll.  To enable using the middle mouse button to scroll, replace the &amp;quot;Configured Mouse&amp;quot; section in&lt;br /&gt;
{{path|/etc/X11/xorg.conf}} with the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
	Driver		&amp;quot;mouse&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CorePointer&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Device&amp;quot;		&amp;quot;/dev/input/mice&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Protocol&amp;quot;		&amp;quot;ImPS/2&amp;quot;&lt;br /&gt;
	Option		&amp;quot;ZAxisMapping&amp;quot;		&amp;quot;4 5&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;EmulateWheel&amp;quot;          &amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;EmulateWheelButton&amp;quot;    &amp;quot;2&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
Works great out of the box, just the microphone has to be activated, it is considered a generic capture source and is muted by default.&lt;br /&gt;
&lt;br /&gt;
To unmute the microphone:&lt;br /&gt;
&lt;br /&gt;
*Right Click on the volume icon next to the clock and click on &amp;quot;Open Volume Control&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Click Edit -&amp;gt; Preferences.   A list of devices will be displayed, you should check the following (Do not uncheck any existing items):&lt;br /&gt;
 &lt;br /&gt;
      Input Source&lt;br /&gt;
      Capture&lt;br /&gt;
&lt;br /&gt;
*Click Close and there should be two additional tabs &amp;quot;Recording&amp;quot; and &amp;quot;Options&amp;quot;.   - &lt;br /&gt;
&lt;br /&gt;
*Click Recording and click on the microphone under the Capture slider so that it no longer has a red line through it, and put the slider up as it may be deactivated.  &lt;br /&gt;
&lt;br /&gt;
*Click Options and under capture source select internal mic.&lt;br /&gt;
&lt;br /&gt;
To test your mic using Sound Recorder select Capture as the sound source.&lt;br /&gt;
&lt;br /&gt;
This solution has been tested with Sound Recorder and Skype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the volume controls working:&lt;br /&gt;
&lt;br /&gt;
*add the following line to /etc/modprobe.d/alsa-base, then reboot&lt;br /&gt;
 &lt;br /&gt;
      options snd-hda-intel index=0 model=thinkpad&lt;br /&gt;
&lt;br /&gt;
=== Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
Most Multimedia Keys work out of the box, just the play, forward and stop buttons need to be adjusted, therefore, press alt + F2 and type in gnome-keybinding-properties. Then everything works as followed:&lt;br /&gt;
&lt;br /&gt;
* Fn-PgUp activates/deactivates the thinklight&lt;br /&gt;
* Fn-Up will trigger stop on a media player&lt;br /&gt;
* Fn-Down will toggle pause and play on a media player&lt;br /&gt;
* Fn-Left/Right go to prev/next tracks on a media player&lt;br /&gt;
* Fn-F2 properly locks the screen&lt;br /&gt;
* Fn-F3 shows remaining battery  &amp;gt;&amp;gt;does not work on all machines&amp;lt;&amp;lt;&lt;br /&gt;
* Fn-F4 suspends (to ram)&lt;br /&gt;
* Fn-F9 ejects cds&lt;br /&gt;
* Fn-F12 hibernates (to disk)&lt;br /&gt;
* PrtSc opens the screenshot dialog&lt;br /&gt;
&lt;br /&gt;
=== WiFi LED ===&lt;br /&gt;
&lt;br /&gt;
To active WiFi LED, install backported IWL4965 driver&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install linux-backports-modules-hardy&lt;br /&gt;
&lt;br /&gt;
== Items that work out of the box ==&lt;br /&gt;
&lt;br /&gt;
'''Intel Video:''' 2D and 3D acceleration works&lt;br /&gt;
&lt;br /&gt;
'''Wireless:''' Intel cards tested.&lt;br /&gt;
&lt;br /&gt;
'''Wireless WAN:''' Cingular/AT&amp;amp;T card tested.&lt;br /&gt;
&lt;br /&gt;
'''Network Card'''  Intel 10/100/1000 tested&lt;br /&gt;
&lt;br /&gt;
'''Wireless switch''' tested &lt;br /&gt;
&lt;br /&gt;
'''Webcam''' tested with cheese and skype.&lt;br /&gt;
&lt;br /&gt;
'''Headphones''' out of the box&lt;br /&gt;
&lt;br /&gt;
'''Microphone''' just needs to be activated, see section above&lt;br /&gt;
&lt;br /&gt;
'''Keyboard Shortcuts:''' most work out of the box, some need to be activated, see section above&lt;br /&gt;
&lt;br /&gt;
== Items that don't work ==&lt;br /&gt;
&lt;br /&gt;
=== Wireless activity LED ===&lt;br /&gt;
&lt;br /&gt;
The LED is not implemented at least in the IWL4965 driver.&lt;br /&gt;
&lt;br /&gt;
patch posted in this [http://bughost.org/bugzilla/show_bug.cgi?id=1209 thread] works for me on R61 with IWL4965 card.&lt;br /&gt;
&lt;br /&gt;
See [[#WiFi_LED|above]] for the package containing the fixed driver.&lt;br /&gt;
&lt;br /&gt;
[[Category:  Ubuntu 8.04]]&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_8.04_(Hardy_Heron)_on_a_ThinkPad_T61&amp;diff=37563</id>
		<title>Installing Ubuntu 8.04 (Hardy Heron) on a ThinkPad T61</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_8.04_(Hardy_Heron)_on_a_ThinkPad_T61&amp;diff=37563"/>
		<updated>2008-05-04T09:58:30Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* Wireless activity LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Features ==&lt;br /&gt;
=== Open Source Intel Wifi Driver ===&lt;br /&gt;
Intel has created a new Linux Wifi driver project for Intel Wireless cards, &amp;quot;[[Iwlwifi]]&amp;quot;.  This driver is Open Source and no longer requires the Intel daemon to run in addition.  This project will support the [[:Category:T61 | T61]]'s Wifi [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter | Intel 3945ABG network adapter]] and [[Intel PRO/Wireless 4965AGN Mini-PCI Express Adapter| Intel 4965AGN network adapter]].&lt;br /&gt;
&lt;br /&gt;
An automatic migration will occur when upgrading from [[Installing Ubuntu 7.10 (Gutsy Gibbon) on a ThinkPad T61|Ubuntu 7.10]] to Ubuntu 8.04.  However, there is a caveat to be aware of:&lt;br /&gt;
* The new driver wants to name the interface wlan0 (by default -- you can rename it to anything you want), and requires a different entry in {{path|/etc/udev/rules.d/70-persistent-net.rules}}, which handles the naming of interfaces.  Simply edit this file and delete your old entry for the ipw3945 driver, then unload/reload the new driver, or simply reboot.  A new entry will automatically be created that is appropriate for the new driver.  Here's an example of the lines to delete:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PCI device 0x8086:0x4227 (ipw3945)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTRS{address}==&amp;quot;00:1b:77:a4:0e:2f&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need to perform a manual migration, the Ubuntu Help Community has written some [https://help.ubuntu.com/community/WifiDocs/Driver/iwlwifi_Intel_3945_4965/gutsy documentation] that will make this very easy to do.&lt;br /&gt;
&lt;br /&gt;
=== Compiz and XV Playback on Intel GM965/GL960 ===&lt;br /&gt;
&lt;br /&gt;
With Ubuntu 7.10 (Gutsy Gibbon) you currently have to choose between using Compiz and working video playback using XV. On 8.04 (Hardy Heron) alpha 5 you can play videos using XV under compiz, it works right out of the box using the Live-CD.&lt;br /&gt;
&lt;br /&gt;
=== Suspend with Nv140m ===&lt;br /&gt;
Suspend may not work even after editing acpi-support. Enable bluetooth (Fn+F5) may result in a successful suspend. NOTE: that although the wifi led does not change when Fn+F5 is used, the wifi is still toggled by this key.&lt;br /&gt;
&lt;br /&gt;
'''Hal &amp;quot;S3 BIOS&amp;quot; parameter issue!'''&lt;br /&gt;
&lt;br /&gt;
After doing the changes to the /etc/default/acpi-support file (described [http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_T61#How_to_Suspend_with_nVidia_140m.2F570m here]), I for one, managed to have '''stable''' suspend support by creating a new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;device&amp;gt;&lt;br /&gt;
    &amp;lt;match key=&amp;quot;system.hardware.vendor&amp;quot; string=&amp;quot;LENOVO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;merge key=&amp;quot;power_management.quirk.s3_bios&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;
    &amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;/device&amp;gt;&lt;br /&gt;
&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{NOTE|The problem (after reading the HAL and pm-utils documentations) is the fact that (as far as I can tell) the T61 Lenovo doesn't allow the S3 BIOS to be called *during* suspend/resume, which HAL seems to do by default (who knows, maybe there are T61s out there that do work with this default)!&lt;br /&gt;
&lt;br /&gt;
This did not seem to be necessary for previous versions of Ubuntu. Also note that I have an NVIDIA card so I have no idea what to do for Intel versions.The change should also be resistant to HAL and pm-utils upgrades.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Still no suspend with nvs140m? Got Modell 6460?'''&lt;br /&gt;
&lt;br /&gt;
Fix above didn't work for me on a 15.4 wide T61 Modell 6460 with nv140m. Bios is updated to 2.14 but didn't change anything, except the usb bug is fix. Suspend seems to work fine, but resume gives me a black screen (backlight off - no reaction to brightness up) and I can hear 2 beeps. Most of the time I can reboot with ctrl+alt+delete but the screen stays dark until bios.&lt;br /&gt;
&lt;br /&gt;
follow the instructions above but create the new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;device&amp;gt;&lt;br /&gt;
    &amp;lt;match key=&amp;quot;system.hardware.vendor&amp;quot; string=&amp;quot;LENOVO&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.s3_mode&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.s3_bios&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.save_pci&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
    &amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;/device&amp;gt;&lt;br /&gt;
&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you want to set the following parameter in &lt;br /&gt;
&lt;br /&gt;
{{path|/etc/default/acpi-support}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SAVE_VIDEO_PCI_STATE=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This works for me with mode 6460, except for one problem: You may get a white screen in xorg after resume when using compiz. If you don't have a 6460 with nvidia this file may break things for you because it doesn't care about the modell and sets the parameter for any lenovo product}}&lt;br /&gt;
{{HELP|Anyone with more knowledge of hal and acpi-support is welcome to clean this up. I also don't know why this setting can be done via hal and in acpi-support}}&lt;br /&gt;
&lt;br /&gt;
[[Category:  T61]]&lt;br /&gt;
&lt;br /&gt;
=== TrackPoint ===&lt;br /&gt;
The [[TrackPoint]] works out of the box, but does not scroll.  To enable using the middle mouse button to scroll, replace the &amp;quot;Configured Mouse&amp;quot; section in&lt;br /&gt;
{{path|/etc/X11/xorg.conf}} with the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
	Driver		&amp;quot;mouse&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CorePointer&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Device&amp;quot;		&amp;quot;/dev/input/mice&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Protocol&amp;quot;		&amp;quot;ImPS/2&amp;quot;&lt;br /&gt;
	Option		&amp;quot;ZAxisMapping&amp;quot;		&amp;quot;4 5&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;EmulateWheel&amp;quot;          &amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;EmulateWheelButton&amp;quot;    &amp;quot;2&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
Works great out of the box, just the microphone has to be activated, it is considered a generic capture source and is muted by default.&lt;br /&gt;
&lt;br /&gt;
To unmute the microphone:&lt;br /&gt;
&lt;br /&gt;
*Right Click on the volume icon next to the clock and click on &amp;quot;Open Volume Control&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Click Edit -&amp;gt; Preferences.   A list of devices will be displayed, you should check the following (Do not uncheck any existing items):&lt;br /&gt;
 &lt;br /&gt;
      Input Source&lt;br /&gt;
      Capture&lt;br /&gt;
&lt;br /&gt;
*Click Close and there should be two additional tabs &amp;quot;Recording&amp;quot; and &amp;quot;Options&amp;quot;.   - &lt;br /&gt;
&lt;br /&gt;
*Click Recording and click on the microphone under the Capture slider so that it no longer has a red line through it, and put the slider up as it may be deactivated.  &lt;br /&gt;
&lt;br /&gt;
*Click Options and under capture source select internal mic.&lt;br /&gt;
&lt;br /&gt;
To test your mic using Sound Recorder select Capture as the sound source.&lt;br /&gt;
&lt;br /&gt;
This solution has been tested with Sound Recorder and Skype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the volume controls working:&lt;br /&gt;
&lt;br /&gt;
*add the following line to /etc/modprobe.d/alsa-base, then reboot&lt;br /&gt;
 &lt;br /&gt;
      options snd-hda-intel index=0 model=thinkpad&lt;br /&gt;
&lt;br /&gt;
=== Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
Most Multimedia Keys work out of the box, just the play, forward and stop buttons need to be adjusted, therefore, press alt + F2 and type in gnome-keybinding-properties. Then everything works as followed:&lt;br /&gt;
&lt;br /&gt;
* Fn-PgUp activates/deactivates the thinklight&lt;br /&gt;
* Fn-Up will trigger stop on a media player&lt;br /&gt;
* Fn-Down will toggle pause and play on a media player&lt;br /&gt;
* Fn-Left/Right go to prev/next tracks on a media player&lt;br /&gt;
* Fn-F2 properly locks the screen&lt;br /&gt;
* Fn-F3 shows remaining battery  &amp;gt;&amp;gt;does not work on all machines&amp;lt;&amp;lt;&lt;br /&gt;
* Fn-F4 suspends (to ram)&lt;br /&gt;
* Fn-F9 ejects cds&lt;br /&gt;
* Fn-F12 hibernates (to disk)&lt;br /&gt;
* PrtSc opens the screenshot dialog&lt;br /&gt;
&lt;br /&gt;
=== WiFi LED ===&lt;br /&gt;
&lt;br /&gt;
To active WiFi LED, install backported IWL4965 driver&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install linux-backports-modules-hardy&lt;br /&gt;
&lt;br /&gt;
== Items that work out of the box ==&lt;br /&gt;
&lt;br /&gt;
'''Intel Video:''' 2D and 3D acceleration works&lt;br /&gt;
&lt;br /&gt;
'''Wireless:''' Intel cards tested.&lt;br /&gt;
&lt;br /&gt;
'''Network Card'''  Intel 10/100/1000 tested&lt;br /&gt;
&lt;br /&gt;
'''Wireless switch''' tested &lt;br /&gt;
&lt;br /&gt;
'''Webcam''' tested with cheese and skype.&lt;br /&gt;
&lt;br /&gt;
'''Headphones''' out of the box&lt;br /&gt;
&lt;br /&gt;
'''Microphone''' just needs to be activated, see section above&lt;br /&gt;
&lt;br /&gt;
'''Keyboard Shortcuts:''' most work out of the box, some need to be activated, see section above&lt;br /&gt;
&lt;br /&gt;
== Items that don't work ==&lt;br /&gt;
&lt;br /&gt;
=== Wireless activity LED ===&lt;br /&gt;
&lt;br /&gt;
The LED is not implemented at least in the IWL4965 driver.&lt;br /&gt;
&lt;br /&gt;
patch posted in this [http://bughost.org/bugzilla/show_bug.cgi?id=1209 thread] works for me on R61 with IWL4965 card.&lt;br /&gt;
&lt;br /&gt;
See [[#WiFi_LED|above]] for the package containing the fixed driver.&lt;br /&gt;
&lt;br /&gt;
[[Category:  Ubuntu 8.04]]&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_8.04_(Hardy_Heron)_on_a_ThinkPad_T61&amp;diff=37562</id>
		<title>Installing Ubuntu 8.04 (Hardy Heron) on a ThinkPad T61</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Ubuntu_8.04_(Hardy_Heron)_on_a_ThinkPad_T61&amp;diff=37562"/>
		<updated>2008-05-04T09:57:23Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* Wireless activity LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Features ==&lt;br /&gt;
=== Open Source Intel Wifi Driver ===&lt;br /&gt;
Intel has created a new Linux Wifi driver project for Intel Wireless cards, &amp;quot;[[Iwlwifi]]&amp;quot;.  This driver is Open Source and no longer requires the Intel daemon to run in addition.  This project will support the [[:Category:T61 | T61]]'s Wifi [[Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter | Intel 3945ABG network adapter]] and [[Intel PRO/Wireless 4965AGN Mini-PCI Express Adapter| Intel 4965AGN network adapter]].&lt;br /&gt;
&lt;br /&gt;
An automatic migration will occur when upgrading from [[Installing Ubuntu 7.10 (Gutsy Gibbon) on a ThinkPad T61|Ubuntu 7.10]] to Ubuntu 8.04.  However, there is a caveat to be aware of:&lt;br /&gt;
* The new driver wants to name the interface wlan0 (by default -- you can rename it to anything you want), and requires a different entry in {{path|/etc/udev/rules.d/70-persistent-net.rules}}, which handles the naming of interfaces.  Simply edit this file and delete your old entry for the ipw3945 driver, then unload/reload the new driver, or simply reboot.  A new entry will automatically be created that is appropriate for the new driver.  Here's an example of the lines to delete:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# PCI device 0x8086:0x4227 (ipw3945)&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, ATTRS{address}==&amp;quot;00:1b:77:a4:0e:2f&amp;quot;, NAME=&amp;quot;eth1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need to perform a manual migration, the Ubuntu Help Community has written some [https://help.ubuntu.com/community/WifiDocs/Driver/iwlwifi_Intel_3945_4965/gutsy documentation] that will make this very easy to do.&lt;br /&gt;
&lt;br /&gt;
=== Compiz and XV Playback on Intel GM965/GL960 ===&lt;br /&gt;
&lt;br /&gt;
With Ubuntu 7.10 (Gutsy Gibbon) you currently have to choose between using Compiz and working video playback using XV. On 8.04 (Hardy Heron) alpha 5 you can play videos using XV under compiz, it works right out of the box using the Live-CD.&lt;br /&gt;
&lt;br /&gt;
=== Suspend with Nv140m ===&lt;br /&gt;
Suspend may not work even after editing acpi-support. Enable bluetooth (Fn+F5) may result in a successful suspend. NOTE: that although the wifi led does not change when Fn+F5 is used, the wifi is still toggled by this key.&lt;br /&gt;
&lt;br /&gt;
'''Hal &amp;quot;S3 BIOS&amp;quot; parameter issue!'''&lt;br /&gt;
&lt;br /&gt;
After doing the changes to the /etc/default/acpi-support file (described [http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_T61#How_to_Suspend_with_nVidia_140m.2F570m here]), I for one, managed to have '''stable''' suspend support by creating a new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;device&amp;gt;&lt;br /&gt;
    &amp;lt;match key=&amp;quot;system.hardware.vendor&amp;quot; string=&amp;quot;LENOVO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;merge key=&amp;quot;power_management.quirk.s3_bios&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;
    &amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;/device&amp;gt;&lt;br /&gt;
&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{NOTE|The problem (after reading the HAL and pm-utils documentations) is the fact that (as far as I can tell) the T61 Lenovo doesn't allow the S3 BIOS to be called *during* suspend/resume, which HAL seems to do by default (who knows, maybe there are T61s out there that do work with this default)!&lt;br /&gt;
&lt;br /&gt;
This did not seem to be necessary for previous versions of Ubuntu. Also note that I have an NVIDIA card so I have no idea what to do for Intel versions.The change should also be resistant to HAL and pm-utils upgrades.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Still no suspend with nvs140m? Got Modell 6460?'''&lt;br /&gt;
&lt;br /&gt;
Fix above didn't work for me on a 15.4 wide T61 Modell 6460 with nv140m. Bios is updated to 2.14 but didn't change anything, except the usb bug is fix. Suspend seems to work fine, but resume gives me a black screen (backlight off - no reaction to brightness up) and I can hear 2 beeps. Most of the time I can reboot with ctrl+alt+delete but the screen stays dark until bios.&lt;br /&gt;
&lt;br /&gt;
follow the instructions above but create the new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;ISO-8859-1&amp;quot;?&amp;gt; &amp;lt;!-- -*- SGML -*- --&amp;gt;&lt;br /&gt;
&amp;lt;deviceinfo version=&amp;quot;0.2&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;device&amp;gt;&lt;br /&gt;
    &amp;lt;match key=&amp;quot;system.hardware.vendor&amp;quot; string=&amp;quot;LENOVO&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.s3_mode&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.s3_bios&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;false&amp;lt;/merge&amp;gt;&lt;br /&gt;
      &amp;lt;merge key=&amp;quot;power_management.quirk.save_pci&amp;quot; type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/merge&amp;gt;&lt;br /&gt;
    &amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;/device&amp;gt;&lt;br /&gt;
&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you want to set the following parameter in &lt;br /&gt;
&lt;br /&gt;
{{path|/etc/default/acpi-support}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SAVE_VIDEO_PCI_STATE=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This works for me with mode 6460, except for one problem: You may get a white screen in xorg after resume when using compiz. If you don't have a 6460 with nvidia this file may break things for you because it doesn't care about the modell and sets the parameter for any lenovo product}}&lt;br /&gt;
{{HELP|Anyone with more knowledge of hal and acpi-support is welcome to clean this up. I also don't know why this setting can be done via hal and in acpi-support}}&lt;br /&gt;
&lt;br /&gt;
[[Category:  T61]]&lt;br /&gt;
&lt;br /&gt;
=== TrackPoint ===&lt;br /&gt;
The [[TrackPoint]] works out of the box, but does not scroll.  To enable using the middle mouse button to scroll, replace the &amp;quot;Configured Mouse&amp;quot; section in&lt;br /&gt;
{{path|/etc/X11/xorg.conf}} with the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
	Identifier	&amp;quot;Trackpoint&amp;quot;&lt;br /&gt;
	Driver		&amp;quot;mouse&amp;quot;&lt;br /&gt;
	Option		&amp;quot;CorePointer&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Device&amp;quot;		&amp;quot;/dev/input/mice&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Protocol&amp;quot;		&amp;quot;ImPS/2&amp;quot;&lt;br /&gt;
	Option		&amp;quot;ZAxisMapping&amp;quot;		&amp;quot;4 5&amp;quot;&lt;br /&gt;
	Option		&amp;quot;Emulate3Buttons&amp;quot;	&amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;EmulateWheel&amp;quot;          &amp;quot;true&amp;quot;&lt;br /&gt;
	Option		&amp;quot;EmulateWheelButton&amp;quot;    &amp;quot;2&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
Works great out of the box, just the microphone has to be activated, it is considered a generic capture source and is muted by default.&lt;br /&gt;
&lt;br /&gt;
To unmute the microphone:&lt;br /&gt;
&lt;br /&gt;
*Right Click on the volume icon next to the clock and click on &amp;quot;Open Volume Control&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*Click Edit -&amp;gt; Preferences.   A list of devices will be displayed, you should check the following (Do not uncheck any existing items):&lt;br /&gt;
 &lt;br /&gt;
      Input Source&lt;br /&gt;
      Capture&lt;br /&gt;
&lt;br /&gt;
*Click Close and there should be two additional tabs &amp;quot;Recording&amp;quot; and &amp;quot;Options&amp;quot;.   - &lt;br /&gt;
&lt;br /&gt;
*Click Recording and click on the microphone under the Capture slider so that it no longer has a red line through it, and put the slider up as it may be deactivated.  &lt;br /&gt;
&lt;br /&gt;
*Click Options and under capture source select internal mic.&lt;br /&gt;
&lt;br /&gt;
To test your mic using Sound Recorder select Capture as the sound source.&lt;br /&gt;
&lt;br /&gt;
This solution has been tested with Sound Recorder and Skype.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the volume controls working:&lt;br /&gt;
&lt;br /&gt;
*add the following line to /etc/modprobe.d/alsa-base, then reboot&lt;br /&gt;
 &lt;br /&gt;
      options snd-hda-intel index=0 model=thinkpad&lt;br /&gt;
&lt;br /&gt;
=== Multimedia Keys ===&lt;br /&gt;
&lt;br /&gt;
Most Multimedia Keys work out of the box, just the play, forward and stop buttons need to be adjusted, therefore, press alt + F2 and type in gnome-keybinding-properties. Then everything works as followed:&lt;br /&gt;
&lt;br /&gt;
* Fn-PgUp activates/deactivates the thinklight&lt;br /&gt;
* Fn-Up will trigger stop on a media player&lt;br /&gt;
* Fn-Down will toggle pause and play on a media player&lt;br /&gt;
* Fn-Left/Right go to prev/next tracks on a media player&lt;br /&gt;
* Fn-F2 properly locks the screen&lt;br /&gt;
* Fn-F3 shows remaining battery  &amp;gt;&amp;gt;does not work on all machines&amp;lt;&amp;lt;&lt;br /&gt;
* Fn-F4 suspends (to ram)&lt;br /&gt;
* Fn-F9 ejects cds&lt;br /&gt;
* Fn-F12 hibernates (to disk)&lt;br /&gt;
* PrtSc opens the screenshot dialog&lt;br /&gt;
&lt;br /&gt;
=== WiFi LED ===&lt;br /&gt;
&lt;br /&gt;
To active WiFi LED, install backported IWL4965 driver&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install linux-backports-modules-hardy&lt;br /&gt;
&lt;br /&gt;
== Items that work out of the box ==&lt;br /&gt;
&lt;br /&gt;
'''Intel Video:''' 2D and 3D acceleration works&lt;br /&gt;
&lt;br /&gt;
'''Wireless:''' Intel cards tested.&lt;br /&gt;
&lt;br /&gt;
'''Network Card'''  Intel 10/100/1000 tested&lt;br /&gt;
&lt;br /&gt;
'''Wireless switch''' tested &lt;br /&gt;
&lt;br /&gt;
'''Webcam''' tested with cheese and skype.&lt;br /&gt;
&lt;br /&gt;
'''Headphones''' out of the box&lt;br /&gt;
&lt;br /&gt;
'''Microphone''' just needs to be activated, see section above&lt;br /&gt;
&lt;br /&gt;
'''Keyboard Shortcuts:''' most work out of the box, some need to be activated, see section above&lt;br /&gt;
&lt;br /&gt;
== Items that don't work ==&lt;br /&gt;
&lt;br /&gt;
=== Wireless activity LED ===&lt;br /&gt;
&lt;br /&gt;
The LED is not implemented at least in the IWL4965 driver.&lt;br /&gt;
&lt;br /&gt;
patch posted in this [http://bughost.org/bugzilla/show_bug.cgi?id=1209 thread] works for me on R61 with IWL4965 card.&lt;br /&gt;
&lt;br /&gt;
See [[#Wifi_LED|above]] for the package containing the fixed driver.&lt;br /&gt;
&lt;br /&gt;
[[Category:  Ubuntu 8.04]]&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Sierra_Wireless_HSDPA_WWAN&amp;diff=37533</id>
		<title>Sierra Wireless HSDPA WWAN</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Sierra_Wireless_HSDPA_WWAN&amp;diff=37533"/>
		<updated>2008-05-01T18:43:26Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: don´t mix information on mc8775 with other devices&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;North American ThinkPads have the Sierra Wireless MC8765 card.&lt;br /&gt;
European ThinkPads have the Sierra Wireless MC8755 card.&lt;br /&gt;
&lt;br /&gt;
The only difference between the two is the frequency at which they support WCDMA. The MC8765 supports WCDMA800 and WCDMA1900, while the MC8755 supports only WCDMA2100.&lt;br /&gt;
&lt;br /&gt;
Both models support GPRS and EDGE at 850, 900, 1800, and 1900MHz.&lt;br /&gt;
&lt;br /&gt;
Both models are category 11/12 UMTS devices, meaning they support up to 1.8Mbps downstream using QPSK modulation. They do not support 16QAM modulation.&lt;br /&gt;
&lt;br /&gt;
According to the T61 hardware maintenance manual, the T61 uses the MC8775, which is quad band EDGE (850/900/1800/1900) and tri band HSDPA (850/1900/2100).&lt;br /&gt;
&lt;br /&gt;
=== Sierra Wireless MC8765 1199:6805 support ===&lt;br /&gt;
&lt;br /&gt;
The model 2613-ETU T60p (and possibly others) has one of these cards which the linux &amp;lt;tt&amp;gt;sierra&amp;lt;/tt&amp;gt; device driver does not automatically recognize (as of kernel 2.6.24.4, at least).  While it's the same device in every other respect the PCI id isn't standard, presumably because IBM/Lenovo use their own PCI ids to restrict the use of arbitrary 3rd party cards.  Using the 2.6.23+ hotplug infrastructure, we can cause the driver to claim it anyway and register serial devices in &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; for it.&lt;br /&gt;
&lt;br /&gt;
To do this using the '''udev''' subsystem, edit or create the file &amp;lt;tt&amp;gt;/etc/udev/rules.d/98-local.rules&amp;lt;/tt&amp;gt; file and add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;######&lt;br /&gt;
## Sierra Wireless MC8765 1199:6805 support&lt;br /&gt;
##&lt;br /&gt;
## My model 2613-ETU T60p contains a WAN device which the linux sierra&lt;br /&gt;
## device driver does not automatically recognize.  Using the 2.6.23+&lt;br /&gt;
## hotplug infrastructure, we can cause the driver to claim it.&lt;br /&gt;
##&lt;br /&gt;
## The 3-port interface works with this device, but there's not much point&lt;br /&gt;
## in registering the 2nd and 3rd since they are used for control purposes&lt;br /&gt;
## that we don't currently use under linux.&lt;br /&gt;
######&lt;br /&gt;
&lt;br /&gt;
#SUBSYSTEM==&amp;quot;drivers&amp;quot;, \&lt;br /&gt;
#	ACTION==&amp;quot;add&amp;quot;, \&lt;br /&gt;
#	ENV{DEVPATH}==&amp;quot;/bus/usb-serial/drivers/sierra3&amp;quot;, \&lt;br /&gt;
#	RUN+=&amp;quot;/bin/sh -c 'echo 1199 6805  &amp;gt; /sys/bus/usb-serial/drivers/sierra3/new_id'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SUBSYSTEM==&amp;quot;drivers&amp;quot;, \&lt;br /&gt;
	ACTION==&amp;quot;add&amp;quot;, \&lt;br /&gt;
	ENV{DEVPATH}==&amp;quot;/bus/usb-serial/drivers/sierra1&amp;quot;, \&lt;br /&gt;
	RUN+=&amp;quot;/bin/sh -c 'echo 1199 6805  &amp;gt; /sys/bus/usb-serial/drivers/sierra1/new_id'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# TODO: fix this:&lt;br /&gt;
# This isn't quite right for sierra3, since it will always symlink&lt;br /&gt;
# wan_modem to the last created device; in the 3-port case that's not the&lt;br /&gt;
# device we actually want to refer to for modem interaction (we want the&lt;br /&gt;
# first device).  We could limit this using ENV{PHYSDEVDRIVER}=&amp;quot;sierra1&amp;quot;,&lt;br /&gt;
# but udev warns that this is deprecated and will be removed from a future&lt;br /&gt;
# kernel.&lt;br /&gt;
KERNEL==&amp;quot;ttyUSB*&amp;quot;, \&lt;br /&gt;
	SYSFS{manufacturer}==&amp;quot;Sierra Wireless*&amp;quot;, \&lt;br /&gt;
	SYMLINK+=&amp;quot;wan_modem&amp;quot;, \&lt;br /&gt;
	GROUP=&amp;quot;uucp&amp;quot;, \&lt;br /&gt;
	MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=NVidia_Quadro_FX_570M&amp;diff=37214</id>
		<title>NVidia Quadro FX 570M</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=NVidia_Quadro_FX_570M&amp;diff=37214"/>
		<updated>2008-03-30T12:08:57Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on nVidia GeForce Go 8600M/8600GT.&lt;br /&gt;
This [http://forum.thinkpads.com/viewtopic.php?t=48287 forum thread] seems to indicate that the 128 MB version in the 14.1&amp;quot; T61p's only has half the memory bandwidth [http://www.nvidia.com/page/quadrofx_go.html advertised] by NVidia for the 570M.&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=23979</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=23979"/>
		<updated>2006-08-04T08:30:05Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* X series: update X60/X60s status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad's [[SMAPI support for Linux|SMAPI]] functionality via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the implemented functionality is control of battery charging, extended battery status and control of CD/DVD speed (disabled by default).&lt;br /&gt;
&lt;br /&gt;
For older ThinkPad models, see also [[tpctl]].&lt;br /&gt;
&lt;br /&gt;
{{WARN|This driver uses undocumented features and direct hardware access. It thus cannot be guaranteed to work and could conceivably damage your computer (though so far no incidents have been reported).}}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*Battery charge/discharge control&lt;br /&gt;
*Battery status information&lt;br /&gt;
*Optical drive speed control (disabled by default)&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* You need to [http://sourceforge.net/project/showfiles.php?group_id=1212&amp;amp;package_id=171579 download] only the &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; package. Versions containing &amp;lt;tt&amp;gt;-test&amp;lt;/tt&amp;gt; are experimental, others are stable.&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
====Installation from source====&lt;br /&gt;
You will need the kernel headers and makefiles corresponding to your current kernel version. On {{Fedora}}, this means {{cmdroot|yum install kernel-devel-$(uname -r)}} .&lt;br /&gt;
&lt;br /&gt;
For testing, you can simply compile and load the driver within the current&lt;br /&gt;
working directory:&lt;br /&gt;
:{{cmdroot|tar xzvf tp_smapi-0.25.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.25}}&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
&lt;br /&gt;
To compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, add &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; to also patch the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; for compatibility with &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (this requires a kernel source tree matching the current kernel):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or, to compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To prepare a stand-alone patch against the current kernel tree (including&lt;br /&gt;
a patch against &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; and new &amp;lt;tt&amp;gt;Kconfig&amp;lt;/tt&amp;gt; entries):&lt;br /&gt;
:{{cmdroot|make patch}}&lt;br /&gt;
&lt;br /&gt;
To delete all autogenerated files:&lt;br /&gt;
:{{cmdroot|make clean}}&lt;br /&gt;
&lt;br /&gt;
The original kernel tree is never modified by any these commands. &lt;br /&gt;
The {{path|/lib/modules}} directory is modified only by {{cmdroot|make install}}.&lt;br /&gt;
&lt;br /&gt;
====Installation in Gentoo====&lt;br /&gt;
The {{Gentoo}} portage system carries a [http://packages.gentoo.org/packages/?category=app-laptop;name=tp_smapi tp_smapi package], which follows the latest version pretty closely. On a Gentoo system, you can install and load as follows.&lt;br /&gt;
&lt;br /&gt;
If you use the [[HDAPS]] driver, do this first:&lt;br /&gt;
&lt;br /&gt;
* Configure &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; as module in your kernel&lt;br /&gt;
* Add the &amp;lt;tt&amp;gt;HDAPS&amp;lt;/tt&amp;gt; use flag in {{path|/etc/make.conf}}&lt;br /&gt;
* {{cmdroot|rmmod hdaps}}&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* {{cmdroot|emerge tp_smapi}} (or install tp_smapi with hdaps support manually, as above)&lt;br /&gt;
* {{cmdroot|echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
* {{cmdroot|echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules.autoload.d/kernel-2.6}}&lt;br /&gt;
&lt;br /&gt;
Then reboot, or run:&lt;br /&gt;
* {{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
* {{cmdroot|modprobe hdaps}}&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian/Ubuntu====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://www.oakcourt.dyndns.org/debian/ ./&lt;br /&gt;
deb-src http://www.oakcourt.dyndns.org/debian/ ./&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This repository has kernel-patch packages for tp_smapi. This will not only integrate tp_smapi into your kernel build but will patch the hdaps driver for you. It is available for kernel 2.6.15 and later. Also available is an init script to automatically set SMAPI paramaters at boot--this is in package tpsmapi-utils. Please report any bugs to [[User:Ajbarr]]&lt;br /&gt;
&lt;br /&gt;
===Battery charge control features===&lt;br /&gt;
To set the thresholds for starting and stopping battery charging (in percent of current full charge capacity):&lt;br /&gt;
:{{cmdroot|echo 40 &amp;gt; /sys/devices/platform/smapi/BAT0/start_charge_thresh}}&lt;br /&gt;
:{{cmdroot|echo 70 &amp;gt; /sys/devices/platform/smapi/BAT0/stop_charge_thresh}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/*_charge_thresh}}&lt;br /&gt;
{{HINT|Battery charging thresholds can be used to keep Li-Ion ad Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To unconditionally inhibit charging for 17 minutes:&lt;br /&gt;
:{{cmdroot|echo 17 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
{{HINT|Charge inhibiting can be used to reduce the power draw of the laptop, in order to use a an under-spec power supply that can't handle the combined power draw of running and charging. It can also be used to control which battery is charged when [[How to use UltraBay batteries|using an Ultrabay battery]].}}&lt;br /&gt;
&lt;br /&gt;
To cancel charge inhibiting:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/inhibit_charge_minutes}}&lt;br /&gt;
&lt;br /&gt;
To force battery discharging even if connected to AC, use one of these:&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
{{HINT|This can be used to choose which battery is discharged when [[How to use UltraBay batteries|using an UltraBay battery]].}}&lt;br /&gt;
&lt;br /&gt;
To cancel forced discharge:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/BAT0/force_discharge}}&lt;br /&gt;
&lt;br /&gt;
===Battery status features===&lt;br /&gt;
To view extended battery status such as charging state, voltage, current, capacity, cycle count and model information:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/installed&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/state       # idle/charging/discharging&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/cycle_count &lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_now # instantaneous current&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/current_avg # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_now   # instantaneous power&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/power_avg   # last minute average&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/last_full_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_capacity&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/design_voltage&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacturer&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/model&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/barcoding&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/chemistry&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/serial&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/manufacture_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/first_use_date&lt;br /&gt;
# cat /sys/devices/platform/smapi/ac_connected&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The raw status data is also available, including some fields not listed above (in case you can figure them out):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/BAT0/dump}}&lt;br /&gt;
&lt;br /&gt;
In all of the above, replace &amp;lt;tt&amp;gt;BAT0&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;BAT1&amp;lt;/tt&amp;gt; to address the 2nd battery.&lt;br /&gt;
&lt;br /&gt;
Note that the battery status readout conflicts with the stock [[HDAPS|hdaps]] driver, so if you use &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; you will need to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; using {{cmdroot|1=make load HDAPS=1}} (see [[#Conflict_with_hdaps|Conflict with hdaps]] below).&lt;br /&gt;
&lt;br /&gt;
On [[ACPI]]-enabled systems, most of above information is also available through the files under {{path|/proc/acpi/battery}}. However, the ACPI interface does not include the instantaneous power and cycle count readouts, and does not work well when [[How to use UltraBay batteries|hotswapping UltraBay batteries]].&lt;br /&gt;
&lt;br /&gt;
===Optical drive control features===&lt;br /&gt;
&lt;br /&gt;
To control the speed of the optical drive:&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/smapi/cd_speed # slow}}&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /sys/devices/platform/smapi/cd_speed # medium}}&lt;br /&gt;
:{{cmdroot|echo 2 &amp;gt; /sys/devices/platform/smapi/cd_speed # fast}}&lt;br /&gt;
:{{cmdroot|cat /sys/devices/platform/smapi/cd_speed}}&lt;br /&gt;
&lt;br /&gt;
=====Enabling this feature=====&lt;br /&gt;
Changing the drive speed when a disc is being accessed will hang your computer. This feature is thus '''disabled by default''', but can be enabled using by adding &amp;lt;tt&amp;gt;#define PROVIDE_CD_SPEED&amp;lt;/tt&amp;gt; at the top of &amp;lt;tt&amp;gt;tp_smapi.c&amp;lt;/tt&amp;gt;. The safe way to set the drive speed is using &amp;lt;tt&amp;gt;hdparm -E num&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;eject -x num&amp;lt;/tt&amp;gt; for CD-ROM, and &amp;lt;tt&amp;gt;speedcontrol -x num&amp;lt;/tt&amp;gt; (sourcecode [http://safari.iki.fi/speedcontrol.c here]) for DVD. For kernels older than 2.6.15, this may require the [[Problems_with_SATA_and_Linux#No_SMART_support libata pass-through|libata pass-through patch]].&lt;br /&gt;
&lt;br /&gt;
===Other features===&lt;br /&gt;
&lt;br /&gt;
This controls the &amp;quot;PCI bus power saving&amp;quot; option in the BIOS, and takes effect at the next boot. On a ThinkPad {{T43}} turning this off increases idle power consumption by about 350mW. Out-of-the-box default is 1.&lt;br /&gt;
 # cat /sys/devices/platform/smapi/enable_pci_power_saving_on_boot&lt;br /&gt;
 # echo 1 &amp;gt; /sys/devices/platform/smapi/enable_pci_power_saving_on_boot # on&lt;br /&gt;
 # echo 0 &amp;gt; /sys/devices/platform/smapi/enable_pci_power_saving_on_boot # off&lt;br /&gt;
&lt;br /&gt;
There is also [[sysfs]] attribute for making direct SMAPI requests to the SM BIOS firmware. Don't touch it unless you really know what you're doing.&lt;br /&gt;
 echo 'BX=2116 CX=100 DI=0 SI=0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 BX=2116 CX=327 DX=b2 DI=0 SI=0 ret=0 msg=OK&lt;br /&gt;
&lt;br /&gt;
===Conflict with &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;===&lt;br /&gt;
The extended battery status function conflicts with the [[HDAPS|hdaps]] kernel module (they use the same IO ports). The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; package includes a patch against &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; to make it compatible with &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;, and also to fix many problems in the original driver.&lt;br /&gt;
&lt;br /&gt;
To build the patched version, simply append the &amp;lt;tt&amp;gt;HDAPS=1&amp;lt;/tt&amp;gt; parameter to the &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; command, for example: {{cmdroot|1=make load HDAPS=1}} (see [[#Installation|Installation]] above).&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able tp load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;tp_base&amp;lt;/tt&amp;gt;) when &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; is loaded, and vice versa. You can use &amp;lt;tt&amp;gt;rmmod&amp;lt;/tt&amp;gt; to switch between these modules.&lt;br /&gt;
&lt;br /&gt;
Note that some of the battery status is also visible through ACPI ({{path|/proc/acpi/battery/*}}), independently of &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Some new ThinkPad models are not recognized by the built-in whitelist, so you will need to add the &amp;lt;tt&amp;gt;force=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; (this option is added by the &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; patch to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 92%&amp;quot;&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|+&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; feature support matrix&lt;br /&gt;
|-&lt;br /&gt;
! &amp;amp;times; &lt;br /&gt;
! &amp;lt;tt&amp;gt;start_charge_&amp;lt;br /&amp;gt;thresh&amp;lt;/tt&amp;gt; &lt;br /&gt;
!           &amp;lt;tt&amp;gt;stop_charge_&amp;lt;br /&amp;gt;thresh&amp;lt;/tt&amp;gt;&lt;br /&gt;
!                      &amp;lt;tt&amp;gt;inhbit_charge_&amp;lt;br /&amp;gt;minutes&amp;lt;/tt&amp;gt;&lt;br /&gt;
!                                   &amp;lt;tt&amp;gt;force_discharge&amp;lt;/tt&amp;gt;&lt;br /&gt;
!                                                battery status files&lt;br /&gt;
!                                                             &amp;lt;tt&amp;gt;cd_speed&amp;lt;/tt&amp;gt;&amp;lt;br \&amp;gt;&amp;lt;span style=&amp;quot;font-size: 90%&amp;quot;&amp;gt;(see [[#Enabling_this_feature|note]] above)&amp;lt;/span&amp;gt;&lt;br /&gt;
!                                                                       Notes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
! [[:Category:R31|R31]]&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || Has SMAPI BIOS but no function is supported. EC LPC3 protocol fails.&lt;br /&gt;
|-&lt;br /&gt;
! {{T23}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}} &lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686-DGU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 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}} 2662-31G&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || tp_smapi 0.20&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || BIOS v2.03, EC v1.60&lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=8 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please update the above and report your experience on the [[Talk:tp_smapi|discussion]] page. If the module loads but gives a &amp;quot;&amp;lt;tt&amp;gt;not supported&amp;lt;/tt&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tt&amp;gt;not implementeded&amp;lt;/tt&amp;gt;&amp;quot; when you try to use some specific file in {{path|/sys/devices/platform/smapi/}}, please report the &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; output and whether the corresponding functionality is available under Windows - maybe your ThinkPad just can't do that. &lt;br /&gt;
&lt;br /&gt;
While at it, you may also want to add your laptop to the [[list of DMI IDs]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Drivers]] [[Category:Patches]]&lt;br /&gt;
&lt;br /&gt;
===Tools using this driver===&lt;br /&gt;
&lt;br /&gt;
The driver's interface can be accessed directly through the files under {{path|/sys/devices/platform/smapi}}, or via the following tools:&lt;br /&gt;
* [[KThinkBat]] - display battery status on the KDE &amp;lt;tt&amp;gt;kicker&amp;lt;/tt&amp;gt; panel.&lt;br /&gt;
* [[gkrellm-ThinkBat]] - battery status plugin for Gkrellm2&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=23507</id>
		<title>List of DMI IDs</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=23507"/>
		<updated>2006-07-24T14:38:52Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* DMI ID database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page maintains a database of [http://en.wikipedia.org/wiki/Desktop_Management_Interface DMI] information which can be used to identify ThinkPad models. It is intended as an aid for driver development.&lt;br /&gt;
&lt;br /&gt;
==DMI ID database==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;product-name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;product-name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;chassis-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;chassis-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;vendor&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;release-&amp;lt;br /&amp;gt;date&amp;lt;/tt&amp;gt;&lt;br /&gt;
! Embedded controller&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | R series&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad H || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;	String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad R52  || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006|| &amp;lt;nowiki&amp;gt;      String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 18299MG&lt;br /&gt;
|| IBM || 18299MG || ThinkPad R51 || IBM || 18299MG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/                                           27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | T series&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2378D2U&lt;br /&gt;
|| IBM || 2378D2U || ThinkPad T40 || IBM || 2378D2U || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 23732FG&lt;br /&gt;
|| IBM || 23732FG || ThinkPad T41 || IBM || 23732FG || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2686DGU&lt;br /&gt;
|| IBM || 2686DGU || ThinkPad T43 || IBM || 2686DGU || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006&lt;br /&gt;
||      String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06    ]- ||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 200783U&lt;br /&gt;
|| LENOVO || 200783U || ThinkPad T60p || LENOVO || 200783U || Not Available || LENOVO || Not Available || LENOVO || 79ET60WW (1.05a) || 04/18/2006 || &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[79HT43WW-1.02    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | X series&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1702-55G&lt;br /&gt;
|| LENOVO || 170255G || ThinkPad X60s || LENOVO || 170255G || Not Available || LENOVO || Not Available || LENOVO || 7BET44WW (1.04 ) || 03/13/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[7BHT29WW-1.02    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Adding entries==&lt;br /&gt;
&lt;br /&gt;
Edit the [[#DMI_ID_database|DMI ID database]] section above. Identify your series (or add a new one), and add an entry of the following form:&lt;br /&gt;
:&amp;lt;tt&amp;gt;!-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;| &amp;lt;/tt&amp;gt;&amp;lt;i&amp;gt;description of your model&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;i&amp;gt;data line 1&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;i&amp;gt;data line 2&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the two data lines are genereated by the following &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for X in system-{manufacturer,product-name,version} \&lt;br /&gt;
  baseboard-{manufacturer,product-name,version} \&lt;br /&gt;
  chassis-{manufacturer,version} bios-{vendor,version,release-date}; do \&lt;br /&gt;
  echo -n &amp;quot;|| `sudo /usr/sbin/dmidecode -s $X` &amp;quot;; done; echo; \&lt;br /&gt;
  echo &amp;quot;|| &amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;`sudo /usr/sbin/dmidecode | grep -i 'embedded controller'`&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; ||&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Software using ThinkPad DMI IDs==&lt;br /&gt;
* [[HDAPS]] driver whitelist&lt;br /&gt;
* [[tp_smapi]] driver whitelist&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=23506</id>
		<title>List of DMI IDs</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=23506"/>
		<updated>2006-07-24T14:33:19Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* DMI ID database: add X series */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page maintains a database of [http://en.wikipedia.org/wiki/Desktop_Management_Interface DMI] information which can be used to identify ThinkPad models. It is intended as an aid for driver development.&lt;br /&gt;
&lt;br /&gt;
==DMI ID database==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;product-name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;system-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;product-name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;baseboard-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;chassis-&amp;lt;br /&amp;gt;manufa&amp;lt;br /&amp;gt;cturer&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;chassis-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;vendor&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;version&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;bios-&amp;lt;br /&amp;gt;release-&amp;lt;br /&amp;gt;date&amp;lt;/tt&amp;gt;&lt;br /&gt;
! Embedded controller&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | R series&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad H || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;	String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad R52  || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006|| &amp;lt;nowiki&amp;gt;      String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 18299MG&lt;br /&gt;
|| IBM || 18299MG || ThinkPad R51 || IBM || 18299MG || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/                                           27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | T series&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2378D2U&lt;br /&gt;
|| IBM || 2378D2U || ThinkPad T40 || IBM || 2378D2U || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 23732FG&lt;br /&gt;
|| IBM || 23732FG || ThinkPad T41 || IBM || 23732FG || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2686DGU&lt;br /&gt;
|| IBM || 2686DGU || ThinkPad T43 || IBM || 2686DGU || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006&lt;br /&gt;
||      String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06    ]- ||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 200783U&lt;br /&gt;
|| LENOVO || 200783U || ThinkPad T60p || LENOVO || 200783U || Not Available || LENOVO || Not Available || LENOVO || 79ET60WW (1.05a) || 04/18/2006 || &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[79HT43WW-1.02    ]-&amp;lt;/nowiki&amp;gt; ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | X series&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Adding entries==&lt;br /&gt;
&lt;br /&gt;
Edit the [[#DMI_ID_database|DMI ID database]] section above. Identify your series (or add a new one), and add an entry of the following form:&lt;br /&gt;
:&amp;lt;tt&amp;gt;!-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;| &amp;lt;/tt&amp;gt;&amp;lt;i&amp;gt;description of your model&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;i&amp;gt;data line 1&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;i&amp;gt;data line 2&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the two data lines are genereated by the following &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for X in system-{manufacturer,product-name,version} \&lt;br /&gt;
  baseboard-{manufacturer,product-name,version} \&lt;br /&gt;
  chassis-{manufacturer,version} bios-{vendor,version,release-date}; do \&lt;br /&gt;
  echo -n &amp;quot;|| `sudo /usr/sbin/dmidecode -s $X` &amp;quot;; done; echo; \&lt;br /&gt;
  echo &amp;quot;|| &amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;`sudo /usr/sbin/dmidecode | grep -i 'embedded controller'`&amp;lt;/nowiki&amp;gt;&amp;lt;/nowiki&amp;gt; ||&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Software using ThinkPad DMI IDs==&lt;br /&gt;
* [[HDAPS]] driver whitelist&lt;br /&gt;
* [[tp_smapi]] driver whitelist&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Ubuntu_6.06_Flight_6_on_a_ThinkPad_X60s&amp;diff=22707</id>
		<title>Talk:Installing Ubuntu 6.06 Flight 6 on a ThinkPad X60s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Ubuntu_6.06_Flight_6_on_a_ThinkPad_X60s&amp;diff=22707"/>
		<updated>2006-06-12T00:38:36Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the version I downloaded of the Ubuntu 6.06 (don't know how to see what release it is more in detail, but I downloaded it the 01/06/2006) The ipw3945 driver is already included. The Wifi work out of the box.&lt;br /&gt;
--[[schlum]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Have you tried undervolting to combat your noise issues?&lt;br /&gt;
&lt;br /&gt;
--[[igorr]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Switching the SATA controller from &amp;quot;compatibility&amp;quot; to &amp;quot;AHCI&amp;quot; in the BIOS settings (and thus using the ahci instead of the ata_piix driver) made suspend to ram work for me with the 2.6.15-23-686 kernel. However, it seems to draw about 1 - 2 W more power when in this mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3D works fine: glxgears -printfps&lt;br /&gt;
5057 frames in 5.0 seconds = 1011.230 FPS&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Ubuntu_6.06_Flight_6_on_a_ThinkPad_X60s&amp;diff=22662</id>
		<title>Talk:Installing Ubuntu 6.06 Flight 6 on a ThinkPad X60s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Ubuntu_6.06_Flight_6_on_a_ThinkPad_X60s&amp;diff=22662"/>
		<updated>2006-06-07T16:32:03Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: suspend to ram with ahci works&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the version I downloaded of the Ubuntu 6.06 (don't know how to see what release it is more in detail, but I downloaded it the 01/06/2006) The ipw3945 driver is already included. The Wifi work out of the box.&lt;br /&gt;
--[[schlum]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Have you tried undervolting to combat your noise issues?&lt;br /&gt;
&lt;br /&gt;
--[[igorr]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Switching the SATA controller from &amp;quot;compatibility&amp;quot; to &amp;quot;AHCI&amp;quot; in the BIOS settings (and thus using the ahci instead of the ata_piix driver) made suspend to ram work for me with the 2.6.15-23-686 kernel. However, it seems to draw about 1 - 2 W more power when in this mode.&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_high_pitch_noises&amp;diff=22661</id>
		<title>Talk:Problem with high pitch noises</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Problem_with_high_pitch_noises&amp;diff=22661"/>
		<updated>2006-06-07T16:27:41Z</updated>

		<summary type="html">&lt;p&gt;Aumuell: /* Discussion of &amp;quot;Limit ACPI CPU power states&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Discussion of &amp;quot;Limit ACPI CPU power states&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
*Stefan Baums: I raised this issue on the linux-kernel mailing list, and from there it was forwarded to the acpi-devel mailing list.  See the discussion [http://sourceforge.net/mailarchive/forum.php?thread_id=7593600&amp;amp;forum_id=6102 here] and [http://sourceforge.net/mailarchive/forum.php?thread_id=7599419&amp;amp;forum_id=6102 here]. Results: The &amp;lt;code&amp;gt;idle=halt&amp;lt;/code&amp;gt; kernel parameter disables ACPI C-state switching entirely (i.e., locks the processor in C1). It is preferable to pass to the ACPI processor component the option {{bootparm|max_cstate|2}}, which only disables the problematic states C3 and C4.  The only way to accomplish this that worked for me was to compile the ACPI processor component permanently into the kernel (&amp;lt;tt&amp;gt;CONFIG_ACPI_PROCESSOR=y&amp;lt;/tt&amp;gt;) and then enable it by adding the parameter {{bootparm|processor.max_cstate|2}} to the boot command line (and of course removing {{bootparm|idle|halt}}). Now the computer switches back and forth between C1 and C2, but avoids the noise-inducing C3 and C4, and frequency scaling works regardless.  [Update: I now use the default Ubuntu kernel, with &amp;lt;code&amp;gt;processor&amp;lt;/code&amp;gt; as a module, and disabled C3 and C4 by modifying {{path|/etc/init.d/acpid}} as explained on the article page.] ({{X41}})&lt;br /&gt;
*Simon Eggert: The {{bootparm|processor.max_cstate|3}} option worked for me on my {{T43p}} thanks.&lt;br /&gt;
* Adding &amp;lt;code&amp;gt;options processor max_cstate=2&amp;lt;/code&amp;gt; in {{path|/etc/modprobe.conf}} (or {{path|/etc/modprobe.conf.local}} on my SuSE 9.3 installation) prevents the CPU permanently from entering into C3 and higher states. ({{X40}}, {{R52}})&lt;br /&gt;
* [[User:Thinker|Thinker]]: On one {{T43}}, this worked even with {{bootparm|processor.max_cstate|3}}. That is, C3 was silent and only C4 produced whining (at both HZ=100 and HZ=250). &lt;br /&gt;
* [[User:Thinker|Thinker]]: These options affect power consumption when the CPU is idle. Here are the figures on one ThinkPad T43:&lt;br /&gt;
** {{bootparm|processor.max_cstate|4}}: 15160mW (default, noisy)&lt;br /&gt;
** {{bootparm|processor.max_cstate|3}}: 15770mW (660mW higher, silent)&lt;br /&gt;
** {{bootparm|processor.max_cstate|2}}: 16100mW (2940mW higher, silent)&lt;br /&gt;
&lt;br /&gt;
* [[User:Gsmenden|gsmenden]]: On a debian system, no modprobe.conf, can use modutils to add max_cstate line.  On my t43p the noise only occcurs when on battery power after suspend / resume cycle.  It is definitely is still present when hard disk is spun down.  Nevertheless there may be multiple sources of this (quite annoying) sound.&lt;br /&gt;
&lt;br /&gt;
* [[User:Gsmenden|gsmenden]]: Update - if you don't want to use modutils, can manually load it on bootup by adding &amp;quot;processor max_cstate=3&amp;quot; in /etc/modules on a debian system.  Noise still present upon resume though on my t43p though  :(&lt;br /&gt;
&lt;br /&gt;
* [[User:Nephiel|Nephiel]]: My {{Z60m}} also had the &amp;quot;screeching when on battery&amp;quot; problem with Ubuntu 5.10. Editing {{path|/etc/init.d/acpid}} as described worked. It needed C2: C3 was quieter but still noticeable.&lt;br /&gt;
&lt;br /&gt;
* Michael Kiausch: On my {{x41}} the noise disappears on unloading uhci-hcd module (no matter which c-state), unfortunately this is not an option as this disables usb. ''edit:'' only works if HZ=100&lt;br /&gt;
&lt;br /&gt;
* Just tested M. Kiausch's suggestion on a {{t43}}. The high-pitch noise is gone (HZ=100, cstate=4), but there is a low-pitch noise with about the same &amp;quot;beat&amp;quot;. It is much less audible though, and I really had to keep an ear close to the exhaust to hear it. But the noise is still there.&lt;br /&gt;
&lt;br /&gt;
* Michael Kiausch: You're right, same low-pitch-noise on {{x41}}, but it is really hard to hear. Does anyone know in which way the usb-uhci is related to the c-states?&lt;br /&gt;
&lt;br /&gt;
* [[User:Slurm|Slurm]] The high-pitch noise occurs on my x41 only if i'm on battery and my mouse(usb, optical) is plugged in.&lt;br /&gt;
&lt;br /&gt;
* Martin Aumueller: Upgrading the BIOS on my X60s from 1.04 to 1.06 solved the noise problem for me, however it seems to draw about 500 mW more power with the newer BIOS.&lt;br /&gt;
&lt;br /&gt;
== Harddisk related noise ==&lt;br /&gt;
&lt;br /&gt;
on my T43p the noise definitely comes from the harddisk and can be heard both in Windows and Linux. Only at boot time, before the harddisk spins up, or when I manually spin down the harddisk with&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|hdparm -y /dev/sda}}&lt;br /&gt;
&lt;br /&gt;
the system is silent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi, I don't have an IBM but Dell Latitude D410 laptop. My problem is that not only the high pitch noise is produced but the processor itself comes very busy when speedstep-centrino module is loaded. On karamba monitor (not very reliable but I can feel the difference) I get 50-100% processor occupation. Right now I'm recompiling my 2.6.14 kernel  to 100Hz timer freq. (was 250) and we'll see what happens.&lt;br /&gt;
&lt;br /&gt;
If you have any suggestions don't hestite since I practically can't use speedsteping because battery discharges rapidly &lt;br /&gt;
&lt;br /&gt;
Cheers&lt;br /&gt;
Wojtek&lt;br /&gt;
&lt;br /&gt;
== Noise from Wlan ==&lt;br /&gt;
Hi, I have a high frequency noise from my wifi modul: It occurs only with linux, only in battery mode. Disabling wifi via hardware switch disables the noise!&amp;lt;br&amp;gt;&lt;br /&gt;
Any Ideas?&amp;lt;br&amp;gt;&lt;br /&gt;
Florian&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
EDIT: Giving the cpus something to calc disables the noise, too!&amp;lt;br&amp;gt;&lt;br /&gt;
EDIT2: &amp;quot;Turn off CPU power saving in in BIOS&amp;quot; seems (!!) to solve the problem! But where is the connection to the wlan?&lt;/div&gt;</summary>
		<author><name>Aumuell</name></author>
		
	</entry>
</feed>