<?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=Zhenech</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=Zhenech"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Zhenech"/>
	<updated>2026-06-09T03:32:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=56895</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=56895"/>
		<updated>2016-05-01T08:29:40Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: clean up debian and ubuntu documentation, only mention dkms now&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
&lt;br /&gt;
If you are installing on a recent Thinkpad that has an [[Ivy Bridge]] or newer processor ({{X230}}, {{T430}}, {{T530}}, etc.), tp_smapi will not work. You will be mostly limited to [[thinkpad-acpi]] capabilities. You can however set battery charge thresholds with [[tpacpi-bat]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi, a newer version 0.41 is available in a fork at https://github.com/evgeni/tp_smapi which is also available in Debian&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&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;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR 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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&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/package/app-laptop/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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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;
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about &amp;lt;tt&amp;gt;__stack_chk_fail()&amp;lt;/tt&amp;gt;, you probably just compiled your modules with &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and/or &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; without having a kernel that supports it. You can either configure your kernel to have &amp;lt;tt&amp;gt;CC_STACKPROTECTOR&amp;lt;/tt&amp;gt; enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your &amp;lt;tt&amp;gt;make.conf&amp;lt;/tt&amp;gt; (or, if you're using paludis, your &amp;lt;tt&amp;gt;/etc/paludis/bashrc&amp;lt;/tt&amp;gt;) and remove &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; from your &amp;lt;tt&amp;gt;CFLAGS&amp;lt;/tt&amp;gt;. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian and Ubuntu====&lt;br /&gt;
Since Debian 7 Wheezy and Ubuntu 12.04 Precise you can use 'dkms'. (Note: If installation seems ineffective, confirm you have the linux-headers of your kernel installed, purge tp-smapi-dkms and reinstall.)&lt;br /&gt;
* {{cmdroot|apt-get install linux-headers tp-smapi-dkms}}&lt;br /&gt;
* {{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
&lt;br /&gt;
{{HINT|This appears to be the ideal solution. A description of DKMS, from [http://linux.dell.com/projects.shtml#dkms Dell]: &amp;quot;DKMS stands for Dynamic Kernel Module Support. It is designed to create a framework where kernel dependent module source can reside so that it is very easy to rebuild modules as you upgrade kernels.&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Battery charge control features===&lt;br /&gt;
{{NOTE|Not all Thinkpad ECs support these charge control features. If you get the message &amp;quot;Operation not supported&amp;quot; when trying to cat for the status of a given parameter, it means your controller does not support that feature.}}&lt;br /&gt;
&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 and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&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;
{{HINT|TPBattStat-Applet is a gnome applet for integrating battery balancing with a graphics and/or text display of both batteries in a panel. Battery balancing improves battery life by not leaving one battery empty while the other discharges. For the latest alpha release, see https://github.com/teleshoes/tpbattstat-applet}}&lt;br /&gt;
&lt;br /&gt;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include: {{T400}}, {{T500}}, {{X60s}}, {{X61}}, {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
UPDATE:  Failure to effectively change sysfs values sometimes happens at boot time (through sysfs.conf OR etc/local.start for instance) when the values have never previously been changed manually (ie using echo from a shell).  Try initializing the values manually before including them in boot-time scripting.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&lt;br /&gt;
Tip: The &amp;lt;tt&amp;gt;thinkpad-acpi&amp;lt;/tt&amp;gt; module reports both the BIOS and EC firmware versions when it loads.&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1  || 0.41 ||   ||   || Machine types 7732, 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || 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}}  || N/A || N/A ||      ||  || || 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}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}} 2373-72U&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||  0.40  || 3.23  || 1RHT71WW-3.04  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T410s}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 4 || 0.40 || 1.14 || || Requires &amp;lt;tt&amp;gt;invert=4&amp;lt;/tt&amp;gt; accoding to &amp;lt;tt&amp;gt;hdaps-gl&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T410}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.25 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.35 || 1.17 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{W500}} 4062-4EG&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cunk}}  || {{Cunk}}  || {{Cunk}}  || {{Cunk}} || {{Cunk}} ||  0.40 || {{Cunk}} || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.40 || 3.02 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.40  || 75ET60WW (2.06 ) || 75HT20WW (1.02) ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 6 || 0.40 || 7NETB9WW (2.19) || 7MHT25WW-1.03 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)&lt;br /&gt;
|-&lt;br /&gt;
! {{X120e}}&lt;br /&gt;
| {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.41 || 8FET32WW (1.16 ) || {{Cunk}} || model 0596CTO&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X200s}} 7470-X01&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6DET63WW (3.13) || 7XHT24WW 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X201}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 5 || 0.40 ||  || ECP:  || It said 6 here, but see [http://www.thinkwiki.org/wiki/Talk:Tp_smapi#Wrong_HDAPS_axis_orientation_for_x201 discussion page]&lt;br /&gt;
|-&lt;br /&gt;
! {{X201s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X220}} 4290-2GW&lt;br /&gt;
| {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || {{Cno}} || 0.40 || 8DET46WW (1.16 ) || &amp;quot;unknown&amp;quot; ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X220}} 4286-CTO&lt;br /&gt;
| {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cno}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.41 || 8DET54WW (1.24 ) ||  {{Cunk}} || HDAPS works fine, don't know wich axis orientation thougth ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Tp_smapi#Workaround_for_Partially_Supported_Laptops&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=List_of_DMI_IDs&amp;diff=53630</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=53630"/>
		<updated>2012-05-03T19:50:00Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: Edge 14 i3 by mail from Andrew Engelbrecht &amp;lt;sudoman@ninthfloor.org&amp;gt;&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; |&lt;br /&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;
{{HELP|We need more information about older models, especially those released before 2004. Please [[#Adding_entries|add your model]] to the database.}}&lt;br /&gt;
{{NOTE|If your ThinkPad is not using the [[BIOS Upgrade Downloads|latest BIOS]], and you would be willing to [[BIOS Upgrade|upgrade your BIOS]], please add your ThinkPad to this table twice: '''before''' and '''after''' the BIOS upgrade.  This information helps us a great deal, so your contribution would be very appreciated.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==DMI ID database==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 80%&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; style=&amp;quot;text-align:center&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-&amp;lt;br /&amp;gt;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-&amp;lt;br /&amp;gt;name&amp;lt;/tt&amp;gt;&lt;br /&gt;
! &amp;lt;tt&amp;gt;base&amp;lt;br /&amp;gt;board-&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; |&lt;br /&gt;
====Numbered series====&lt;br /&gt;
|-&lt;br /&gt;
| {{240X}} 2609-61U&lt;br /&gt;
|| IBM || 260961U || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 1.03.09  || 12/21/1999 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{570}} 2644-1AU&lt;br /&gt;
|| IBM || 26441AU || Not Available || IBM || 26441AU || Not Available || IBM || Not Available || IBM || IMET65WW  || 11/11/99&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{570E}} 2644-5AU&lt;br /&gt;
|| IBM || 26445AU || Not Available || IBM || 26445AU || Not Available || IBM || Not Available || IBM || IUET25WW || 12/11/1999&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{600E}} 2645-5AU&lt;br /&gt;
|| IBM || 26455AU || Not Available || IBM || 26455AU || Not Available || IBM || Not Available || IBM || INET36WW || 11/20/1999&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}} 2645-5FU&lt;br /&gt;
|| IBM || 26455FU || Not Available || IBM || 26455FU || Not Available || IBM || Not Available || IBM || INET55WW || 11/30/1999&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}} 2645-8EU&lt;br /&gt;
|| IBM || 26458EU || Not Available || IBM || 26458EU || Not Available || IBM || Not Available || IBM || ITET54WW || 11/30/1999 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{600X}} 2645-8EU&lt;br /&gt;
|| IBM || 26458EU || Not Available || IBM || 26458EU || Not Available || IBM || Not Available || IBM || ITET48WW || 11/30/1999 &lt;br /&gt;
||&lt;br /&gt;
||POST/BIOS Version 1.13 old prior to upgrade &lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====A series====&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}} 2628-FSG&lt;br /&gt;
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET24WW (1.02b) || 12/19/2000 &lt;br /&gt;
|| &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}} 2628-FSG&lt;br /&gt;
|| IBM || 2628FSG || Not Available || IBM || 2628FSG || Not Available || IBM || Not Available || IBM || KXET36WW (1.09 ) || 05/08/2003 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A21m}} 2628-GTU&lt;br /&gt;
|| IBM || 2628GTU || Not Available || IBM || 2628GTU || Not Available || IBM || Not Available || IBM || KXET29WW (1.03d) || 03/21/2001 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A22e}} 2655-KG1&lt;br /&gt;
|| IBM || 2655KG1 || Not Available || IBM || 2655KG1 || Not Available || IBM || Not Available || IBM || 10ET23WW (1.04 ) || 09/05/2001 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A22e}} 2655-KG1&lt;br /&gt;
|| IBM || 2655KG1 || Not Available || IBM || 2655KG1 || Not Available || IBM || Not Available || IBM || 10ET26WW (1.07 ) || 06/13/2003 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A22p}} 2629-USG&lt;br /&gt;
|| IBM || 2629USG || Not Available || IBM || 2629USG || Not Available || IBM || Not Available || IBM || KYET36WW (1.09a) || 10/17/2002 &lt;br /&gt;
||&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{A22p}} 2629-A2G&lt;br /&gt;
|| IBM || 2629A2G || Not Available || IBM || 2629A2G || Not Available || IBM || Not Available || IBM || KYET38WW (1.11 ) || 05/20/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A31}} 2652-PBU&lt;br /&gt;
|| IBM || 2652PBU || Not Available || IBM || 2652PBU || Not Available || IBM || Not Available || IBM || 1NET15WW (1.09 ) || 04/06/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle&amp;amp;nbsp;0x0026,&amp;amp;nbsp;DMI&amp;amp;nbsp;type&amp;amp;nbsp;11,&amp;amp;nbsp;5&amp;amp;nbsp;byte&amp;amp;nbsp;String&amp;amp;nbsp;1:&amp;amp;nbsp;IBM .&amp;amp;nbsp;.&amp;amp;nbsp;ThinkPad&amp;amp;nbsp;Embedded&amp;amp;nbsp;Controller&amp;amp;nbsp;-[1NHT04WW-1.01&amp;amp;nbsp;]-&amp;amp;nbsp;.&amp;amp;nbsp;.&amp;lt;/nowiki&amp;gt;&amp;lt;!-- Handle 0x0026, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[1NHT04WW-1.01 ]- --&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A31p}} 2653-RNG&lt;br /&gt;
|| IBM || 2653RNG || Not Available || IBM || 2653RNG || Not Available || IBM || Not Available || IBM || 1NET16WW (1.10 ) || 10/19/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1NHT08WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{A31p}} 2653-H6U&lt;br /&gt;
|| IBM || 2653H6U || Not Available || IBM || 2653H6U || Not Available || IBM || Not Available || IBM || 1GET31WW (1.03 ) || 07/23/2002&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|{{T-WARN|Missing EC string, extremely outdated BIOS}}&lt;br /&gt;
{{HELP|We need a report to know if the latest BIOS fixes the missing EC string}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====G series====&lt;br /&gt;
|-&lt;br /&gt;
| {{G41}} 2881-75M&lt;br /&gt;
|| IBM || 288175M || ThinkPad G41 || IBM || 288175M || Not Available || IBM || Not Available || IBM || 1XET47WW (1.06 ) || 01/14/2005&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====R series====&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2681-5UU&lt;br /&gt;
|| IBM || 26815UU || Not Available || IBM || 26815UU || Not Available || IBM || Not Available || IBM || 1OET57WW (1.23 ) || 03/23/2005 &lt;br /&gt;
||&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2681-HSG&lt;br /&gt;
|| IBM || 2681HSG || Not Available || IBM || 2681HSG || Not Available || IBM || Not Available || IBM || 1OET61WW (1.27 ) || 06/29/2006&lt;br /&gt;
||&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2722-B3G&lt;br /&gt;
|| IBM || 2722B3G || Not Available || IBM || 2722B3G || Not Available || IBM || Not Available || IBM || 1PET62WW (1.30 ) || 09/29/2005&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2722-BDG&lt;br /&gt;
|| IBM || 2722BDG || Not Available || IBM || 2722BDG || Not Available || IBM || Not Available || IBM || 1PET65WW (1.33 ) || 06/29/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}} 2722-C4U &lt;br /&gt;
|| IBM || 2722CU4 || Not Available || IBM || 2722CU4 || Not Available || IBM || Not Available || IBM || 1PET46WW (1.14 ) || 07/15/2003&lt;br /&gt;
|| 1OHT37WW (1.09) 05/26/03&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}}&lt;br /&gt;
|- &lt;br /&gt;
| {{R40}} 2722-C4U &lt;br /&gt;
|| IBM || 2722CU4 || Not Available || IBM || 2722CU4 || Not Available || IBM || Not Available || IBM || 1PET65WW (1.33 ) || 06/29/2006 &lt;br /&gt;
|| 1OHT42WW (1.14) 05/23/05&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{R40}} 2897-B4U&lt;br /&gt;
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1PET52WW (1.20 ) || 03/03/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-    &lt;br /&gt;
| {{R40e}} 2684-L8G&lt;br /&gt;
|| IBM || 2897B4U || Not Available || IBM || 2897B4U || Not Available || IBM || Not Available || IBM || 1SET62WW (1.30 ) || 07/09/2004&lt;br /&gt;
||&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{R40e}} 2684-L8G&lt;br /&gt;
|| IBM || 2684L8G || Not Available || IBM || 2684L8G || Not Available || IBM || Not Available || IBM || 1SET70WW (1.38 ) || 11/15/2005&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}} 1829-7QG&lt;br /&gt;
|| IBM || 0123456 || ThinkPad R50  || IBM || 0123456 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|{{R50e}} 1834-JAG&lt;br /&gt;
|| IBM || 1834JAG || ThinkPad R50e || IBM || 1834JAG || Not Available || IBM || Not Available || IBM || 1WET82WW (2.02 ) || 02/21/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|{{R50e}}&lt;br /&gt;
|| IBM || 1834S5G || ThinkPad R50e || IBM || 1834S5G || Not Available || IBM || Not Available || IBM || 1WET86WW (2.06 ) || 11/15/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}}&lt;br /&gt;
|- &lt;br /&gt;
|{{R50e}}&lt;br /&gt;
|| IBM || 1834S5G || ThinkPad R50e || IBM || 1834S5G || Not Available || IBM || Not Available || IBM || 1WET90WW (2.10 ) || 12/08/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
|{{R50p}} 1832-2AG&lt;br /&gt;
|| IBM || 18322AG || ThinkPad R50p || IBM || 18322AG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1829-DRG&lt;br /&gt;
|| IBM || 1829DRG || ThinkPad R51 || IBM || 1829DRG || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT66WW-3.00a   ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1829-9MG&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;
|-&lt;br /&gt;
| {{R51}} 1829-L7G&lt;br /&gt;
|| IBM || 1829L7G || ThinkPad R51 || IBM || 1829L7G || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{R51}} [[1830-DG4]]&lt;br /&gt;
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} [[1830-DG4]]&lt;br /&gt;
|| IBM || 1830DG4 || ThinkPad R51 || IBM || 1830DG4 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 1836-GEU&lt;br /&gt;
|| IBM || 1836GEU || ThinkPad R51 || IBM || 1836GEU || Not Available || IBM || Not Available || IBM || 1RETDLWW  (3.17 ) || 07/27/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes. String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 2883-ELU&lt;br /&gt;
|| IBM || 2883ELU || ThinkPad R51 || IBM || 2883ELU || Not Available || IBM || Not Available || IBM || 1VET69WW (1.27 ) || 03/03/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1VHT28WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}} 2883-8QU&lt;br /&gt;
|| IBM || 28838QU || ThinkPad R51 || IBM || 28838QU || Not Available || IBM || Not Available || IBM || 1VET61WW (1.19 ) || 12/20/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1VHT27WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-AQG&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;Handle 0x0029, DMI type 11, 5 bytes	String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Weird system version, this bug is known fixed in latest BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET68WW (1.28 ) || 11/15/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-AQG&lt;br /&gt;
|| IBM || 1846AQG || ThinkPad R52p || IBM || 1846AQG || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1847-CTO&lt;br /&gt;
|| IBM || 1847W15 || ThinkPad R52 || IBM || 1847W15 || Not Available || IBM || Not Available || IBM || 76ET69WW (1.29 ) || 12/06/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1847-W62&lt;br /&gt;
|| IBM || 1847W62 || ThinkPad .    || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Weird system version, this bug is known fixed in latest BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1847-W62&lt;br /&gt;
|| IBM || 1847W62 || ThinkPad R52  || IBM || 1847W62 || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1858-6MM&lt;br /&gt;
|| IBM || 18586MM || ThinkPad R52 || IBM || 18586MM || Not Available || IBM || Not Available || IBM || 70ET40WW (1.04 ) || 06/02/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1858-6SM&lt;br /&gt;
|| IBM || 18586SM || ThinkPad R52 || IBM || 18586SM || Not Available || IBM || Not Available || IBM || 70ET57WW (1.17 ) || 07/15/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-4CG&lt;br /&gt;
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET65WW (1.25 ) || 05/18/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT15WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-4CG&lt;br /&gt;
|| IBM || 18464CG || ThinkPad R52 || IBM || 18464CG || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[76HT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R52}} 1846-B5G&lt;br /&gt;
|| IBM || 1846B5G || ThinkPad H    || IBM || 1846B5G || Not Available || IBM || Not Available || IBM || 76ET58WW (1.18 ) || 07/19/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[76HT14WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60e}} 0657-4TG&lt;br /&gt;
|| LENOVO || 06574TG || ThinkPad R60e || LENOVO || 06574TG || Not Available || LENOVO || Not Available || LENOVO || 7EET18WW (1.04 ) || 07/28/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7EHT13WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9456-6FG&lt;br /&gt;
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9456-6FG&lt;br /&gt;
|| LENOVO || 94566FG || ThinkPad R60 || LENOVO || 94566FG || Not Available || LENOVO || Not Available || LENOVO || 7CETB7WW (2.07 ) || 11/13/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-54G&lt;br /&gt;
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET50WW (1.05 ) || 07/28/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT19WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-54G&lt;br /&gt;
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CETC1WW (2.11 ) || 01/09/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| With this bios version the brightness control buttons don't work for kernel &amp;lt; 2.6.20&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-54G&lt;br /&gt;
|| LENOVO || 946154G || ThinkPad R60 || LENOVO || 946154G || Not Available || LENOVO || Not Available || LENOVO || 7CET49WW (1.04 ) || 05/11/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7CHT16WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9460MR2&lt;br /&gt;
|| LENOVO || 9460MR2 || ThinkPad R60 || LENOVO || 9460MR2 || Not Available || LENOVO || Not Available || LENOVO || 7CETC6WW (2.16 ) || 04/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-DXG&lt;br /&gt;
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETB6WW (2.06 ) || 10/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9461-DXG&lt;br /&gt;
|| LENOVO || 9461DXG || ThinkPad R60 || LENOVO || 9461DXG || Not Available || LENOVO || Not Available || LENOVO || 7CETD2WW (2.22 ) || 05/28/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7CHT22WW-1.10    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}} 9462-GAG&lt;br /&gt;
|| LENOVO || 9462GAG || ThinkPad R60 || LENOVO || 9462GAG || Not Available || LENOVO || Not Available || LENOVO || 7CETB5WW (2.05 ) || 10/13/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7CHT21WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8918-5QG&lt;br /&gt;
|| LENOVO || 89185QG || ThinkPad R61 || LENOVO || 89185QG || Not Available || LENOVO || Not Available || LENOVO || 7KETA7WW (2.07 ) || 12/06/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-W4P&lt;br /&gt;
|| LENOVO || 8919W4P || ThinkPad R61 || LENOVO || 8919W4P || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| According to the sticker on the bottom of the notebook as well as according to Lenovo web it is 8919-CTO subtype&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-W6X&lt;br /&gt;
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KET71WW (1.21 ) || 08/22/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-W6X&lt;br /&gt;
|| LENOVO || 8919W6X || ThinkPad R61 || LENOVO || 8919W6X || Not Available || LENOVO || Not Available || LENOVO || 7KETB9WW (2.19 ) || 06/05/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8919-DFG&lt;br /&gt;
|| LENOVO || 8918DFG || ThinkPad R61 || LENOVO || 8918DFG || Not Available || LENOVO || Not Available || LENOVO || 7KETA9WW (2.09 ) || 12/27/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 8943-DMG&lt;br /&gt;
|| LENOVO || 8943DMG || ThinkPad R61 || LENOVO || 8943DMG || Not Available || LENOVO || Not Available || LENOVO || 7QET34WW (1.16 ) || 03/24/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7QHT15WW-1.00    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7732-4TG&lt;br /&gt;
|| LENOVO || 77324TG || ThinkPad R61 || LENOVO || 77324TG || Not Available || LENOVO || Not Available || LENOVO || 7LET51WW (1.21 ) || 08/22/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7732-4TG&lt;br /&gt;
|| LENOVO || 77324TG || ThinkPad R61 || LENOVO || 77324TG || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7732-NEG&lt;br /&gt;
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETB6WW (2.16 ) || 04/16/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7732-NEG&lt;br /&gt;
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7732-NEG&lt;br /&gt;
|| LENOVO || 7732NEG || ThinkPad R61 || LENOVO || 7732NEG || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7733-1ES&lt;br /&gt;
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7733-1ES&lt;br /&gt;
|| LENOVO || 77331ES || ThinkPad R61 || LENOVO || 77331ES || Not Available || LENOVO || Not Available || LENOVO || 7LETB4WW (2.14 ) || 03/24/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61}} 7733-A82 &lt;br /&gt;
|| LENOVO || 7733A82 || ThinkPad R61/R61i || LENOVO || 7733A82 || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Intel graphics, 14.1&amp;quot; WXGA, Atheros wireless&lt;br /&gt;
|-&lt;br /&gt;
| {{R61i}} 7732-A12&lt;br /&gt;
|| LENOVO || 7732A12 || ThinkPad R61i || LENOVO || 7732A12 || Not Available || LENOVO || Not Available || LENOVO || 7KET76WW (1.26 ) || 10/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Prior to Flashing&lt;br /&gt;
|-&lt;br /&gt;
| {{R61i}} 7732-A12&lt;br /&gt;
|| LENOVO || 7732A12 || ThinkPad R61i || LENOVO || 7732A12 || Not Available || LENOVO || Not Available || LENOVO || 7KETC8WW (2.28) || 05/26/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Post Flashing&lt;br /&gt;
|-&lt;br /&gt;
| {{R61i}} 7650-D7G&lt;br /&gt;
|| LENOVO || 7650D7G || ThinkPad R61e || LENOVO || 7650D7G || Not Available || LENOVO || Not Available || LENOVO || 7PETB0WW (2.10 ) || 01/21/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R61e}} 7650-E6G&lt;br /&gt;
|| LENOVO || 7650E6G || ThinkPad R61e || LENOVO || 7650E6G || Not Available || LENOVO || Not Available || LENOVO || 7PETB2WW (2.12 ) || 02/20/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R400}} 7439-A85&lt;br /&gt;
|| LENOVO || 7439A85 || ThinkPad R400 || LENOVO || 7439A85 || Not Available || LENOVO || Not Available || LENOVO || 7UET45WW (1.15 ) || 09/08/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R400}} 7443-TPA&lt;br /&gt;
|| LENOVO || 7443TPA || ThinkPad R400 || LENOVO || 7443TPA || Not Available || LENOVO || Not Available || LENOVO || 7UET49WW (1.19 ) || 10/17/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{R400}} 7443-TPA&lt;br /&gt;
|| LENOVO || 7443TPA || ThinkPad R400 || LENOVO || 7443TPA || Not Available || LENOVO || Not Available || LENOVO || 7UET50WW (1.20 ) || 10/30/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====S series====&lt;br /&gt;
|-&lt;br /&gt;
| {{s30}} 2639-4WJ&lt;br /&gt;
|| IBM || 26394WJ || Not Available || IBM || 2609BS1 || Not Available || IBM || Not Available || IBM || 18ET45WW (1.45) || 07/10/2001&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====SL series====&lt;br /&gt;
|-&lt;br /&gt;
| {{SL410}} 2842-7PU || LENOVO || 28427PU || ThinkPad SL410 || LENOVO || 28427PU || Not Available || LENOVO || Not Available || LENOVO || 6JET69WW (1.27 ) || 11/30/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6JHT54WW-1.174000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{SL410}} 2842-XF2 || LENOVO || 28427PU || ThinkPad SL410 || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6JET58WW (1.16 ) || 09/17/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6JHT48WW-1.168000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{SL500}} 2746-3ZG || LENOVO || 27463ZG || ThinkPad SL500 || LENOVO || BOXSTER || 6AET&amp;lt;br /&amp;gt;42WW || LENOVO || 6AET&amp;lt;br /&amp;gt;42WW || LENOVO || 6AET42WW || 08/04/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|IdeaPad EC and BIOS.  This is an IdeaPad in disguise.}}&lt;br /&gt;
|-&lt;br /&gt;
| {{SL500}} 2746-4CG || LENOVO || 27464CG || ThinkPad SL500 || LENOVO || BOXSTER    || 6AET&amp;lt;br /&amp;gt;41WW || LENOVO || 6AET&amp;lt;br /&amp;gt;41WW || LENOVO || 6AET41WW || 07/10/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|IdeaPad EC and BIOS.  This is an IdeaPad in disguise.}}&lt;br /&gt;
|-&lt;br /&gt;
| {{SL500}} 2764-EAG || LENOVO || 2746EAG || ThinkPad SL || LENOVO  || 2746EAG || 6AET&amp;lt;br /&amp;gt;58WW || LENOVO || 6AET&amp;lt;br /&amp;gt;58WW || LENOVO || 6AET58WW || 05/29/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{SL510}} 2847-7MG&lt;br /&gt;
|| LENOVO || 28477MG || ThinkPad SL510 || LENOVO || ? || not available || LENOVO || not available || LENOVO || 6JET72WW (1.30 ) || 01/26/2010 &lt;br /&gt;
|| Handle 0x0018, DMI type 11, 5 bytes String 1: IBM ThinkPad Embedded Controller -[6JHT57WW-1.177000]-&lt;br /&gt;
|| {{T-WARN|IdeaPad EC and BIOS.}}&lt;br /&gt;
|-&lt;br /&gt;
| {{SL400}} 2743-Rk3&lt;br /&gt;
|| LENOVO                         || 2743RK3 || ThinkPad SL || LENOVO                        || 2743RK3    || LENOVO 6AET59WW || LENOVO                        || LENOVO 6AET59WW || LENOVO || 6AET59WW || 08/26/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====T series====&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}} 2647-UC2&lt;br /&gt;
|| IBM || 2647UC2 || Not Available || IBM || 2647UC2 || Not Available || IBM || Not Available || IBM || IYET45WW (1.08a) || 12/21/1999&lt;br /&gt;
||&lt;br /&gt;
|| {{T-WARN|Very outdated BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T21}} 2647-8AG &lt;br /&gt;
|| IBM || 26478AG || Not Available || IBM || 26478AG || Not Available || IBM || Not Available || IBM || KZET22WW (1.04a) || 01/19/2001 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T21}} 2647-9AU&lt;br /&gt;
|| IBM || 26479AU || Not Available || IBM || 26479AU || Not Available || IBM || Not Available || IBM || KZET33WW (1.15 ) || 03/28/2003&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T21}} 2647-8AG &lt;br /&gt;
|| IBM || 26478AG || Not Available || IBM || 26478AG || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004 &lt;br /&gt;
||&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T21}} 2647-8AU&lt;br /&gt;
|| IBM || 26478AU || Not Available || IBM || 26478AU || Not Available || IBM || Not Available || IBM || KZET34WW (1.16 ) || 04/28/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T21}} 2647-8GG&lt;br /&gt;
|| IBM || 26478GG || Not Available || IBM || 26478GG || Not Available || IBM || Not Available || IBM || 16ET29WW (1.09 ) || 02/28/2002 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T22}} 2647-4EG&lt;br /&gt;
|| IBM || 26474EG || Not Available || IBM || 26474EG || Not Available || IBM || Not Available || IBM || 16ET31WW (1.11 ) || 03/20/2003 &lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T22}} 2647-8EU&lt;br /&gt;
|| IBM || 26478EU || Not Available || IBM || 26478EU || Not Available || IBM || Not Available || IBM || 16ET32WW (1.12 ) || 04/27/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T23}} 2647&lt;br /&gt;
|| IBM || 2647 || Not Available || IBM || 2647 || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13) || 07/23/2002 &lt;br /&gt;
|| &lt;br /&gt;
|| Manufactured in Greenock, Scotland&lt;br /&gt;
|- &lt;br /&gt;
| {{T23}} 2647&lt;br /&gt;
|| IBM || 2647 || Not Available || IBM || 2647 || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20) || 07/23/2002 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;As above. Handle 0x0024, DMI type 11, 5 bytes OEM Strings String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T23}} 2647-4MG&lt;br /&gt;
|| IBM || 26474MG || Not Available || IBM || 26474MG || Not Available || IBM || Not Available || IBM || 1AET58WW (1.14a) || 09/11/2002 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T23}} 2647-4MG&lt;br /&gt;
|| IBM || 26474MG || Not Available || IBM || 26474MG || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20 ) || 10/18/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T23}} 2647-4NU&lt;br /&gt;
|| IBM || 26474NU || Not Available || IBM || 26474NU || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2647-8MG&lt;br /&gt;
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET56WW (1.13 ) || 07/02/2002&lt;br /&gt;
||&lt;br /&gt;
|| Missing EC string, this bug is known to be fixed in latest BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2647-8MG&lt;br /&gt;
|| IBM || 26478MG || Not Available || IBM || 26478MG || Not Available || IBM || Not Available || IBM || 1AET62WW (1.18 ) || 07/06/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2648-DG1&lt;br /&gt;
|| IBM || 2648DG1 || Not Available || IBM || 2648DG1 || Not Available || IBM || Not Available || IBM || 1AET61WW (1.17 ) || 05/29/2003 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T23}} 2648-DG1&lt;br /&gt;
|| IBM || 2648DG1 || Not Available || IBM || 2648DG1 || Not Available || IBM || Not Available || IBM || 1AET64WW (1.20 ) || 10/18/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1AHT23WW-1.06a   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-21U&lt;br /&gt;
|| IBM || 236621U || Not Available || IBM || 236621U || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-82U&lt;br /&gt;
|| IBM || 236682U || Not Available || IBM || 236682U || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-85G&lt;br /&gt;
|| IBM || 236685G || Not Available || IBM || 236685G || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1IHT18WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-GU1&lt;br /&gt;
|| IBM || 2366GU1 || Not Available || IBM || 2366GU1 || Not Available || IBM || Not Available || IBM || 1IET69WW (2.08 ) || 06/11/2004&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1IHT19WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}} 2366-JBU&lt;br /&gt;
|| IBM || 2366JBU || Not Available || IBM || 2366JBU || Not Available || IBM || Not Available || IBM || 1IET71WW (2.10 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1IHT20WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2378-D2U&lt;br /&gt;
|| IBM || 2378D2U || ThinkPad T40 || IBM || 2378D2U || Not Available || IBM || Not Available || IBM || 1RETC2WW (3.03 ) || 04/07/2004&lt;br /&gt;
|| &lt;br /&gt;
|| Missing EC string, this bug is known to be fixed in latest BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2374-DG1&lt;br /&gt;
|| IBM || 2374DG1 || ThinkPad T40  || IBM || 2374DG1 || Not Available || IBM || Not Available || IBM || 1RET73WW (2.02 ) || 08/21/2003&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2374-DG1&lt;br /&gt;
|| IBM || 2374DG1 || ThinkPad T40  || IBM || 2374DG1 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte    String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2373-42G&lt;br /&gt;
|| IBM || 237342G || ThinkPad T40  || IBM || 237342G || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003&lt;br /&gt;
||&lt;br /&gt;
|| [[ATI Mobility Radeon 7500]]&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2373-NG5&lt;br /&gt;
|| IBM || 2373NG5 || ThinkPad T40  || IBM || 2373NG5 || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2373-NG5&lt;br /&gt;
|| IBM || 2373NG5 || ThinkPad T40  || IBM || 2373NG5 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}} 2374-2G9&lt;br /&gt;
|| IBM || 23742G9 || ThinkPad T40  || IBM || 23742G9 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After upgrade from Bios v. 3.16 and ecp 3.02&lt;br /&gt;
|-&lt;br /&gt;
| {{T40p}} 2373-G1G&lt;br /&gt;
|| IBM || 2373G1G || ThinkPad T40p || IBM || 2373G1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/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;
|-&lt;br /&gt;
| {{T40p}} 2373-5U5&lt;br /&gt;
|| IBM || 23735U5 || ThinkPad T40p || IBM || 23735U5 || Not Available || IBM || Not Available || IBM || 1RETDGWW (3.12 ) || 10/18/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT70WW-3.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T40p}} 2373-5U5&lt;br /&gt;
|| IBM || 23735U5 || ThinkPad T40p || IBM || 23735U5 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T41}} 2373-9FG&lt;br /&gt;
|| IBM || 23739FG || ThinkPad T41  || IBM || 23739FG || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T41}} 2373-W63&lt;br /&gt;
|| IBM || 2373W63 || ThinkPad T41  || IBM || 2373W63 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-XNX&lt;br /&gt;
|| IBM || 2373XNX || ThinkPad T41  || IBM || 2373XNX || 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;
|-&lt;br /&gt;
| {{T41}} 2373-2FG&lt;br /&gt;
|| IBM || 23732FG || ThinkPad T41 || IBM || 23732FG || Not Available || IBM || Not Available || IBM || 1RET84WW (2.11 ) || 10/30/2003&lt;br /&gt;
||&lt;br /&gt;
|| Missing EC string, this bug is known to be fixed in latest BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-7FG&lt;br /&gt;
|| IBM || 23737FG || ThinkPad T41  || IBM || 23737FG || Not Available || IBM || Not Available || IBM || 1RET87WW (2.14 ) || 01/26/2004&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-7FG&lt;br /&gt;
|| IBM || 23737FG || ThinkPad T41  || IBM || 23737FG || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After upgrade from BIOS v. 2.14&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-TG5&lt;br /&gt;
|| IBM || 2373TG5 || ThinkPad T41  || IBM || 2373TG5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2374-312&lt;br /&gt;
|| IBM || 2374312 || ThinkPad T41  || IBM || 2374312 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2379-DJU&lt;br /&gt;
|| IBM || 2379DJU || ThinkPad T41  || IBM || 2379DJU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-A10&lt;br /&gt;
|| IBM || 2373A10 || ThinkPad T41  || IBM || 2373A10 || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41}} 2373-A10&lt;br /&gt;
|| IBM || 2373A10 || ThinkPad T41  || IBM || 2373A10 || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After upgrade from BIOS v. 3.20&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373-GHG &lt;br /&gt;
|| IBM || 2373GHG || ThinkPad T41p || IBM || 2373GHG || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373-GEG&lt;br /&gt;
|| IBM || 2373GEG || ThinkPad T41p || IBM || 2373GEG || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt; Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T41p}} 2373-GJJ&lt;br /&gt;
|| IBM || 2373GJJ || ThinkPad T41p || IBM || 2373GJJ || Not Available || IBM || Not Available || IBM || 1RETDOWW (3.20 ) || 02/27/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373-FWG&lt;br /&gt;
|| IBM || 2373FWG || ThinkPad T42 || IBM || 2373FWG || Not Available || IBM || Not Available || IBM || 1RETDHWW (3.13 ) || 10/29/2004&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;
|-&lt;br /&gt;
| {{T42}} 2373-JTU&lt;br /&gt;
|| IBM || 2373JTU || ThinkPad T42 || IBM || 2373JTU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373-M1G&lt;br /&gt;
|| IBM || 2373M1G || ThinkPad T42 || IBM || 2373M1G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/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;
|-&lt;br /&gt;
| {{T42}} 2373-VJA&lt;br /&gt;
|| IBM || 2373VJA || ThinkPad T42 || IBM || 2373VJA || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2373-F2G&lt;br /&gt;
|| IBM || 2373F2G || ThinkPad T42 || IBM || 2373F2G || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} [[2373-CTO]]&lt;br /&gt;
|| IBM || 2373YPL || ThinkPad T42 || IBM || 2373YPL || Not Available || IBM || Not Available || IBM || 1RETDLWW (3.17 ) || 07/27/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}} before BIOS Update&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} [[2373-CTO]]&lt;br /&gt;
|| IBM || 2373YPL || ThinkPad T42 || IBM || 2373YPL || Not Available || IBM || Not Available || IBM || 1RETDRWW (3.23 ) || 06/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| after BIOS Update / current BIOS+EC&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2374-4WU&lt;br /&gt;
|| IBM || 23744WU || ThinkPad T42 || IBM || 23744WU || Not Available || IBM || Not Available || IBM || 1RETDNWW (3.19 ) || 10/13/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T42}} 2374-WEH&lt;br /&gt;
|| IBM || 2374WEH || ThinkPad T42 || IBM || 2374WEH || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42}} 2378-FVU&lt;br /&gt;
|| IBM || 2378FVU || ThinkPad T42 || IBM || 2378FVU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2373-A64&lt;br /&gt;
|| IBM || 2373A64 || ThinkPad T42p || IBM || 2373A64 || Not Available || IBM || Not Available || IBM || 1RETDIWW (3.14 ) || 01/20/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byteString 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2373-KXU&lt;br /&gt;
|| IBM || 2373KXU || ThinkPad T42p || IBM || 2373KXU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2373-KUU&lt;br /&gt;
|| IBM || 2373KUU || ThinkPad T42p || IBM || 2373KUU || Not Available || IBM || Not Available || IBM || 1RETDMWW (3.18 ) || 09/15/2005&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;
|-&lt;br /&gt;
| {{T42p}} 2373-GYG&lt;br /&gt;
|| IBM || 2373GYG || ThinkPad T42p || IBM || 2373GYG || 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;
|-&lt;br /&gt;
| {{T42p}} 2374-CP5&lt;br /&gt;
|| IBM || 2374CP5 || ThinkPad T42p || IBM || 2374CP5 || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2379-DYU&lt;br /&gt;
|| IBM || 2379DYU || ThinkPad T42p || IBM || 2379DYU || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T42p}} 2372-Q2G&lt;br /&gt;
|| IBM || 2373Q2G || ThinkPad T42p || IBM || 2373Q2G || Not Available || IBM || Not Available || IBM || 1RETDPWW (3.21 ) || 06/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1RHT71WW-3.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-4AG&lt;br /&gt;
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET64WW (1.24 ) || 02/13/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[70HT27WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-4AG&lt;br /&gt;
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET62WW (1.22 ) || 05/29/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 1871-4AG&lt;br /&gt;
|| IBM || 18714AG || ThinkPad T43 || IBM || 18714AG || Not Available || IBM || Not Available || IBM || 70ET69WW (1.29 ) || 05/29/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[70HT28WW-1.05]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T43}} 1871-F1G&lt;br /&gt;
|| IBM || 1871F1G || ThinkPad T43 || IBM || 1871F1G || Not Available || IBM || Not Available || IBM || 70ET61WW (1.21 ) || 11/01/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[70HT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2686-DGU&lt;br /&gt;
|| IBM || 2686DGU || ThinkPad T43 || IBM || 2686DGU || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2669-WE5&lt;br /&gt;
|| IBM || 2669WE5 || ThinkPad T43 || IBM || 2669WE5 || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| User reports this is really a 2669-CEU with 1GB RAM + BlueTooth, and not a 2669-WE5 (unverified if this makes sense)&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2668-WEW&lt;br /&gt;
|| IBM || 2668WEW || ThinkPad T43 || IBM || 2668WEW || Not Available || IBM || Not Available || IBM || 1YET56WW (1.21 ) || 07/06/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2668-WSY&lt;br /&gt;
|| IBM || 2668WSY || ThinkPad T43 || IBM || 2668WSY || Not Available || IBM || Not Available || IBM || 1YET62WW (1.27 ) || 05/18/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2668-74G&lt;br /&gt;
|| IBM || 266874G || ThinkPad T43 || IBM || 266874G || Not Available || IBM || Not Available || IBM || 1YET57WW (1.22 ) || 07/20/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43}} 2668-CTO &lt;br /&gt;
|| IBM || 2668Y82 || ThinkPad T43p || IBM || 2668Y82 || Not Available || IBM || Not Available || IBM || 1YET65WW (1.29 ) || 08/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1YHT29WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T43p}} 2668-G2G&lt;br /&gt;
|| IBM || 2668G2G || ThinkPad T43p || IBM || 2668G2G || Not Available || IBM || Not Available || IBM || 1YET47WW (1.08 ) || 06/09/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43p}} 2668-H1G&lt;br /&gt;
|| IBM || 2668H1G || ThinkPad T43p || IBM || 2668H1G || Not Available || IBM || Not Available || IBM || 1YET45WW (1.06a) || 06/02/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43p}} 2687-D5U&lt;br /&gt;
|| IBM || 2687D5U || ThinkPad T43p || IBM || 2687D5U || Not Available || IBM || Not Available || IBM || 1YET59WW (1.24 ) || 11/07/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T43p}} 2668-F8G&lt;br /&gt;
|| IBM || 2668F8G || ThinkPad T43p || IBM || 2668F8G || Not Available || IBM || Not Available || IBM || 1YET57WW (1.22 ) || 07/20/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1YHT26WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1951-24G&lt;br /&gt;
|| LENOVO || 195124G || ThinkPad T60 || LENOVO || 195124G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1952-W5R&lt;br /&gt;
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ET61WW (1.06 ) || 05/24/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1952-W5R&lt;br /&gt;
|| LENOVO || 1952W5R || ThinkPad T60 || LENOVO || 1952W5R || Not Available || LENOVO || Not Available || LENOVO || 79ETD2WW (2.12 ) || 04/12/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-49G&lt;br /&gt;
|| LENOVO || 200749G || ThinkPad T60 || LENOVO || 200749G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-77G&lt;br /&gt;
|| LENOVO || 200777G || ThinkPad T60 || LENOVO || 200777G || Not Available || LENOVO || Not Available || LENOVO || 79ETD1WW (2.11 ) || 03/15/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-FSG&lt;br /&gt;
|| LENOVO || 2007FSG || ThinkPad T60 || LENOVO || 2007FSG || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1951-CA2&lt;br /&gt;
|| LENOVO || 1951CA2 || ThinkPad T60 || LENOVO || 1951CA2 || Not Available || LENOVO || Not Available || LENOVO || 79ETD9WW (2.19 ) || 09/19/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2623-D6U&lt;br /&gt;
|| LENOVO || 2623D6U || ThinkPad T60 || LENOVO || 2623D6U || Not Available || LENOVO || Not Available || LENOVO || 79ET56WW (1.02 ) || 02/28/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[79HT42WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-63G&lt;br /&gt;
|| LENOVO || 200763G || ThinkPad T60 || LENOVO || 200763G || Not Available || LENOVO || Not Available || LENOVO || 79ET65WW (1.09a) || 07/27/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-63G&lt;br /&gt;
|| LENOVO || 200763G || ThinkPad T60 || LENOVO || 200763G || Not Available || LENOVO || Not Available || LENOVO || 79ETE5WW (2.25 ) || 08/27/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 2007-BF3&lt;br /&gt;
|| LENOVO || 2007BF3 || ThinkPad T60 || LENOVO || 2007BF3 || Not Available || LENOVO || Not Available || LENOVO || 79ETD7WW (2.17 ) || 08/23/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 8744-HCG&lt;br /&gt;
|| LENOVO || 8744HCG || ThinkPad T60 || LENOVO || 8744HCG || Not Available || LENOVO || Not Available || LENOVO || 7IET25WW (1.06 ) || 03/15/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 8744-HCG&lt;br /&gt;
|| LENOVO || 8744HCG || ThinkPad T60 || LENOVO || 8744HCG || Not Available || LENOVO || Not Available || LENOVO || 7IET37WW (1.18 ) || 04/01/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}} 1951-CZ1&lt;br /&gt;
|| LENOVO || 1951CZ1 || ThinkPad T60 || LENOVO || 1951CZ1 || Not Available || LENOVO || Not Available || LENOVO || 79ETE3WW (2.23 ) || 09/12/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-83U&lt;br /&gt;
|| LENOVO || 200783U || ThinkPad T60p || LENOVO || 200783U || Not Available || LENOVO || Not Available || LENOVO || 79ET60WW (1.05a) || 04/18/2006&lt;br /&gt;
|| &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;
|-&lt;br /&gt;
| {{T60p}} 2007-93G&lt;br /&gt;
|| LENOVO || 200793G || ThinkPad T60p || LENOVO || 200793G || Not Available || LENOVO || Not Available || LENOVO || 79ET62WW (1.07 ) || 06/12/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[79HT45WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93U&lt;br /&gt;
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET66WW (1.10 ) || 08/02/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93U&lt;br /&gt;
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-93U&lt;br /&gt;
|| LENOVO || 200793U || ThinkPad T60p || LENOVO || 200793U || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2007-ZK4&lt;br /&gt;
|| LENOVO || 2007ZK4 || ThinkPad T60p || LENOVO || 2007ZK4 || Not Available || LENOVO || Not Available || LENOVO || 79ETD3WW (2.13 ) || 04/30/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2613-ESU&lt;br /&gt;
|| LENOVO || 2613ESU || ThinkPad T60p || LENOVO || 2613ESU || Not Available || LENOVO || Not Available || LENOVO || 79ET67WW (1.11 ) || 08/29/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT48WW-1.05b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T60p}} 2623-DDU&lt;br /&gt;
|| LENOVO || 2623DDU || ThinkPad T60p || LENOVO || 2623DDU || Not Available || LENOVO || Not Available || LENOVO || 79ETC3WW (2.03 ) || 11/10/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[79HT50WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6457-W2C&lt;br /&gt;
|| LENOVO || 6457W2C || ThinkPad T61 || LENOVO || 6457W2C || Not Available || LENOVO || Not Available || LENOVO || 7LETB0WW (2.10 ) || 01/21/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6460-EBG&lt;br /&gt;
|| LENOVO || 6460EBG || ThinkPad T61 || LENOVO || 6460EBG || Not Available || LENOVO || Not Available || LENOVO || 7LETB7WW (2.17 ) || 04/25/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6460-EBG&lt;br /&gt;
| LENOVO || 6460EBG || ThinkPad T61 || LENOVO || 6460EBG || Not Available || LENOVO || Not Available || LENOVO || 7LETC4WW (2.24 ) || 08/15/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6465-CTO&lt;br /&gt;
|| LENOVO || 6465CTO || ThinkPad T61 || LENOVO || 6465CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETB2WW (2.12 ) || 02/20/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 6466-9MG&lt;br /&gt;
|| LENOVO || 64669MG || ThinkPad T61 || LENOVO || 64669MG || Not Available || LENOVO || Not Available || LENOVO || 7LETC7WW (2.27 ) || 04/08/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 7659-W13&lt;br /&gt;
|| LENOVO || 7659W13 || ThinkPad T61 || LENOVO || 7659W13 || Not Available || LENOVO || Not Available || LENOVO || 7LET44WW (1.14 ) || 06/27/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 7659-W13&lt;br /&gt;
|| LENOVO || 7659W13 || ThinkPad T61 || LENOVO || 7659W13 || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 ) || 05/11/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 7662-XDU&lt;br /&gt;
|| LENOVO || 7662XDU || ThinkPad T61 || LENOVO || 7662XDU || 7662XDU|| LENOVO || Not Available || LENOVO || 7LET37WW (1.07 ) || 04/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 bytes   String 1: IBM ThinkPad Embedded Controller -[7KHT19WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|BIOS and EC firmware have different IDs}}&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 7661-A56&lt;br /&gt;
|| LENOVO || 7661A56 || ThinkPad T61 || LENOVO || 7661A56 || Not Available || LENOVO || Not Available || LENOVO || 7LET39WW (1.09 ) || 05/14/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT21WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 8895-WFD&lt;br /&gt;
|| LENOVO || 8895WFD || ThinkPad T61 || LENOVO || 8895WFJ || Not Available || LENOVO || Not Available || LENOVO || 7LETC5WW (2.25 ) || 11/14/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 bytes        String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 8897-CTO&lt;br /&gt;
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET52WW (1.22 ) || 08/27/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61}} 8897-CTO&lt;br /&gt;
|| LENOVO || 8897CTO || ThinkPad T61 || LENOVO || 8897CTO || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{T61p}} 6457-B64&lt;br /&gt;
|| LENOVO || 6457B64 || ThinkPad T61p || LENOVO || 6457B64 || Not Available || LENOVO || Not Available || LENOVO || 7LETC1WW (2.21 ) || 07/01/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T61p}} 6459-A12&lt;br /&gt;
|| LENOVO || 6459A12 || ThinkPad T61p || LENOVO || 6459A12 || Not Available || LENOVO || Not Available || LENOVO || 7LET56WW (1.26 ) || 10/18/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT22WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T61p}} 6459-CTO&lt;br /&gt;
|| LENOVO || 6459CTO || ThinkPad T61p || LENOVO || 6459CTO || Not Available || LENOVO || Not Available || LENOVO || 7LETC6WW (2.26 )  || 05/11/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7KHT24WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{T400}} 6474-1EG&lt;br /&gt;
|| LENOVO || 64741EG || ThinkPad T400 || LENOVO || 64741EG || Not Available || LENOVO || Not Available || LENOVO || 7UET48WW (1.18 ) || 10/09/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    &lt;br /&gt;
]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T400}} 6474-19G&lt;br /&gt;
|| LENOVO || 647419G || ThinkPad T400 || LENOVO || 647419G || Not Available || LENOVO || Not Available || LENOVO || 7UET61WW (2.07 ) || 02/13/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T400}} 6475-FM4 &lt;br /&gt;
|| LENOVO || 6475FM4 || ThinkPad T400 || LENOVO || 6475FM4 || Not Available || LENOVO || Not Available || LENOVO || 7UET43WW (1.13 ) || 08/19/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Before BIOS update&lt;br /&gt;
|-&lt;br /&gt;
| {{T400}} 6475-FM4 &lt;br /&gt;
|| LENOVO || 6475FM4 || ThinkPad T400 || LENOVO || 6475FM4 || Not Available || LENOVO || Not Available || LENOVO || 7UET64WW (2.12 ) || 03/13/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After BIOS update&lt;br /&gt;
|-&lt;br /&gt;
| {{T400}} 2765-22G&lt;br /&gt;
|| LENOVO || 276522G || ThinkPad T400 || LENOVO || 276522G || Not Available || LENOVO || Not Available || LENOVO || 7UET88WW (3.18 ) || 05/27/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T400s}} 2801-CTO&lt;br /&gt;
|| LENOVO || 2801CTO || ThinkPad T400s || LENOVO || 2801CTO || Not Available || LENOVO || Not Available || LENOVO || 6HET21WW (1.06 ) || 07/27/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6HHT13WW-1.01]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T400s}} 2815-2SG&lt;br /&gt;
|| LENOVO || 28152SG || ThinkPad T400s || LENOVO || 28152SG || Not Available || LENOVO || Not Available || LENOVO || 6HET17WW (1.02 ) || 05/18/2009 No code specified for -e.&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T410}} 2522-AT6&lt;br /&gt;
|| LENOVO || 2522AT6 || ThinkPad T410 || LENOVO || 2522AT6 || Not Available || LENOVO || Not Available || LENOVO || 6IET65WW (1.25 ) || 06/07/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6IHT35WW-1.10    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T410}} 2522-2PG&lt;br /&gt;
|| LENOVO || 25222PG || ThinkPad T410 || LENOVO || 25222PG || Not Available || LENOVO || Not Available || LENOVO || 6IET55WW (1.15 ) || 03/24/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6IHT32WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Before BIOS Update&lt;br /&gt;
|-&lt;br /&gt;
| {{T410}} 2522-2PG&lt;br /&gt;
|| LENOVO || 25222PG || ThinkPad T410 || LENOVO || 25222PG || Not Available || LENOVO || Not Available || LENOVO || 6IET75WW (1.35 ) || 02/01/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6IHT39WW-1.14    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After BIOS Update&lt;br /&gt;
|-&lt;br /&gt;
| {{T410s}} 2912-39G&lt;br /&gt;
|| LENOVO || 291239G || ThinkPad T410s || LENOVO || 291239G || Not Available || LENOVO || Not Available || LENOVO || 6UET27WW (1.05 ) || 01/14/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6UHT24WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T410s}} 2912-W69&lt;br /&gt;
|| LENOVO || 2912W69 || ThinkPad T410s || LENOVO || 2912W69 || Not Available || LENOVO || Not Available || LENOVO || 6UET61WW (1.41 ) || 10/27/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6UHT31WW-1.12    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T420}} 4180W1H&lt;br /&gt;
|| LENOVO || 4180W1H || ThinkPad T420 || LENOVO || 4180W1H || Not Available || LENOVO || Not Available || LENOVO || 83ET56WW (1.26 ) || 05/13/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After BIOS Update&lt;br /&gt;
|-&lt;br /&gt;
| {{T420s}} 4174BH4&lt;br /&gt;
|| LENOVO || 4174BH4 || ThinkPad T420s || LENOVO || 4174BH4 || Not Available || LENOVO || Not Available || LENOVO || 8CET46WW (1.26 ) || 07/11/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Old BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{T420s}} 4174BH4&lt;br /&gt;
|| LENOVO || 4174BH4 || ThinkPad T420s || LENOVO || 4174BH4 || Not Available || LENOVO || Not Available || LENOVO || 8CET51WW (1.31 ) || 11/29/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After BIOS upgrade&lt;br /&gt;
|-&lt;br /&gt;
| {{T420s}} 4171-6SG&lt;br /&gt;
|| LENOVO || 41716SG || ThinkPad T420s || LENOVO || 41716SG || Not Available || LENOVO || Not Available || LENOVO || 8CET44WW (1.24 ) || 05/23/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Old BIOS&lt;br /&gt;
|-&lt;br /&gt;
| {{T420s}} 4171-6SG&lt;br /&gt;
|| LENOVO || 41716SG || ThinkPad T420s || LENOVO || 41716SG || Not Available || LENOVO || Not Available || LENOVO || 8CET48WW (1.28 ) || 08/15/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After BIOS Upgrade&lt;br /&gt;
|-&lt;br /&gt;
| {{T500}} 2055-A81&lt;br /&gt;
|| LENOVO || 2055A81 || ThinkPad T500 || LENOVO || 2055A81 || Not Available || LENOVO || Not Available || LENOVO || 6FET46WW (1.16 ) || 09/24/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T500}} 2055-A81&lt;br /&gt;
|| LENOVO || 2055A81 || ThinkPad T500 || LENOVO || 2055A81 || Not Available || LENOVO || Not Available || LENOVO || 6FET50WW (1.20 ) || 10/30/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{T500}} 2055-45G&lt;br /&gt;
|| LENOVO || 205545G || ThinkPad T500 || LENOVO || 205545G || Not Available || LENOVO || Not Available || LENOVO || 6FET49WW (1.19 ) || 10/17/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T500}} 2089-AZG&lt;br /&gt;
|| LENOVO || 2089AZ9 || ThinkPad T500 || LENOVO || 2089AZ9 || Not Available || LENOVO || Not Available || LENOVO || 6FET79WW (3.09 ) || 10/02/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte    String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|Outdated BIOS}} before BIOS Update&lt;br /&gt;
|-&lt;br /&gt;
| {{T500}} 2089-AZG&lt;br /&gt;
|| LENOVO || 2089AZ9 || ThinkPad T500 || LENOVO || 2089AZ9 || Not Available || LENOVO || Not Available || LENOVO || 6FET87WW (3.17 ) || 12/03/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT16WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| after BIOS Update / current BIOS+EC&lt;br /&gt;
|-&lt;br /&gt;
| {{T500}} 2242-CTO&lt;br /&gt;
|| LENOVO || 2242CTO || ThinkPad T500 || LENOVO || 2242CTO || Not Available || LENOVO || Not Available || LENOVO || 6FET66WW (2.16 ) || 04/22/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{T510}} 4313-CTO&lt;br /&gt;
|| LENOVO || 4313CTO || ThinkPad T510 || LENOVO || 4313CTO || Not Available || LENOVO || Not Available || LENOVO || 6MET42WW (1.05 ) || 12/22/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6MHT32WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T510}} 4313-CTO&lt;br /&gt;
|| LENOVO || 4313CTO || ThinkPad T510 || LENOVO || 4313CTO || Not Available || LENOVO || Not Available || LENOVO || 6MET49WW (1.12 ) || 02/22/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6MHT33WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T510}} 4349-5KG&lt;br /&gt;
|| LENOVO || 43495KG || ThinkPad T510 || LENOVO || 43495KG || Not Available || LENOVO || Not Available || LENOVO || 6MET87WW (1.47 ) || 07/14/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6MHT46WW-1.21    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{T520}}&lt;br /&gt;
|| LENOVO || 42433ZG || ThinkPad T520 || LENOVO || 42433ZG || Not Available || LENOVO || Not Available || LENOVO || 8AET46WW (1.26 ) || 05/18/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
====W series====&lt;br /&gt;
|-&lt;br /&gt;
| {{W500}} 4061-AW9 &lt;br /&gt;
|| LENOVO || 4061AW9 || ThinkPad W500 || LENOVO || 4061AW9 || Not Available || LENOVO || Not Available || LENOVO || 6FET79WW (3.09 ) || 10/02/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7VHT14WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{W510}} 4318-CTO&lt;br /&gt;
|| LENOVO || 4318CTO || ThinkPad W510 || LENOVO || 4318CTO || Not Available || LENOVO || Not Available || LENOVO || 6NET74WW (1.34 ) || 10/27/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6MHT43WW-1.18    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{W510}} 4319-4CU&lt;br /&gt;
|| LENOVO || 43194CU || ThinkPad W510 || LENOVO || 43194CU || Not Available || LENOVO || Not Available || LENOVO || 6NET61WW (1.24 ) || 06/07/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6MHT38WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{W510}} 4319-3CG &lt;br /&gt;
|| LENOVO || 43193CG || ThinkPad W510 || LENOVO || 43193CG || Not Available || LENOVO || Not Available || LENOVO || 6NET46WW (1.09 ) || 01/20/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6MHT31WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{W510}} 4389-W1B &lt;br /&gt;
|| LENOVO || 4389W1B || ThinkPad W510 || LENOVO || 4389W1B || Not Available || LENOVO || Not Available || LENOVO || 6NET76WW (1.37 ) || 02/24/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6MHT44WW-1.19    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{W700}} 2757-CTO&lt;br /&gt;
|| LENOVO || 2757CTO || ThinkPad W700 || LENOVO || 2757CTO || Not Available || LENOVO || Not Available || LENOVO || 7ZETA8WW (2.08 ) || 09/24/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7ZHT22WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{W700}} 2757-CTO&lt;br /&gt;
|| LENOVO || 2757CTO || ThinkPad W700 || LENOVO || 2757CTO || Not Available || LENOVO || Not Available || LENOVO || 7ZETB1WW (2.11 ) || 03/12/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[7ZHT24WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====X series====&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}} 2662-31G&lt;br /&gt;
|| IBM || 266231G || Not Available || IBM || 266231G || Not Available || IBM || Not Available || IBM || IZET9DWW (2.25 ) || 04/17/2003&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}} 2662-32G&lt;br /&gt;
|| IBM || 266232G || Not Available || IBM || 266232G || Not Available || IBM || Not Available || IBM || IZET9AWW (2.22 ) || 09/11/2002&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X22}} 2662-95U&lt;br /&gt;
|| IBM || 266295U || Not Available || IBM || 266295U || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X23}} 2662-EBG&lt;br /&gt;
|| IBM || 2662EBG || Not Available || IBM || 2662EBG || Not Available || IBM || Not Available || IBM || 1DET70WW (1.32 ) || 06/10/2003&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X24}} 2662-MPU&lt;br /&gt;
|| IBM || 62MPUFX || Not Available || IBM || 62MPUFX || Not Available || IBM || Not Available || IBM || 1DET67WW (1.29 ) || 12/18/2002&lt;br /&gt;
||&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}} 2672-42G&lt;br /&gt;
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET42WW (1.03 ) || 12/02/2002 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}} 2672-42G&lt;br /&gt;
|| IBM || 267242G || Not Available || IBM || 267242G || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| {{X30}} 2672-4BU&lt;br /&gt;
|| IBM || 26724BU || Not Available || IBM || 26724BU || Not Available || IBM || Not Available || IBM || 1KET44WW (1.05 ) || 05/30/2003 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{X30}} 2672-4HU&lt;br /&gt;
|| IBM || 26724HU || Not Available || IBM || 26724HU || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}} 2672-PG3&lt;br /&gt;
|| IBM || 2672PG3 || Not Available || IBM || 2672PG3 || Not Available || IBM || Not Available || IBM || 1KET48WW (1.09 ) || 06/16/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1KHT18WW-1.06    ]-&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-C2G&lt;br /&gt;
|| IBM || 2672C2G || Not Available || IBM || 2672C2G || Not Available || IBM || Not Available || IBM || 1QET36WW (1.04a) || 06/30/2003 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-C2G&lt;br /&gt;
|| IBM || 2672C2G || ThinkPad X31 || IBM || 2672C2G || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{X31}} 2672-CEG&lt;br /&gt;
|| IBM || 2672CEG || Not Available || IBM || 2672CEG || Not Available || IBM || Not Available || IBM || 1QET36WW (1.04a) || 06/30/2003 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-CEG&lt;br /&gt;
|| IBM || 2672CEG || ThinkPad X31 || IBM || 2672CEG || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-JXU&lt;br /&gt;
|| IBM || 2672JXU || ThinkPad X31 || IBM || 2672JXU || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-FG2&lt;br /&gt;
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-FG2&lt;br /&gt;
|| IBM || 2672FG2 || ThinkPad X31 || IBM || 2672FG2 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X31}} 2672-PG9&lt;br /&gt;
|| IBM || 2672PG9 || ThinkPad X31 || IBM || 2672PG9 || Not Available || IBM || Not Available || IBM || 1QET73WW (2.11 ) || 02/13/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT16WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Before update&lt;br /&gt;
|- &lt;br /&gt;
| {{X31}} 2672-PG9&lt;br /&gt;
|| IBM || 2672PG9 || ThinkPad X31 || IBM || 2672PG9 || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After update&lt;br /&gt;
|- &lt;br /&gt;
| {{X31}} 2673-C2G&lt;br /&gt;
|| IBM || 2673C2G || ThinkPad X31 || IBM || 2673C2G || Not Available || IBM || Not Available || IBM || 1QET65WW (2.03 ) || 10/10/2003 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{X31}} 2673-C2G&lt;br /&gt;
|| IBM || 2673C2G || ThinkPad X31 || IBM || 2673C2G || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X32}} 2884-A3U&lt;br /&gt;
|| IBM || 2884A3U || ThinkPad X32 || IBM || 2884A3U || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X32}} 2672-M3G&lt;br /&gt;
|| IBM || 2672M3G || ThinkPad X32 || IBM || 2672M3G || Not Available || IBM || Not Available || IBM || 1QET94WW (3.00d) || 01/23/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT22WW-1.07b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X32}} 2673-M4U&lt;br /&gt;
|| IBM || 2673M4U || ThinkPad X32 || IBM || 2673M4U || Not Available || IBM || Not Available || IBM || 1QET97WW (3.02 ) || 09/22/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1QHT23WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2386-7JG&lt;br /&gt;
|| IBM || 23717JG || ThinkPad X40 || IBM || 23717JG || Not Available || IBM || Not Available || IBM || 1UETD1WW (2.06 ) || 03/01/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2386-H4G&lt;br /&gt;
|| IBM || 2386H4G || ThinkPad X40 || IBM || 2386H4G || Not Available || IBM || Not Available || IBM || 1UET92WW (1.42 ) || 09/16/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-8NG&lt;br /&gt;
|| IBM || 23718NG || ThinkPad X40 || IBM || 23718NG || Not Available || IBM || Not Available || IBM || 1UETB7WW (1.67 ) || 07/15/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1UHT58WW-1.12    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-Y29&lt;br /&gt;
|| IBM || 2371Y29 || ThinkPad X40 || IBM || 2371Y29 || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1UHTA6WW-1.56    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-W9F&lt;br /&gt;
|| IBM || 2371W9F || ThinkPad X40 || IBM || 2371W9F || Not Available || IBM || Not Available || IBM || 1UETC8WW (2.03 ) || 09/28/2005 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-W9F&lt;br /&gt;
|| IBM || 2371W9F || ThinkPad X40 || IBM || 2371W9F || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-Y1Y&lt;br /&gt;
|| IBM || 2371Y1Y || ThinkPad X40 || IBM || 2371Y1Y || Not Available || IBM || Not Available || IBM || 1UET93WW (1.43 ) || 10/13/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-Y1Y&lt;br /&gt;
|| IBM || 2371Y1Y || ThinkPad X40 || IBM || 2371Y1Y || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}} 2371-Y2A &lt;br /&gt;
|| IBM || 2371Y2A || ThinkPad X40 || IBM || 2371Y2A || Not Available || IBM || Not Available || IBM || 1UET93WW (1.43 ) || 10/13/2004 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1UHT82WW-1.32    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{X40}} 2371-Y2A&lt;br /&gt;
|| IBM || 2371Y2A || ThinkPad X40 || IBM || 2371Y2A || Not Available || IBM || Not Available || IBM || 1UETD3WW (2.08 ) || 12/21/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0024, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[1UHTB2WW-1.62    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{X41}} 2525-65G&lt;br /&gt;
|| IBM || 252565G || ThinkPad X41 || IBM || 252565G || Not Available || IBM || Not Available || IBM || 74ET63WW (2.08 ) || 10/17/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}} 2525-FAG&lt;br /&gt;
|| IBM || 2525FAG || ThinkPad X41 || IBM || 2525FAG || Not Available || IBM || Not Available || IBM || 74ET61WW (2.06 ) || 03/14/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[74HT26WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}} 2525-FAG&lt;br /&gt;
|| IBM || 2525FAG || ThinkPad X41 || IBM || 2525FAG || Not Available || IBM || Not Available || IBM || 74ET64WW (2.09 ) || 12/14/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[74HT27WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}} 2525-HU1&lt;br /&gt;
|| IBM || 2525HU1 || ThinkPad X41 || IBM || 2525HU1 || Not Available || IBM || Not Available || IBM || 74ET48WW (1.17a) || 06/07/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[74HT25WW-1.00    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41t}} 1866-CRG&lt;br /&gt;
|| IBM || 1866CRG || ThinkPad X41 Tablet || IBM || 1866CRG || Not Available || IBM || Not Available || IBM || 75ET60WW (2.06 ) || 12/19/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41t}} 1866-CTO&lt;br /&gt;
|| IBM || 1866CTO || ThinkPad X41 Tablet || IBM || 1866CTO || Not Available || IBM || Not Available || IBM || 75ET60WW (2.06 ) || 12/19/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[75HT20WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41t}} 1866-WSF&lt;br /&gt;
|| IBM || 1866WSF || ThinkPad X41 Tablet || IBM || 1866WSF || Not Available || IBM || Not Available || IBM || 75ET57WW (2.03 ) || 06/14/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 bytes   String 1: IBM ThinkPad Embedded Controller -[75HT20WW-1.02  ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X41t}} 1869-CLG&lt;br /&gt;
|| IBM || 1869CLG || ThinkPad X41 Tablet || IBM || 1869CLG || Not Available || IBM || Not Available || IBM || 75ET56WW (2.02 ) || 03/14/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0025, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[75HT19WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1709-47U&lt;br /&gt;
|| LENOVO || 170947U || ThinkPad X60 || LENOVO || 170947U || 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;
| {{X60}} 1709-GDJ&lt;br /&gt;
|| LENOVO || 1709GDJ || ThinkPad X60 || LENOVO || 1709GDJ || Not Available || LENOVO || Not Available || LENOVO || 7BETC2WW (2.03 ) || 10/16/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT36WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1706-B69&lt;br /&gt;
|| LENOVO || 1706B69 || ThinkPad X60 || LENOVO || 1706B69 || Not Available || LENOVO || Not Available || LENOVO || 7BETC8WW (2.09 ) || 03/14/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1706-GMG&lt;br /&gt;
|| LENOVO || 1706GMG || ThinkPad X60 || LENOVO || 1706GMG || Not Available || LENOVO || Not Available || LENOVO || 7BETC4WW (2.05 ) || 11/17/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT37WW-1.10    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}} 1706-GMG&lt;br /&gt;
|| LENOVO || 1706GMG || ThinkPad X60 || LENOVO || 1706GMG || Not Available || LENOVO || Not Available || LENOVO || 7BETD7WW (2.18 ) || 11/20/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&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;
| {{X60s}} 1702-5FG&lt;br /&gt;
|| LENOVO || 17025FG || ThinkPad X60s || LENOVO || 17025FG || Not Available || LENOVO || Not Available || LENOVO || 7BET49WW (1.09 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT34WW-1.07    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-56G&lt;br /&gt;
|| LENOVO || 170456G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BET43WW (1.03 ) || 02/13/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7BHT28WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-56G&lt;br /&gt;
|| LENOVO || 1704-56G || ThinkPad X60s || LENOVO || 170456G || Not Available || LENOVO || Not Available || LENOVO || 7BETD5WW (2.16 ) || 03/31/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-5UG&lt;br /&gt;
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD2WW (2.13 ) || 08/10/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-5UG&lt;br /&gt;
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD3WW (2.14 ) || 10/04/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60s}} 1704-5UG&lt;br /&gt;
|| LENOVO || 17045UG || ThinkPad X60s || LENOVO || 17045UG || Not Available || LENOVO || Not Available || LENOVO || 7BETD7WW (2.18 ) || 11/20/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7BHT40WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}} 6365-CTO&lt;br /&gt;
|| LENOVO || 6365CTO || ThinkPad X60 Tablet || LENOVO || 6365CTO || Not Available || LENOVO || Not Available || LENOVO || 7JET25WW (1.10 ) || 08/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0023, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}} 6363-J3G&lt;br /&gt;
|| LENOVO || 6363J3G || ThinkPad X60 Tablet || LENOVO || 6363J3G || Not Available || LENOVO || Not Available || LENOVO || 7JET28WW (1.13 ) || 03/31/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0023, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7JHT13WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| A mean bitch to set up, nothing really worked out of the box :(&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}} 6363A7G&lt;br /&gt;
|| LENOVO || 6363A7G || ThinkPad X60 Tablet || LENOVO || 6363A7G || Not Available || LENOVO || Not Available || LENOVO || 7JET19WW (1.04 ) || 12/14/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0023, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7JHT12WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61}} 7675-4KU&lt;br /&gt;
|| LENOVO || 76754KU || ThinkPad X61 || LENOVO || 76754KU || Not Available || LENOVO || Not Available || LENOVO || 7NET30WW (1.11 ) || 11/15/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61}} 7675-7KU&lt;br /&gt;
|| LENOVO || 76757KU || ThinkPad X61 || LENOVO || 76757KU || Not Available || LENOVO || Not Available || LENOVO || 7NETB1WW (2.11 ) || 03/24/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 bytes   IBM ThinkPad Embedded Controller -[7MHT25WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61s}} 7668-CTO&lt;br /&gt;
|| LENOVO || 7668CTO || ThinkPad X61s || LENOVO || 7668CTO || Not Available || LENOVO || Not Available || LENOVO || 7NET25WW (1.06 ) || 07/02/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7MHT24WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61s}} 7669-29G&lt;br /&gt;
|| LENOVO || 766929G || ThinkPad X61s || LENOVO || 766929G || Not Available || LENOVO || Not Available || LENOVO || 7NET21WW (1.02 ) || 04/23/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7MHT23WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61s}} 7669-29G&lt;br /&gt;
|| LENOVO || 766929G || ThinkPad X61s || LENOVO || 766929G || Not Available || LENOVO || Not Available || LENOVO || 7NETB9WW (2.19 ) || 11/27/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61s}} 7667-C56&lt;br /&gt;
|| LENOVO || 7667C56 || ThinkPad X61s || LENOVO || 7667C56 || Not Available || LENOVO || Not Available || LENOVO || 7NETB2WW (2.12 ) || 04/18/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61s}} 7667-34G&lt;br /&gt;
|| LENOVO || 766734G || ThinkPad X61s || LENOVO || 766734G || Not Available || LENOVO || Not Available || LENOVO || 7NETB9WW (2.19 ) || 11/27/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7MHT25WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7762-94G&lt;br /&gt;
|| LENOVO || 776294G || ThinkPad X61 Tablet || LENOVO || 776294G || Not Available || LENOVO || Not Available || LENOVO || 7SET38WW (1.24 ) || 10/12/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7762-95G&lt;br /&gt;
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET22WW (1.08 ) || 11/15/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7762-95G&lt;br /&gt;
|| LENOVO || 776295G || ThinkPad X61 Tablet || LENOVO || 776295G || Not Available || LENOVO || Not Available || LENOVO || 7SET36WW (1.22 ) || 11/27/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7762-98U&lt;br /&gt;
|| LENOVO || 776298U || ThinkPad X61 Tablet || LENOVO || 776298U || Not Available || LENOVO || Not Available || LENOVO || 7SET34WW (1.20 ) || 07/29/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7764-CTO&lt;br /&gt;
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET18WW (1.04 ) || 07/03/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7764-CTO&lt;br /&gt;
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET23WW (1.09 ) || 12/28/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X61t}} 7764-CTO&lt;br /&gt;
|| LENOVO || 7764CTO || ThinkPad X61 Tablet || LENOVO || 7764CTO || Not Available || LENOVO || Not Available || LENOVO || 7SET39WW (1.25 ) || 03/22/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001F, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7RHT16WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-27G&lt;br /&gt;
|| LENOVO || 287627G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET21WW (1.04 ) || 12/18/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6XHT20WW-1.165000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-27G&lt;br /&gt;
|| LENOVO || 287627G || ThinkPad X100e || LENOVO || 287627G || Not Available || LENOVO || Not Available || LENOVO || 6XET47WW (1.30 ) || 12/30/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6XHT43WW-1.183000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 3508-4UG&lt;br /&gt;
|| LENOVO || 35084UG || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-W1U&lt;br /&gt;
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-W1U&lt;br /&gt;
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || 2876W1U || Not Available || LENOVO || Not Available || LENOVO || 6XET44WW (1.27 ) || 07/21/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6XHT42WW-1.182000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-W1U&lt;br /&gt;
|| LENOVO || 2876W1U || ThinkPad X100e || LENOVO || 2876W1U || Not Available || LENOVO || Not Available || LENOVO || 6XET48WW (1.31 ) || 02/17/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6XHT44WW-1.184000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-55G&lt;br /&gt;
|| LENOVO || 287655G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET33WW (1.12 ) || 02/11/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6XHT31WW-1.171000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} 2876-55G&lt;br /&gt;
|| LENOVO || 287655G || ThinkPad X100e || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6XET36WW (1.20a) || 03/12/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6XHT36WW-1.176000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{X100e}} L625 3508-5EG&lt;br /&gt;
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET38WW (1.22 ) || 04/09/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6XHT38WW-1.178000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Dual-Core&lt;br /&gt;
|- &lt;br /&gt;
| {{X100e}} L625 3508-5EG&lt;br /&gt;
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET39WW (1.23 ) || 04/30/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6XHT39WW-1.179000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| {{X100e}} L625 3508-5EG&lt;br /&gt;
|| LENOVO || 35085EG || ThinkPad X100e || LENOVO || 35085EG || Not Available || LENOVO || Not Available || LENOVO || 6XET41WW (1.25 ) || 06/02/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6XHT40WW-1.180000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Dual-Core&lt;br /&gt;
|-&lt;br /&gt;
| {{X200}} 7454-CTO&lt;br /&gt;
|| LENOVO || 7454CTO || ThinkPad X200 || LENOVO || 7454CTO || Not Available || LENOVO || Not Available || LENOVO || 6DET38WW (2.02 ) || 12/19/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7XHT21WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200}} 7454-CTO&lt;br /&gt;
|| LENOVO || 7454CTO || ThinkPad X200 || LENOVO || 7454CTO || Not Available || LENOVO || Not Available || LENOVO || 6DET40WW (2.04 ) || 02/13/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200}} 7458-E46&lt;br /&gt;
|| LENOVO || 7458E46 || ThinkPad X200 || LENOVO || 7458E46 || Not Available || LENOVO || Not Available || LENOVO || 7XET57WW (3.07 ) || 08/13/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}} 7466-3SG&lt;br /&gt;
|| LENOVO || 74663SG || ThinkPad X200s || LENOVO || 74663SG || Not Available || LENOVO || Not Available || LENOVO || 6DET64WW (3.14 ) || 06/23/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}}&lt;br /&gt;
|| LENOVO || 74695HG || ThinkPad X200s || LENOVO || 74695HG || Not Available || LENOVO || Not Available || LENOVO || 6DET33WW (1.10 ) || 10/27/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7XHT21WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}} &lt;br /&gt;
|| LENOVO || 7469WDR || ThinkPad X200s || LENOVO || 7469WDR || Not Available || LENOVO || Not Available || LENOVO || 6DET44WW (2.08 ) || 04/22/2009 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7XHT22WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{X200s}} 7469-88G&lt;br /&gt;
|| LENOVO || 746988G || ThinkPad X200s || LENOVO || 746988G || Not Available || LENOVO || Not Available || LENOVO || 6DET64WW (3.14 ) || 06/23/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X200 Tablet}} 7449-F9U&lt;br /&gt;
|| LENOVO || 7449F9U || ThinkPad X200 Tablet || LENOVO || 7449F9U || Not Available || LENOVO || Not Available || LENOVO || 7WET24WW (1.02 ) || 09/09/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x001D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7WHT14WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3626-W7V&lt;br /&gt;
|| LENOVO || 3626W7V || ThinkPad X201 || LENOVO || 3626W7V || Not Available || LENOVO || Not Available || LENOVO || 6QET44WW (1.14 ) || 04/20/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3626-PN2&lt;br /&gt;
|| LENOVO || 3626PN3 || ThinkPad X201 || LENOVO || 3626PN3 || Not Available || LENOVO || Not Available || LENOVO || 6QET53WW (1.23 ) || 09/15/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6QHT30WW-1.11    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3680-ZCZ&lt;br /&gt;
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT31WW-1.12    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3680-ZCZ&lt;br /&gt;
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET64WW (1.34 ) || 02/24/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT32WW-1.13    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3680-ZCZ&lt;br /&gt;
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET67WW (1.37 ) || 06/29/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201}} 3680-ZCZ&lt;br /&gt;
|| LENOVO || 3680ZCZ || ThinkPad X201 || LENOVO || 3680ZCZ || Not Available || LENOVO || Not Available || LENOVO || 6QET68WW (1.38 ) || 12/01/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT33WW-1.14    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201s}} 5129-CTO&lt;br /&gt;
|| LENOVO || 5129CTO || ThinkPad X201s || LENOVO || 5129CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET44WW (1.14 ) || 04/20/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{X201 Tablet}} 3093-3YG&lt;br /&gt;
|| LENOVO || 30933YG || ThinkPad X201 Tablet || LENOVO || 30933YG || Not Available || LENOVO || Not Available || LENOVO || 6QET45WW (1.15 ) || 04/26/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6SHT28WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201 Tablet}} 3093-W11&lt;br /&gt;
|| LENOVO || 3093W11 || ThinkPad X201 Tablet || LENOVO || 3093W11 || Not Available || LENOVO || Not Available || LENOVO || 6QET46WW (1.16 ) || 06/07/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6SHT28WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X201 Tablet}} 0831-CTO&lt;br /&gt;
|| LENOVO || 0831CTO || ThinkPad X201 Tablet || LENOVO || 0831CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET61WW (1.31 ) || 10/26/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6SHT31WW-1.12    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| Before BIOS update&lt;br /&gt;
|- &lt;br /&gt;
| {{X201 Tablet}} 0831-CTO&lt;br /&gt;
|| LENOVO || 0831CTO || ThinkPad X201 Tablet || LENOVO || 0831CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET67WW (1.37 ) || 06/29/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6SHT33WW-1.14    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| After BIOS update from 1.31&lt;br /&gt;
|-&lt;br /&gt;
| {{X201i}} 3249-CTO &lt;br /&gt;
|| LENOVO || 3249CTO || ThinkPad X201 || LENOVO || 3249CTO || Not Available || LENOVO || Not Available || LENOVO || 6QET45WW (1.15 ) || 04/26/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0027, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6QHT28WW-1.09    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X220}}&lt;br /&gt;
|| LENOVO || 4287CTO || ThinkPad X220 || LENOVO || 4287CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET41WW (1.11 ) || 03/28/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{X220}}&lt;br /&gt;
|| LENOVO || 4286CTO || ThinkPad X220 || LENOVO || 4286CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET51WW (1.21 ) || 08/02/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X220}}&lt;br /&gt;
|| LENOVO || 4286CTO || ThinkPad X220 || LENOVO || 4286CTO || Not Available || LENOVO || Not Available || LENOVO || 8DET56WW (1.26 ) || 12/01/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{X220 Tablet}}&lt;br /&gt;
|| LENOVO || 42992PG || ThinkPad X220 Tablet || LENOVO || 42992PG || Not Available || LENOVO || Not Available || LENOVO || 8DET47WW (1.17 ) || 05/31/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X220 Tablet}}&lt;br /&gt;
|| LENOVO || 4299AS6 || ThinkPad X220 Tablet || LENOVO || 4299AS6 || Not Available || LENOVO || Not Available || LENOVO || 8DET49WW (1.19 ) || 07/01/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X300}} 6478-14G&lt;br /&gt;
|| LENOVO || 647814G || ThinkPad X300 || LENOVO || 647814G || Not Available || LENOVO || Not Available || LENOVO || 7TET23WW (1.00d) || 01/17/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X300}} 6478-18M&lt;br /&gt;
|| LENOVO || 647818M || ThinkPad X300 || LENOVO || 647818M || Not Available || LENOVO || Not Available || LENOVO || 7TET26WW (1.02a) || 02/27/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X300}} 6477-17G&lt;br /&gt;
|| LENOVO || 647717G || ThinkPad X300 || LENOVO || 647717G || Not Available || LENOVO || Not Available || LENOVO || 7TET33WW (1.07 ) || &lt;br /&gt;
07/02/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7THT15WW-1.00c  ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X300}} 6477-17G&lt;br /&gt;
|| LENOVO || 647717G || ThinkPad X300 || LENOVO || 647717G || Not Available || LENOVO || Not Available || LENOVO || 7TET35WW (1.09 ) || 01/20/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0022, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7THT16WW-1.01 ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X301}} 2777-CTO&lt;br /&gt;
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET19WW (1.00g) || 07/30/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6EHT07WW-1.00b   ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{X301}} 2777-CTO&lt;br /&gt;
|| LENOVO || 2777CTO || ThinkPad X301 || LENOVO || 2777CTO || Not Available || LENOVO || Not Available || LENOVO || 6EET21WW (1.02 ) || 10/09/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0028, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6EHT09WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| {{X1}} 1294-2NG&lt;br /&gt;
|| LENOVO || 12942NG || ThinkPad X1 || LENOVO || 12942NG || Not Available || LENOVO || Not Available || LENOVO || 8MET18WW (1.06 ) || 05/19/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 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}} 2511-FEU&lt;br /&gt;
|| IBM || 2511FEU || ThinkPad Z60t || IBM || 2511FEU || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;     String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60t}} 2511-FFG&lt;br /&gt;
|| IBM || 2511FFG || ThinkPad Z60t || IBM || 2511FFG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[77HT57WW-1.17    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{Z60m}} 2529-ETG&lt;br /&gt;
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET59WW (1.19 ) || 04/24/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[77HT54WW-1.14    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}} 2529-ETG&lt;br /&gt;
|| IBM || 2529ETG || ThinkPad Z60m || IBM || 2529ETG || Not Available || IBM || Not Available || IBM || 77ET64WW (1.24 ) || 02/27/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}} 2529-FBG&lt;br /&gt;
|| IBM || 2529FBG || ThinkPad Z60m || IBM || 2529FBG || Not Available || IBM || Not Available || IBM || 77ET62WW (1.22 ) || 11/21/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0029, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[77HT58WW-1.18    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| {{Z60m}} 2529-FKG&lt;br /&gt;
|| IBM || 2529FKG || ThinkPad Z60m || IBM || 2529FKG || Not Available || IBM || Not Available || IBM || 77ET42WW (1.05 ) || 11/19/2005&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;String 1: IBM ThinkPad Embedded Controller -[77HT28WW-1.02    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9453-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET48WW (1.08 ) || 05/26/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;String 1: IBM ThinkPad Embedded Controller -[7FHT21WW-1.03    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9452-8QG&lt;br /&gt;
|| LENOVO || 94528QG || ThinkPad Z61m || LENOVO || 94528QG || Not Available || LENOVO || Not Available || LENOVO || 7FETA4WW (2.22 ) || 10/19/2007&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9450-H9G&lt;br /&gt;
|| LENOVO || 9450H9G || ThinkPad Z61m || LENOVO || 9450H9G || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{Z61m}} 9452-W5Q&lt;br /&gt;
|| LENOVO || 9452W5Q || ThinkPad Z61m || LENOVO || 9452W5Q || Not Available || LENOVO || Not Available || LENOVO || 7FETA6WW (2.24 ) || 03/13/2008&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9543-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9543-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET93WW (2.11 ) || 11/10/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61m}} 9453-A11&lt;br /&gt;
|| LENOVO || 9453A11 || ThinkPad Z61m || LENOVO || 9453A11 || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61p}} 9453-A12&lt;br /&gt;
|| LENOVO || 9453A12 || ThinkPad Z61p || LENOVO || 9453A12 || Not Available || LENOVO || Not Available || LENOVO || 7FET45WW (1.05 ) || 04/20/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 bytes  String 1: IBM ThinkPad Embedded Controller -[7FHT19WW-1.01    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61p}} 9450-3AU&lt;br /&gt;
|| LENOVO || 94503AU || ThinkPad Z61p || LENOVO || 94503AU || Not Available || LENOVO || Not Available || LENOVO || 7FET53WW (1.13 ) || 07/27/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT23WW-1.05    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-2CU&lt;br /&gt;
|| LENOVO || 94402CU || ThinkPad Z61t || LENOVO || 94402CU || Not Available || LENOVO || Not Available || LENOVO || 7FET50WW (1.10 ) || 06/20/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT22WW-1.04    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9443-4GG&lt;br /&gt;
|| LENOVO || 94434GG || ThinkPad Z61t || LENOVO || 94434GG || Not Available || LENOVO || Not Available || LENOVO || 7FET96WW (2.14 ) || 12/25/2006 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET91WW (2.09 ) || 11/01/2006&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FET99WW (2.17 ) || 04/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA0WW (2.18 ) || 05/17/2007 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA7WW (2.25 ) || 06/03/2008 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61t}} 9440-CTO&lt;br /&gt;
|| LENOVO || 9440CTO || ThinkPad Z61t || LENOVO || 9440CTO || Not Available || LENOVO || Not Available || LENOVO || 7FETA9WW (2.27 ) || 08/26/2009&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0026, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[7FHT26WW-1.08    ]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====Lenovo 3000 series====&lt;br /&gt;
|-&lt;br /&gt;
| [[:Category:Lenovo 3000| Lenovo 3000]] N200 TY2BAFR&lt;br /&gt;
|| LENOVO || 0769BAG || 3000 N200 || LENOVO || IEL10 || Reference || No Enclosure || N/A || LENOVO || 68ET24WW || 08/15/2007 &lt;br /&gt;
||&lt;br /&gt;
|| {{T-WARN|Non-ThinkPad EC firmware and BIOS}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====Edge series====&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 13 AMD L325&lt;br /&gt;
|| LENOVO || 01976GG || ThinkPad Edge 13&amp;quot;IAL#          || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET25WW (1.12 ) || 01/15/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6ZHT19WW-1.164000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| Thinkpad Edge 13 AMD L325&lt;br /&gt;
|| LENOVO || 01972MG || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET32WW (1.19 ) || 07/23/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6ZHT26WW-1.171000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| Thinkpad Edge 13 AMD L625&lt;br /&gt;
|| LENOVO || 019734Q || ThinkPad Edge 13&amp;quot;IAL#          || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET24WW (1.11 ) || 01/14/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6ZHT19WW-1.164000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| Thinkpad Edge 13 AMD L625&lt;br /&gt;
|| LENOVO || 019734Q || ThinkPad Edge 13&amp;quot;IAL#          || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET31WW (1.18 ) || 05/25/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6ZHT24WW-1.169000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| Thinkpad Edge 13 AMD L625&lt;br /&gt;
|| LENOVO || 019734Q || ThinkPad Edge 13&amp;quot;IAL#          || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET34WW (1.21 ) || 01/07/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6ZHT27WW-1.172000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| Thinkpad Edge 13&amp;quot; AMD&lt;br /&gt;
|| LENOVO || 0197RW3 || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET32WW (1.19 ) || 07/23/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6ZHT26WW-1.171000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 13,3&amp;quot; AMD &lt;br /&gt;
|| LENOVO || 01976WG || ThinkPad Edge || LENOVO || INVALID || Not Available || LENOVO || Not Available || LENOVO || 6ZET30WW (1.17 ) || 04/29/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x000D, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6ZHT23WW-1.168000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 13,3&amp;quot; NUD2EGE&lt;br /&gt;
|| LENOVO || 01962EG || ThinkPad Edge 13&amp;quot;IAL#          || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET25WW (1.10 ) || 01/15/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6YHT19WW-1.164000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 13,3&amp;quot; NUD2EGE&lt;br /&gt;
|| LENOVO || 01962EG || ThinkPad Edge || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET33WW (1.16 ) || 09/10/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6YHT26WW-1.171000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 13,3&amp;quot; NUD2EGE&lt;br /&gt;
|| LENOVO || 01962EG || ThinkPad Edge                  || LENOVO || 01962EG || Not Available || LENOVO || Not Available || LENOVO || 6YET29WW (1.12 ) || 03/05/2010&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6YHT21WW-1.166000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
|| ThinkPad Edge 13,3&amp;quot; Intel&lt;br /&gt;
|| LENOVO || 0196CTO || ThinkPad Edge                  || LENOVO || 0196CTO || Not Available || LENOVO || Not Available || LENOVO || 6YET30WW (1.13 ) || 04/29/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6YHT23WW-1.168000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 13,3&amp;quot; Intel NUD5MMH&lt;br /&gt;
|| LENOVO || 01965MG || ThinkPad Edge || LENOVO || 01965MG || Not Available || LENOVO || Not Available || LENOVO || 6YET30WW (1.13 ) || 04/29/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[6YHT23WW-1.168000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 13,3&amp;quot; Intel NUD5PGE&lt;br /&gt;
|| LENOVO || 01965PG || ThinkPad Edge || LENOVO || 01965PG || Not Available || LENOVO || Not Available || LENOVO || 6YET29WW (1.12 ) || 03/05/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6YHT21WW-1.166000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 13,3&amp;quot; Intel NUD5PGE&lt;br /&gt;
|| LENOVO || 01965PG || ThinkPad Edge || LENOVO || 01965PG || Not Available || LENOVO || Not Available || LENOVO || 6YET33WW (1.16 ) || 09/10/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0018, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[6YHT26WW-1.171000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 14&amp;quot; NVP3YRT&lt;br /&gt;
|| LENOVO || 05783YG || ThinkPad Edge || LENOVO || 05783YG || Not Available || LENOVO || Not Available || LENOVO || 80ET29WW (1.06 ) || 03/24/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[80HT22WW-1.166000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 14&amp;quot; 639D640&lt;br /&gt;
|| LENOVO || 0578A19 || ThinkPad Edge || LENOVO || 0578A19 || Not Available || LENOVO || Not Available || LENOVO || 80ET29WW (1.06 ) || 03/24/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[80HT22WW-1.166000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| &lt;br /&gt;
|- &lt;br /&gt;
| ThinkPad Edge 14&amp;quot; Intel i3&lt;br /&gt;
|| LENOVO || 0578N6U || ThinkPad Edge || LENOVO || 0578N6U || Not Available || LENOVO || Not Available || LENOVO || 80ET49WW (1.26 ) || 04/13/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT35WW-1.190000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 14&amp;quot; Intel i3&lt;br /&gt;
|| LENOVO || 0578N6U || ThinkPad Edge || LENOVO || 0578N6U || Not Available || LENOVO || Not Available || LENOVO || 80ET52WW (1.29 ) || 05/30/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte String 1: IBM ThinkPad Embedded Controller -[80HT37WW-1.210000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|| {{T-WARN|Modded Lenovo BIOS with wifi whitelist removed}}&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 14&amp;quot; Intel i5 M430&lt;br /&gt;
|| LENOVO || 0578BHA || ThinkPad Edge || LENOVO || 0578BHA || Not Available || LENOVO || Not Available || LENOVO || 80ET31WW (1.08 ) || 04/28/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[80HT23WW-1.167000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge 14&amp;quot; Intel i3 M370&lt;br /&gt;
|| LENOVO || 0578JHG || ThinkPad Edge || LENOVO || 0578JHG || Not Available || LENOVO || Not Available || LENOVO || 80ET43WW (1.20 ) || 11/17/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[80HT33WW-1.177000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
|| ThinkPad Edge 15&amp;quot; NVL7VGE&lt;br /&gt;
|| LENOVO || 03017VG || ThinkPad Edge || LENOVO || 03017VG || Not Available || LENOVO || Not Available || LENOVO || 80ET36WW (1.13 ) || 06/04/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[80HT29WW-1.173000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 15&amp;quot; 0301RJ7&lt;br /&gt;
|| LENOVO || 0301RJ7 || ThinkPad Edge || LENOVO || 0301RJ7 || Not Available || LENOVO || Not Available || LENOVO || 80ET43WW (1.20 ) || 11/17/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[80HT33WW-1.177000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 15&amp;quot; AMD&lt;br /&gt;
|| LENOVO || 0302CTO || ThinkPad Edge || LENOVO || 0302CTO || Not Available || LENOVO || Not Available || LENOVO || 82ET63WW (2.04 ) || 01/07/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0015, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[82HT28WW-1.174000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|| ThinkPad Edge 15&amp;quot; AMD&lt;br /&gt;
|| LENOVO || 0302CTO || ThinkPad Edge || LENOVO || 0302CTO || Not Available || LENOVO || Not Available || LENOVO || 82ET75WW (2.15 ) || 01/28/2011 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0015, DMI type 11, 5 byte	String 1: IBM ThinkPad Embedded Controller -[82HT28WW-1.174000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|- &lt;br /&gt;
| ThinkPad Edge E420s&lt;br /&gt;
|| LENOVO || 440128U || ThinkPad Edge E420s || LENOVO || 440128U || Not Available || LENOVO || Not Available || LENOVO || 8JET26WW (1.08 ) || 03/24/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
| ThinkPad Edge E420s&lt;br /&gt;
|| LENOVO || 440128U || ThinkPad Edge E420s || LENOVO || 440128U || Not Available || LENOVO || Not Available || LENOVO || 8JET29WW (1.11 ) || 05/10/2011&lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=14 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
====L series====&lt;br /&gt;
|-&lt;br /&gt;
| L512&lt;br /&gt;
|| LENOVO || 4444CTO || ThinkPad L512 || LENOVO || 4444CTO || Not Available || LENOVO || Not Available || LENOVO || 81ET40WW (1.16 ) || 06/22/2010 &lt;br /&gt;
|| &amp;lt;nowiki&amp;gt;Handle 0x0019, DMI type 11, 5 byte   String 1: IBM ThinkPad Embedded Controller -[81HT25WW-1.168000]-&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adding entries==&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Edit&amp;quot; link on the appropriate series above and add an entry of the following form:&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;
:&amp;lt;tt&amp;gt;||&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;|-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where the two data lines are generated 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; \&lt;br /&gt;
  | perl -pe 's/\n/\\n/' ; done; \&lt;br /&gt;
  sudo /usr/sbin/dmidecode | perl -0777 -ne \&lt;br /&gt;
  'm/\n(.*).\n.*\n(.*Embedded Cont.*)\n/i; print &amp;quot;\n|| &amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;/nowiki&amp;gt;nowiki&amp;gt;$1$2&amp;lt;/nowiki&amp;gt;\n&amp;quot;'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you can, please also test [[tp_smapi]] and update its [[tp_smapi#Model-specific_status|model-specific status table]].&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;br /&gt;
* [[thinkpad-acpi]] driver quirk list&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Docking_Solutions&amp;diff=53614</id>
		<title>Docking Solutions</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Docking_Solutions&amp;diff=53614"/>
		<updated>2012-04-13T12:49:16Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* External display issues */&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; |&lt;br /&gt;
Docks allow users to connect a variety of external peripherals simply by attaching their ThinkPad to the dock. &lt;br /&gt;
|}&lt;br /&gt;
==Linux support==&lt;br /&gt;
With recent distributions, docking and undocking should function out of the box. You can monitor this by running {{cmdroot|udevadm monitor}} and when you dock or press the undock button you should see a flurry of events.&lt;br /&gt;
&lt;br /&gt;
There are some issues though&lt;br /&gt;
&lt;br /&gt;
====No event on undock====&lt;br /&gt;
&lt;br /&gt;
In some cases you may not get any events on undock. This is due to the ACPI dock drivers only registering the first logical Dock port they encounter and in some rare cases there may be more then one, such as on a ThinkPad X40 with ThinkPad X4 Dock. Patches are [https://bugzilla.kernel.org/show_bug.cgi?id=15521 available], and are merged in 2.6.34.&lt;br /&gt;
&lt;br /&gt;
====Filesystem corruption====&lt;br /&gt;
&lt;br /&gt;
Pressing the undock button will immediately unplug all dock attached devices. This can easily lead to problems, for instance if you have a USB or Ultrabay storage device attached to the dock and have a filesystem mounted RW, this can easily lead to filesystem corruption.&lt;br /&gt;
&lt;br /&gt;
The solution for now is to always make sure any storage devices attached to the dock are unmounted BEFORE pressing the undock button.&lt;br /&gt;
====External display issues====&lt;br /&gt;
{{NOTE|This only works for devices that register themselves as a dock through ACPI, it does not work for port replicators which are hidden to the OS.}}&lt;br /&gt;
{{NOTE|Newer series 3 docks no longer register themselves as a dock, but instead behave like a port replicator, as such the below method does not work. They do however cause a key event on dock and undock which could be used as a trigger, but for now these key events are not exposed by the thinkpad-acpi driver before kernel 3.0}}&lt;br /&gt;
Docking or undocking will also not change the display configuration, which can lead to issues when your undock and your screensaver decided to put the unlock dialog on the secondary display, effectively requiring you to unlock the screensaver blind, before you can press Fn-F7 to restore your display setup to ThinkPad (LVDS) only. This last issue can be resolved by creating a custom udev rule and script as shown below. This script can also be used to take other actions on dock/undock such as automatically configuring your external display on dock.&lt;br /&gt;
&lt;br /&gt;
create a file {{Path|/etc/udev/rules.d/81-thinkpad-dock.rules}}&lt;br /&gt;
 KERNEL==&amp;quot;dock.0&amp;quot;, ACTION==&amp;quot;change&amp;quot;, RUN+=&amp;quot;/usr/local/sbin/thinkpad-dock.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then create the file {{Path|/usr/local/sbin/thinkpad-dock.sh}}&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # wait for the dock state to change&lt;br /&gt;
 sleep 0.5&lt;br /&gt;
 DOCKED=$(cat /sys/devices/platform/dock.0/docked)&lt;br /&gt;
 case &amp;quot;$DOCKED&amp;quot; in&lt;br /&gt;
 	&amp;quot;0&amp;quot;)&lt;br /&gt;
        #undocked event - lets remove all connected outputs apart from LVDS&lt;br /&gt;
        for output in $(/usr/bin/xrandr -d :0.0 --verbose|grep &amp;quot; connected&amp;quot;|grep -v LVDS|awk '{print $1}')&lt;br /&gt;
          do&lt;br /&gt;
          /usr/bin/xrandr -d :0.0 --output $output --off&lt;br /&gt;
        done&lt;br /&gt;
 	;;&lt;br /&gt;
 	&amp;quot;1&amp;quot;)&lt;br /&gt;
 	#docked event - sample will created extended desktop with DVI1 to the right of LVDS1&lt;br /&gt;
 	#/usr/bin/xrandr -d :0.0 --output DVI1 --right-of LVDS1 --auto&lt;br /&gt;
 	;;&lt;br /&gt;
 esac&lt;br /&gt;
 exit 0&lt;br /&gt;
And set it executable&lt;br /&gt;
 chmod +x /usr/local/sbin/thinkpad-dock.sh&lt;br /&gt;
&lt;br /&gt;
{{NOTE|The output names shown above are specific to the Intel video drivers. For the ATI Radeon driver they are different. But you best check your output names by running xrandr manually, and adjusting the script appropriately for your needs. The undock event should work on any ThinkPad where the graphics driver supports RandR and the ThinkPad LCD has LVDS in the name.}}&lt;br /&gt;
&lt;br /&gt;
Part of this is based on information from a thread on the Ubuntu [http://ubuntuforums.org/showthread.php?t=1076486 forums]&lt;br /&gt;
&lt;br /&gt;
=====Newer series 3 docks=====&lt;br /&gt;
There is a solution for the Series 3 docks: http://phihag.de/2012/thinkpad-docking.html&lt;br /&gt;
&lt;br /&gt;
==Available Docking Stations and Port Replicators==&lt;br /&gt;
* [[ThinkPad Mini Dock Plus Series 3 - 170W]] &amp;lt;tt&amp;gt;(T400s, T410, T410s, T510, W510, T520, W520)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Mini Dock Plus Series 3 - 135W]] &amp;lt;tt&amp;gt;(T400s, T410, T410s, T510, W510)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Mini Dock Plus Series 3 - 90W]] &amp;lt;tt&amp;gt;(T400s, T410, T410s, T510)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Mini Dock Series 3]] &amp;lt;tt&amp;gt;(T400s, T410, T410s, T510)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Port Replicator Series 3]] &amp;lt;tt&amp;gt;(T400s, T410, T410s, T510)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[USB Port Replicator with Digital Video]]&lt;br /&gt;
* [[ThinkPad Essential Port Replicator]] &amp;lt;tt&amp;gt;(T60, Z series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Advanced Dock]] &amp;lt;tt&amp;gt;(T60, Z series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Advanced Mini Dock]] &amp;lt;tt&amp;gt;(T60, Z series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[X200 UltraBase]] &amp;lt;tt&amp;gt;(X200, X200s)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[X6 Tablet UltraBase]] &amp;lt;tt&amp;gt;(X60 Tablet, X61 Tablet)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[W700 Mini Dock]]&lt;br /&gt;
* [[W700 Mini Dock 2.0]]&lt;br /&gt;
&lt;br /&gt;
==Withdrawn Docking Stations and Port Replicators==&lt;br /&gt;
* [[ThinkPad 700/720 Dock]]&lt;br /&gt;
* [[ThinkPad 700/720 Port Replicator]]&lt;br /&gt;
* [[ThinkPad Dock I (3545)]] &amp;lt;tt&amp;gt;(360/370/750/755/760 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Dock II (3546)]] &amp;lt;tt&amp;gt;(360/370/750/755/760 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Port Replicator Model 1]] &amp;lt;tt&amp;gt;(360/370/750/755/760/765 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Port Replicator Model 2]] &amp;lt;tt&amp;gt;(360/370/750/755/760/765 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad MultiPort]] &amp;lt;tt&amp;gt;(510Cs)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad MultiPort II]] &amp;lt;tt&amp;gt;{701C/701CS)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[SelectaBase Model I]] &amp;lt;tt&amp;gt;(TP 760 and 765 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[SelectaBase 600]] &amp;lt;tt&amp;gt;(TP 600 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[SelectaBase 770]] &amp;lt;tt&amp;gt;(TP 770 series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[SelectaDock I]] &amp;lt;tt&amp;gt;(TP 600{{footnote|3}}, 760{{footnote|1}}, 765{{footnote|1}} and 770{{footnote|2}} series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[SelectaDock II]] &amp;lt;tt&amp;gt;(TP 600{{footnote|3}}, 760{{footnote|1}}, 765{{footnote|1}} and 770{{footnote|2}} series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[SelectaDock III]] &amp;lt;tt&amp;gt;(TP 600{{footnote|3}}, 760{{footnote|1}}, 765{{footnote|1}} and 770{{footnote|2}} series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[TransNote Port Extender]] &amp;lt;tt&amp;gt;(ThinkPad TransNote)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad i Series Port Replicator]] &amp;lt;tt&amp;gt;(TP i1400, i1500 Series)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad 365 Port Replicator]] &amp;lt;tt&amp;gt;(TP 365)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad 365X Port Replicator]] &amp;lt;tt&amp;gt;(TP 365X)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad 380/385 Port Replicator]]&lt;br /&gt;
* [[ThinkPad 560 Port Replicator]] &amp;lt;tt&amp;gt;(TP 380/385 series, 560 and 570{{footnote|4}})&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Enhanced Port Replicator]] &amp;lt;tt&amp;gt;(TP 380/385 series and 560X)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Port Replicator with Advanced EtherJet]] &amp;lt;tt&amp;gt;(TP 380Z, i1720, i1721 and 390, 570, 600 and 770 series)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Port Replicator]] &amp;lt;tt&amp;gt;(A20-A31p, R30-R32, T20-T30, X20-X32)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Port Replicator II]] &amp;lt;tt&amp;gt;(A,R,T,X series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Dock]] &amp;lt;tt&amp;gt;(A,T,X series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Dock II]] &amp;lt;tt&amp;gt;(A,R,T,X series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad Mini-Dock]] &amp;lt;tt&amp;gt;(A,R,T,X series models)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[UltraBase]] &amp;lt;tt&amp;gt;(TP 570 series)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[UltraBase X2]] &amp;lt;tt&amp;gt;(X20, X21, X22, X23, X24)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[UltraBase X3]] &amp;lt;tt&amp;gt;(X30, X31, X32)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[UltraBase X4]] &amp;lt;tt&amp;gt;(X40, X41)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[ThinkPad X4 Dock]] &amp;lt;tt&amp;gt;(X40, X41, X41 Tablet)&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[UltraBase X6]] &amp;lt;tt&amp;gt;(X60, X60s, X61, X61s)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Monitor and Notebook Stands==&lt;br /&gt;
* [[ThinkPad Adjustable Notebook Stand]]&lt;br /&gt;
* [[ThinkPad Monitor Stand 2001]] - (withdrawn)&lt;br /&gt;
* [[ThinkPad Monitor Stand 2000]] - (withdrawn)&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
* [[Dock II Adapter Kit]] - (withdrawn)&lt;br /&gt;
* [[Direct Dock Adapter]] - (withdrawn)&lt;br /&gt;
* [[SelectaBase PC Card Enabler]] - (withdrawn)&lt;br /&gt;
* [[SelectaBase PC Card Enabler with Advanced EtherJet]] - (withdrawn)&lt;br /&gt;
* [[Portable Drive Bay]] (PC-Card UltraslimBay adapter) - (withdrawn)&lt;br /&gt;
* [[Portable Drive Bay 2000]] (PC-Card/USB UltraBay 2000 adapter)&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
*[http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-4NXNTP IBMs Docking Solutions overview page]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#requires [[SelectaBase Model I]]&lt;br /&gt;
#requires [[SelectaBase 770]]&lt;br /&gt;
#requires [[SelectaBase 600]]&lt;br /&gt;
#requires [[Direct Dock Adapter]] or [[UltraBase]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Zhenech/tp_smapi_on_cheap_ThinkPads&amp;diff=51693</id>
		<title>User:Zhenech/tp smapi on cheap ThinkPads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Zhenech/tp_smapi_on_cheap_ThinkPads&amp;diff=51693"/>
		<updated>2011-06-04T07:38:43Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: â†Created page with '= tp_smapi on cheap ThinkPads = There are several ThinkPad-branded laptops from Lenovo out there, which are not real ThinkPads (mostly recognizable through a non-ThinkPad ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= tp_smapi on cheap ThinkPads =&lt;br /&gt;
There are several ThinkPad-branded laptops from Lenovo out there, which are not real ThinkPads (mostly recognizable through a non-ThinkPad BIOS and/or EC). On some of these, th_smapi can still work and I want to gather information about that fact here.&lt;br /&gt;
&lt;br /&gt;
== list of users who tried ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! user&lt;br /&gt;
! model&lt;br /&gt;
! tp_smapi loads&lt;br /&gt;
! tp_smapi works&lt;br /&gt;
! link&lt;br /&gt;
|-&lt;br /&gt;
| norg&lt;br /&gt;
| Edge 11 i3&lt;br /&gt;
| yes&lt;br /&gt;
| seems so&lt;br /&gt;
| http://thinkpad-forum.de/threads/111805-Hilfe-beim-Einrichten-von-Edge-11-unter-Gentoo&lt;br /&gt;
|-&lt;br /&gt;
| freiform&lt;br /&gt;
| Edge 11 AMD&lt;br /&gt;
| yes&lt;br /&gt;
|&lt;br /&gt;
| http://thinkpad-forum.de/threads/107305-Edge-11-AMD-K325-und-das-GNU&lt;br /&gt;
|-&lt;br /&gt;
| Edger&lt;br /&gt;
| Edge 11 AMD&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| http://thinkpad-forum.de/threads/107305-Edge-11-AMD-K325-und-das-GNU/page2&lt;br /&gt;
|-&lt;br /&gt;
| whirpool&lt;br /&gt;
| SL510&lt;br /&gt;
| yes&lt;br /&gt;
| seems so&lt;br /&gt;
| http://thinkpad-forum.de/threads/112092-thinkpad_ec-tp_smapi-und-das-SL510&lt;br /&gt;
|-&lt;br /&gt;
| RubenH&lt;br /&gt;
| Edge 11 AMD&lt;br /&gt;
| ???&lt;br /&gt;
|&lt;br /&gt;
| http://forum.ubuntuusers.de/topic/thinkpad-edge11-amd-und-thinkpad-acpi/&lt;br /&gt;
|-&lt;br /&gt;
| FabianS&lt;br /&gt;
| X100e&lt;br /&gt;
| yes&lt;br /&gt;
| sort of&lt;br /&gt;
| http://forum.ubuntuusers.de/topic/problem-mit-tp-smapi-auf-x100e/&lt;br /&gt;
|-&lt;br /&gt;
| Tuxel&lt;br /&gt;
| L412&lt;br /&gt;
| no&lt;br /&gt;
|&lt;br /&gt;
| http://forum.ubuntuusers.de/topic/erfahrungsbericht-lenovo-thinkpad-l412&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Zhenech&amp;diff=51692</id>
		<title>User:Zhenech</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Zhenech&amp;diff=51692"/>
		<updated>2011-06-04T07:17:56Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm a ThinkPad {{X201s}} user from Düsseldorf, Germany.&lt;br /&gt;
At the moment I study computer science at the Heinrich-Heine-University in Düsseldorf.&lt;br /&gt;
&lt;br /&gt;
My {{X201s}} is running {{Debian}} GNU/Linux unstable &lt;br /&gt;
&lt;br /&gt;
Private homepage (including [http://www.die-welt.net/index.php/blog/65/Debian_Linux_auf_einem_IBM_Lenovo_ThinkPad_Z61m some infos about Linux on Z61m in german] [http://www.die-welt.net/index.php/blog/66/Debian_Linux_on_an_IBM_Lenovo_ThinkPad_Z61m and english]): [http://www.die-welt.net die-welt.net]&lt;br /&gt;
&lt;br /&gt;
I'm currently maintaining [http://packages.debian.org/hdapsd hdapsd] and [http://packages.debian.org/tp-smapi tp-smapi] in Debian.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=48831</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=48831"/>
		<updated>2010-06-19T16:07:11Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* T series */  t410&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&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;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR 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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&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/package/app-laptop/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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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;
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about &amp;lt;tt&amp;gt;__stack_chk_fail()&amp;lt;/tt&amp;gt;, you probably just compiled your modules with &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and/or &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; without having a kernel that supports it. You can either configure your kernel to have &amp;lt;tt&amp;gt;CC_STACKPROTECTOR&amp;lt;/tt&amp;gt; enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your &amp;lt;tt&amp;gt;make.conf&amp;lt;/tt&amp;gt; (or, if you're using paludis, your &amp;lt;tt&amp;gt;/etc/paludis/bashrc&amp;lt;/tt&amp;gt;) and remove &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; from your &amp;lt;tt&amp;gt;CFLAGS&amp;lt;/tt&amp;gt;. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the &amp;lt;code&amp;gt;tm-smapi-modules-2.6-686&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tm-smapi-modules-2.6-amd64&amp;lt;/code&amp;gt; package, depending on your architecture &lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu====&lt;br /&gt;
Ubuntu ships tp_smapi in their &amp;lt;tt&amp;gt;linux-ubuntu-modules-*&amp;lt;/tt&amp;gt; package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; so that the two can coexist. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Intrepid and Jaunty, however, lack the &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Jaunty=====&lt;br /&gt;
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Karmic=====&lt;br /&gt;
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
:{{cmdroot|module-assistant prepare tp-smapi}}&lt;br /&gt;
:{{cmdroot|module-assistant auto-install tp-smapi}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Lucid=====&lt;br /&gt;
The Karmic solution above works well.&lt;br /&gt;
&lt;br /&gt;
As an alternative, one can use the dkms flavour of the packages via&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-dkms}}&lt;br /&gt;
:{{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 build -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above does not exist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&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 and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&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;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include:&lt;br /&gt;
* ThinkPad {{T400}}&lt;br /&gt;
* ThinkPad {{T500}}&lt;br /&gt;
* ThinkPad {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cunk}}  ||    ||   ||   || Machine type 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || 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}}  || N/A || N/A ||      ||  || || 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}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! {{T410}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.25 || || &lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}}   || {{Cno|text=}} (see ref) || 0.32  || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1       ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! {{X201s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=48830</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=48830"/>
		<updated>2010-06-19T11:29:03Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: added x201s&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&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;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR 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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&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/package/app-laptop/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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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;
'''NOTE:''' If {{cmdroot|modprobe}} fails and dmesg says something about &amp;lt;tt&amp;gt;__stack_chk_fail()&amp;lt;/tt&amp;gt;, you probably just compiled your modules with &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and/or &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; without having a kernel that supports it. You can either configure your kernel to have &amp;lt;tt&amp;gt;CC_STACKPROTECTOR&amp;lt;/tt&amp;gt; enabled (in ''Processor type and features'' if you use {{cmdroot|make menuconfig}}) or edit your &amp;lt;tt&amp;gt;make.conf&amp;lt;/tt&amp;gt; (or, if you're using paludis, your &amp;lt;tt&amp;gt;/etc/paludis/bashrc&amp;lt;/tt&amp;gt;) and remove &amp;lt;tt&amp;gt;-fstack-protector&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-fstack-protector-all&amp;lt;/tt&amp;gt; from your &amp;lt;tt&amp;gt;CFLAGS&amp;lt;/tt&amp;gt;. If you choose to enable it in the kernel, be aware that you need a patched GCC for it (and I do not know if the gcc in stage3 is patched).&lt;br /&gt;
&lt;br /&gt;
====Installation on Debian unstable (sid), testing (squeeze) or stable (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the &amp;lt;code&amp;gt;tm-smapi-modules-2.6-686&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tm-smapi-modules-2.6-amd64&amp;lt;/code&amp;gt; package, depending on your architecture &lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu====&lt;br /&gt;
Ubuntu ships tp_smapi in their &amp;lt;tt&amp;gt;linux-ubuntu-modules-*&amp;lt;/tt&amp;gt; package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; so that the two can coexist. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Intrepid and Jaunty, however, lack the &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Jaunty=====&lt;br /&gt;
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Karmic=====&lt;br /&gt;
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
:{{cmdroot|module-assistant prepare tp-smapi}}&lt;br /&gt;
:{{cmdroot|module-assistant auto-install tp-smapi}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Lucid=====&lt;br /&gt;
The Karmic solution above works well.&lt;br /&gt;
&lt;br /&gt;
As an alternative, one can use the dkms flavour of the packages via&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-dkms}}&lt;br /&gt;
:{{cmdroot|modprobe tp_smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 build -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above does not exist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&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 and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&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;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include:&lt;br /&gt;
* ThinkPad {{T400}}&lt;br /&gt;
* ThinkPad {{T500}}&lt;br /&gt;
* ThinkPad {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cunk}}  ||    ||   ||   || Machine type 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || 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}}  || N/A || N/A ||      ||  || || 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}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}}   || {{Cno|text=}} (see ref) || 0.32  || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1       ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX, dual-core L625 also works (NTT27MH)&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! {{X201s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 5 || 0.40 || 6QET44WW (1.14 ) || ECP: 1.09/1.09 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48390</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48390"/>
		<updated>2010-05-02T09:03:02Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing Debian Sid on a ThinkPad {{X201s}} 5413-A13&lt;br /&gt;
== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || xserver-xorg-input-synaptics for the Touchpad || works fine ootb, Trackpoint scrolling and Touchpad tapping via [[Installing_Debian_Sid_on_a_ThinkPad_X201s#UltraNav|xinput settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UltraNav ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% cat .xsessionrc &lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Scrolling&amp;quot; 1 0&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Pressure&amp;quot; 10 &lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Tap Action&amp;quot; 0 0 0 0 1 3 2&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Palm Detection&amp;quot; 1&lt;br /&gt;
#xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Off&amp;quot; 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;br /&gt;
&lt;br /&gt;
As suggested in [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374/comments/80 comment 80 from LP#532374] I added {{bootparm|acpi_sleep|sci_force_enable}} to the kernel options, and 2.6.34-rc4 suspends and resumes fine now.&lt;br /&gt;
&lt;br /&gt;
This is fixed since [http://www-307.ibm.com/pc/support/site.wss/MIGR-74984.html BIOS 1.14-1.08/1.08].&lt;br /&gt;
&lt;br /&gt;
=== No USB after resume ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/566149&lt;br /&gt;
&lt;br /&gt;
Fix: either patch the kernel with [http://launchpadlibrarian.net/45106170/pci-re-enable-devices-on-resume.patch pci-re-enable-devices-on-resume.patch] or run 2.6.24-rc6.&lt;br /&gt;
=== Black screen after boot ===&lt;br /&gt;
I often had a black screen after I booted the machine up. Updating BIOS to 1.12-1.07/1.07 and disabling Intel AMT solved the issue.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48376</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48376"/>
		<updated>2010-04-30T16:57:20Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing Debian Sid on a ThinkPad {{X201s}} 5413-A13&lt;br /&gt;
== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || xserver-xorg-input-synaptics for the Touchpad || works fine ootb, Trackpoint scrolling and Touchpad tapping via [[Installing_Debian_Sid_on_a_ThinkPad_X201s#UltraNav|xinput settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UltraNav ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% cat .xsessionrc &lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Scrolling&amp;quot; 1 0&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Pressure&amp;quot; 10 &lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Tap Action&amp;quot; 0 0 0 0 1 3 2&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Palm Detection&amp;quot; 1&lt;br /&gt;
#xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Off&amp;quot; 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;br /&gt;
&lt;br /&gt;
As suggested in [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374/comments/80 comment 80 from LP#532374] I added {{bootparm|acpi_sleep|sci_force_enable}} to the kernel options, and 2.6.34-rc4 suspends and resumes fine now.&lt;br /&gt;
&lt;br /&gt;
This is fixed since [http://www-307.ibm.com/pc/support/site.wss/MIGR-74984.html BIOS 1.14-1.08/1.08].&lt;br /&gt;
=== Black screen after boot ===&lt;br /&gt;
I often had a black screen after I booted the machine up. Updating BIOS to 1.12-1.07/1.07 and disabling Intel AMT solved the issue.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=48297</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=48297"/>
		<updated>2010-04-19T19:15:12Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Installation on Ubuntu */&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. The tp_smapi software package also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&lt;br /&gt;
&lt;br /&gt;
This driver uses undocumented features and direct hardware access, so it may work unreliably or even damage your hardware; but so far no such damage has been reported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
*&amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; driver&lt;br /&gt;
**Battery charge/discharge control&lt;br /&gt;
**Battery status information&lt;br /&gt;
*&amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver (compared with the standard &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver)&lt;br /&gt;
**Improved stability&lt;br /&gt;
**Improved model support&lt;br /&gt;
**Improved functionality&lt;br /&gt;
&lt;br /&gt;
===Project Homepage / Availability===&lt;br /&gt;
* Project page: http://tpctl.sourceforge.net/&lt;br /&gt;
* Download page: http://sourceforge.net/projects/tpctl/files/tp_smapi&lt;br /&gt;
* You need to download only the &amp;lt;i&amp;gt;tp_smapi&amp;lt;/i&amp;gt; package.&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;
:{{cmdroot|tar xzvf tp_smapi-0.40.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.40}}&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR 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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&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/package/app-laptop/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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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 unstable (sid), testing (squeeze) or stable (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
* in order to make sure the modules package is kept in sync with the kernel one, you may also want to install the &amp;lt;code&amp;gt;tm-smapi-modules-2.6-686&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;tm-smapi-modules-2.6-amd64&amp;lt;/code&amp;gt; package, depending on your architecture &lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on openSUSE====&lt;br /&gt;
openSUSE provides rpm packages. Look for them at the package search: [http://software.opensuse.org/search/], search for the package named &amp;quot;tp_smapi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A step-by-step guide on how a relative linux newbie installed tp_smapi on a Thinkpad W500 running openSuse 11.1 using YAST Software Manager is available [http://forums.opensuse.org/hardware/laptop/417254-tp_smapi-lenovo-thinkpad-t400-t500-w500-step-step.html#post2005932 here]&lt;br /&gt;
&lt;br /&gt;
In case you are taking the hard way around, while compiling on 11.0, make complained about not being able to locate the kernel sources. It worked for me after I did this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cp /usr/include/linux/aio_abi.h /lib/modules/`uname -r`/build/include/linux/&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu====&lt;br /&gt;
Ubuntu ships tp_smapi in their &amp;lt;tt&amp;gt;linux-ubuntu-modules-*&amp;lt;/tt&amp;gt; package for Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; so that the two can coexist. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Intrepid and Jaunty, however, lack the &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt; module, as reported [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/297213 here]. It will not be included again until said [[#Bundled hdaps driver|bundled hdaps driver]] is merged into mainline.&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Jaunty=====&lt;br /&gt;
I have posted my experiences [http://meandmyubuntu.blogspot.com/2009/05/getting-hdasp-to-work-on-jaunty.html here]&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Karmic=====&lt;br /&gt;
Ubuntu does not ship the precompiled module tp_smapi any more. However the source code is still present in the repository. It can be installed through module-assistant :&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-source}}&lt;br /&gt;
:{{cmdroot|module-assistant prepare tp-smapi}}&lt;br /&gt;
:{{cmdroot|module-assistant auto-install tp-smapi}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
=====Installation on Ubuntu Lucid beta 2=====&lt;br /&gt;
The Karmic solution above works well.&lt;br /&gt;
&lt;br /&gt;
As an alternative, one can use the dkms flavour of the packages via&lt;br /&gt;
:{{cmdroot|aptitude install tp-smapi-dkms}}&lt;br /&gt;
:{{cmdroot|modprobe tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 build -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above does not exist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/build&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&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 and Li-Polymer batteries partially charged, in order to [[Maintenance#Battery_treatment|increase their lifetime]].}}&lt;br /&gt;
To prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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]]. For example, see the {{CodeRef|tp-bat-balance}} script.}}&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;
====Making the settings permanent on reboot====&lt;br /&gt;
&lt;br /&gt;
If you always use the same type of battery, then you may want the same settings to be configured each time you boot the machine.&lt;br /&gt;
&lt;br /&gt;
If you use various types of battery, then you may want to consider writing some scripts to detect the battery type and apply the appropriate settings.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
It is not necessary to create your own init.d script or modify /etc/rc.local - you just need the package sysfsutils:&lt;br /&gt;
:{{cmdroot|apt-get install sysfsutils}}&lt;br /&gt;
&lt;br /&gt;
Now, put your desired settings in /etc/sysfs.conf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;# cat &amp;gt;&amp;gt; /etc/sysfs.conf &amp;lt;&amp;lt; EOF&lt;br /&gt;
# For a LiIon battery in a Thinkpad&lt;br /&gt;
devices/platform/smapi/BAT0/start_charge_thresh = 50&lt;br /&gt;
devices/platform/smapi/BAT0/stop_charge_thresh = 80&lt;br /&gt;
EOF&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The init script supplied by sysfsutils will load these settings on each boot.&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. It has remained outside the mainline kernel for a few years for several reasons, [https://lists.ubuntu.com/archives/kernel-team/2009-April/005565.html] including the upstream maintainer's assertion that the new code's anonymous author was under a NDA. (Although this would not normally expose the kernel team to litigation.) [http://lkml.org/lkml/2008/9/15/126] [http://lkml.org/lkml/2008/10/7/403] [http://lkml.org/lkml/2008/10/7/428]&lt;br /&gt;
&lt;br /&gt;
To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
The &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: cannot claim io ports 0x1600-0x161f!&amp;lt;/tt&amp;gt;&amp;quot; error message is printed when loading the &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; module on some recent ThinkPad models.  This occurs because the ACPI BIOS DSDT is reserving ports used by tp_smapi.&lt;br /&gt;
&lt;br /&gt;
As a workaround, add the &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; module parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; in {{path|/etc/modprobe.conf}} (or your distribution's equivalent). Add the line:&lt;br /&gt;
: options thinkpad_ec force_io=1&lt;br /&gt;
&lt;br /&gt;
For transient testing, load the modules as follows:&lt;br /&gt;
&lt;br /&gt;
: {{cmdroot|1=make load HDAPS=1 FORCE_IO=1}}&lt;br /&gt;
&lt;br /&gt;
Note: force_io option was added in tp_smapi v0.40 (released 2008-12-16).&lt;br /&gt;
&lt;br /&gt;
Models which need this option include:&lt;br /&gt;
* ThinkPad {{T400}}&lt;br /&gt;
* ThinkPad {{T500}}&lt;br /&gt;
* ThinkPad {{X301}}&lt;br /&gt;
&lt;br /&gt;
More information:&lt;br /&gt;
* http://bugzilla.kernel.org/show_bug.cgi?id=12221&lt;br /&gt;
* http://www.nabble.com/thinkpad_ec-fails-to-load-on-Thinkpad-T500-td19932985.html&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;tt&amp;gt;T60p writing to start_charge_thresh/stop_charge_thresh does not work!&amp;lt;/tt&amp;gt; ====&lt;br /&gt;
Writing to /sys/devices/platform/smapi/BAT0/start_charge_thresh succeeds, but the older value does not change. Solution: unknown. If you know a solution please update here.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-5US&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918&lt;br /&gt;
|-&lt;br /&gt;
! {{R61i}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cunk}}  ||    ||   ||   || Machine type 8250&lt;br /&gt;
|-&lt;br /&gt;
! {{R400}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   || Machine type 7443&lt;br /&gt;
|-&lt;br /&gt;
! {{R500}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cunk}}  || {{Cyes|text=}} 1 || 0.40-1   ||   ||   ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || 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}}  || N/A || N/A ||      ||  || || 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}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.20 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 3.23 || 3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 2007-FSG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.39 || 1.10 || 1.05b ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-CZ1&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.40 || 2.23 || 1.07 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T400}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 1.19 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T400s}} &lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}} 2 || 0.40 || 1.06 || || Requires &amp;lt;tt&amp;gt;invert=2&amp;lt;/tt&amp;gt; paramteter to &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T500}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes|text=}}  1 || 0.40 || 2.07 || || Requires &amp;lt;tt&amp;gt;force_io=1&amp;lt;/tt&amp;gt; parameter to &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! {{T510}}&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cno|text=}}  7 || 0.40 || 1.12 || 1.08 || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====W series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{W700}} 2757-CTO&lt;br /&gt;
| {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cyes}}  || {{Cunk}} || {{Cunk}} ||  0.40 || 2.08 || 1.05 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X22}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || N/A || N/A ||      ||  || || no EC controller found&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || N/A || N/A || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || N/A || N/A ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}}   || {{Cno|text=}} (see ref) || 0.32  || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-56G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.40 || 7BETD5WW 2.16 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7673-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.37 || 7NETB9WW (2.19) || {{Cunk}} ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1       ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW 1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X100e}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.40 || 6XET36WW (1.20a) || 6XHT36WW (1.176000) || x100e NTS4UTX&lt;br /&gt;
|-&lt;br /&gt;
! {{X200}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.40 || 6DET40WW (2.04 ) || 7XHT22WW 1.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW 1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====SL series and IdeaPad=====&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:left&amp;quot; |&lt;br /&gt;
The ThinkPad SL series and IdeaPad series have firmware that is completely different from other ThinkPad models. Neither [[tp_smapi]] nor [[thinkpad-acpi]] support these models.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver of tp_smapi supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; parameter is an integer between 0 and 7, whose meaning is defined below. (This is confusing. Most people will find it easier to just try all 8 possibilities.)&lt;br /&gt;
&lt;br /&gt;
Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;br /&gt;
&lt;br /&gt;
== Headline text ==&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48293</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48293"/>
		<updated>2010-04-19T18:59:13Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing Debian Sid on a ThinkPad {{X201s}} 5413-A13&lt;br /&gt;
== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || xserver-xorg-input-synaptics for the Touchpad || works fine ootb, Trackpoint scrolling and Touchpad tapping via [[Installing_Debian_Sid_on_a_ThinkPad_X201s#UltraNav|xinput settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UltraNav ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% cat .xsessionrc &lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Scrolling&amp;quot; 1 0&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Pressure&amp;quot; 10 &lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Tap Action&amp;quot; 0 0 0 0 1 3 2&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Palm Detection&amp;quot; 1&lt;br /&gt;
#xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Off&amp;quot; 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;br /&gt;
&lt;br /&gt;
As suggested in [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374/comments/80 comment 80 from LP#532374] I added {{bootparm|acpi_sleep|sci_force_enable}} to the kernel options, and 2.6.34-rc4 suspends and resumes fine now.&lt;br /&gt;
=== Black screen after boot ===&lt;br /&gt;
I often had a black screen after I booted the machine up. Updating BIOS to 1.12-1.07/1.07 and disabling Intel AMT solved the issue.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48292</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48292"/>
		<updated>2010-04-19T18:53:56Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: fix suspend!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || xserver-xorg-input-synaptics for the Touchpad || works fine ootb, Trackpoint scrolling and Touchpad tapping via [[Installing_Debian_Sid_on_a_ThinkPad_X201s#UltraNav|xinput settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UltraNav ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% cat .xsessionrc &lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Scrolling&amp;quot; 1 0&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Pressure&amp;quot; 10 &lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Tap Action&amp;quot; 0 0 0 0 1 3 2&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Palm Detection&amp;quot; 1&lt;br /&gt;
#xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Off&amp;quot; 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;br /&gt;
&lt;br /&gt;
As suggested in [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374/comments/80 comment 80 from LP#532374] I added {{bootparm|acpi_sleep|sci_force_enable}} to the kernel options, and 2.6.34-rc4 suspends and resumes fine now.&lt;br /&gt;
=== Black screen after boot ===&lt;br /&gt;
I often had a black screen after I booted the machine up. Updating BIOS to 1.12-1.07/1.07 and disabling Intel AMT solved the issue.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48250</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48250"/>
		<updated>2010-04-16T07:23:39Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Problems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || xserver-xorg-input-synaptics for the Touchpad || works fine ootb, Trackpoint scrolling and Touchpad tapping via [[Installing_Debian_Sid_on_a_ThinkPad_X201s#UltraNav|xinput settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UltraNav ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% cat .xsessionrc &lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Scrolling&amp;quot; 1 0&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Pressure&amp;quot; 10 &lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Tap Action&amp;quot; 0 0 0 0 1 3 2&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Palm Detection&amp;quot; 1&lt;br /&gt;
#xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Off&amp;quot; 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;br /&gt;
=== Black screen after boot ===&lt;br /&gt;
I often had a black screen after I booted the machine up. Updating BIOS to 1.12-1.07/1.07 and disabling Intel AMT solved the issue.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48245</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48245"/>
		<updated>2010-04-15T08:24:22Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || no use for it, deactivated in BIOS, won't test&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || xserver-xorg-input-synaptics for the Touchpad || works fine ootb, Trackpoint scrolling and Touchpad tapping via [[Installing_Debian_Sid_on_a_ThinkPad_X201s#UltraNav|xinput settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UltraNav ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% cat .xsessionrc &lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation&amp;quot; 1&lt;br /&gt;
xinput set-prop &amp;quot;TPPS/2 IBM TrackPoint&amp;quot; &amp;quot;Evdev Wheel Emulation Button&amp;quot; 2&lt;br /&gt;
&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Scrolling&amp;quot; 1 0&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Two-Finger Pressure&amp;quot; 10 &lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Tap Action&amp;quot; 0 0 0 0 1 3 2&lt;br /&gt;
xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Palm Detection&amp;quot; 1&lt;br /&gt;
#xinput set-prop &amp;quot;SynPS/2 Synaptics TouchPad&amp;quot; &amp;quot;Synaptics Off&amp;quot; 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48243</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48243"/>
		<updated>2010-04-14T22:40:32Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Hardware support */  dummy template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Fingerprint Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| APS&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| UltraNav&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48242</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48242"/>
		<updated>2010-04-14T22:33:09Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video ([[Intel_HD_Graphics|Intel HD Graphics]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network ([[Intel_Gigabit_Ethernet_(10/100/1000)_PCI-Express|Intel Corporation 82577LM Gigabit Network Connection]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi ([[Intel_Centrino_Ultimate-N_6300|Intel Centrino Ultimate-N 6300]])&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/532374&lt;br /&gt;
https://bugzilla.kernel.org/show_bug.cgi?id=15407&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48241</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48241"/>
		<updated>2010-04-14T22:19:29Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: add cardreader info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video (Intel Corporation Core Processor Integrated Graphics Controller)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network (Intel Corporation 82577LM Gigabit Network Connection)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi (Intel Corporation Centrino Ultimate-N 6300)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
| Card-Reader&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cyes}} || || tested with 2GB SD and 8GB SDHC, attaches as a regular USB drive on insert of the card&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48217</id>
		<title>Installing Debian Sid on a ThinkPad X201s</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Installing_Debian_Sid_on_a_ThinkPad_X201s&amp;diff=48217"/>
		<updated>2010-04-14T08:54:11Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: initial version of the x201s page, to be continued&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Before the installation ==&lt;br /&gt;
I used the Debian Squeze D-I Alpha 1 (built on the 22.03.2010) from USB, as I do not have a CD/DVD-ROM. The installer boots fine (in contrast to the Lenny one, which cries with kernel oopses), but can't bring up the network card. This was ok for me, YMMV.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Boot CD/USB, install. No special hacks needed (ncurses installer, didn't try the GTK one).&lt;br /&gt;
&lt;br /&gt;
== Hardware support ==&lt;br /&gt;
The installer installed linux-image-2.6.32-3-amd64, but I am running linux-image-2.6.33-2-amd64 from experimental and a self built 2.6.34-rc4.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Hardware !! works with 2.6.32 !! works with 2.6.33 !! works with 2.6.34-rc4 !! driver !! notes&lt;br /&gt;
|-&lt;br /&gt;
| Video (Intel Corporation Core Processor Integrated Graphics Controller)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || || &lt;br /&gt;
|-&lt;br /&gt;
| Audio (Intel Corporation 5 Series/3400 Series Chipset High Definition Audio)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || snd-hda-intel || &lt;br /&gt;
|-&lt;br /&gt;
| Network (Intel Corporation 82577LM Gigabit Network Connection)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || e1000e || &lt;br /&gt;
|-&lt;br /&gt;
| WiFi (Intel Corporation Centrino Ultimate-N 6300)&lt;br /&gt;
| {{Cunk}} || {{Cyes}} || {{Cyes}} || iwlagn || needs firmware from the firmware-iwlwifi package&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
== Problems ==&lt;br /&gt;
=== Suspend ===&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Zhenech&amp;diff=48058</id>
		<title>User:Zhenech</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Zhenech&amp;diff=48058"/>
		<updated>2010-04-02T12:05:14Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm a ThinkPad {{X300}} user from Düsseldorf, Germany.&lt;br /&gt;
At the moment I study computer science at the Heinrich-Heine-University in Düsseldorf.&lt;br /&gt;
&lt;br /&gt;
My {{X300}} is running {{Debian}} GNU/Linux unstable &lt;br /&gt;
&lt;br /&gt;
Private homepage (including [http://www.die-welt.net/index.php/blog/65/Debian_Linux_auf_einem_IBM_Lenovo_ThinkPad_Z61m some infos about Linux on Z61m in german] [http://www.die-welt.net/index.php/blog/66/Debian_Linux_on_an_IBM_Lenovo_ThinkPad_Z61m and english]): [http://www.die-welt.net die-welt.net]&lt;br /&gt;
&lt;br /&gt;
I'm currently maintaining [http://packages.debian.org/hdapsd hdapsd] and [http://packages.debian.org/tp-smapi tp-smapi] in Debian.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:USB_Port_Replicator_with_Digital_Video&amp;diff=44408</id>
		<title>Talk:USB Port Replicator with Digital Video</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:USB_Port_Replicator_with_Digital_Video&amp;diff=44408"/>
		<updated>2009-09-21T19:51:59Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Linux Suport? ==&lt;br /&gt;
Anyone tried this on Linux? Whats the built-in GPU? --[[User:Zhenech|Zhenech]] 20:22, 20 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I suspect this to be the same chip as used in the [[Lenovo USB-to-DVI Monitor Adapter]], which is a DisplayLink chip. See here for more information on Linux support for these chips [http://libdlo.freedesktop.org/wiki/ libdlo]. This is all rather new, and I do not think this is included at this point with any Linux distribution. --[[User:Tonko|Tonko]] 10:08, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I suspect this too, but I'd like to be sure before spending over 100€ on it :) No distro packages is fine, I can build and provide Debian ones if needed ;) --[[User:Zhenech|Zhenech]] 19:51, 21 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:USB_Port_Replicator_with_Digital_Video&amp;diff=44402</id>
		<title>Talk:USB Port Replicator with Digital Video</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:USB_Port_Replicator_with_Digital_Video&amp;diff=44402"/>
		<updated>2009-09-20T20:22:48Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: â†Created page with ' == Linux Suport? == Anyone tried this on Linux? Whats the built-in GPU? --~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Linux Suport? ==&lt;br /&gt;
Anyone tried this on Linux? Whats the built-in GPU? --[[User:Zhenech|Zhenech]] 20:22, 20 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_7500&amp;diff=43190</id>
		<title>Talk:ATI Mobility Radeon 7500</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_7500&amp;diff=43190"/>
		<updated>2009-05-14T14:17:02Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Ebene 2 Überschrift */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, is there a way to use dri, drm and opengl with this card?&lt;br /&gt;
&lt;br /&gt;
== Functionality of ATI Mobility Radeon 7500 ==&lt;br /&gt;
&lt;br /&gt;
I have a Thinkpad R50 with the ATI Mobility Radeon 7500, currently running Gentoo Linux. (and dual-boot with WinXP)&lt;br /&gt;
&lt;br /&gt;
Direct rendering works with both radeon and ati (gatos) drivers, though the radeon is significantly (20%-30%) faster. I have not tried fglrx.&lt;br /&gt;
&lt;br /&gt;
TV-out works with both VESA and ati (gatos) drivers, though both have problems.&lt;br /&gt;
Using the VESA driver there is no acceleration, and the system is not fast enough to act as a mythfrontend without dropping frames rather badly.&lt;br /&gt;
Using the ati driver performance is acceptable, but the colors are washed out (practically gone) and the contrast is &amp;quot;odd&amp;quot;. The image looks kind like the old &amp;quot;posterization&amp;quot; photo process, where contrast is mostly reduced, but past a certain scale becomes extreme.&lt;br /&gt;
&lt;br /&gt;
In either case, I had to use atitvout to activate the svideo. It complained about VBE, but did the job. I was not able to get both displays working simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Only use external display ==&lt;br /&gt;
I can't figure out how to configure X.org to ''only'' use the external VGA display. Xinerama works fine, but I don't want both displays enabled. Also, it turns off both when I close the lid. Anyone figure this stuff out? [[User:Kkinder|Kkinder]] 21:57, 24 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== HAL bug ==&lt;br /&gt;
According to [https://bugs.launchpad.net/ubuntu/+source/hal/+bug/306014 this bug report], Ubuntu is not giving the radeon video card its proper permissions. Using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;DRI&amp;quot;&lt;br /&gt;
 Mode 0666&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Does not work anymore.  &lt;br /&gt;
&lt;br /&gt;
Check your own permissions under /dev/dri/card0 .  If it reads crw-rw----, then you need to set your permissions to 666.  &lt;br /&gt;
&lt;br /&gt;
Create the file: /etc/udev/rules.d/45-dev-dri-permissions.rules&lt;br /&gt;
and add:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KERNEL==&amp;quot;card[0-9]&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the X server and you should get better 3d performance!&lt;br /&gt;
&lt;br /&gt;
== Alternate xorg.conf ==&lt;br /&gt;
&lt;br /&gt;
Using a Thinkpad T30 with an ATI Mobility Radeon 7500, the recommended xorg.conf file gives me an average of 250 FPS with glxgears on Ubuntu 8.04 (Hardy Heron).  The following xorg.conf setup gives me about 1200 FPS.  The major trade-off is a reduced default depth of 16.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]&amp;quot;&lt;br /&gt;
  Driver &amp;quot;radeon&amp;quot;&lt;br /&gt;
  BusID &amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
  Option &amp;quot;AGPMode&amp;quot; &amp;quot;4&amp;quot;&lt;br /&gt;
  Option &amp;quot;XAANoOffscreenPixmaps&amp;quot;&lt;br /&gt;
  Option &amp;quot;AGPFastWrite&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
  Option &amp;quot;EnablePageFlip&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
  Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;Default Screen&amp;quot;&lt;br /&gt;
  Device &amp;quot;ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]&amp;quot;&lt;br /&gt;
  Monitor &amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
  DefaultDepth 16&lt;br /&gt;
  SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
    Depth 16&lt;br /&gt;
    Modes &amp;quot;1024x768&amp;quot;&lt;br /&gt;
  EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;DRI&amp;quot;&lt;br /&gt;
  Mode 0666&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In reference to Alternate xorg.conf ==&lt;br /&gt;
&lt;br /&gt;
I have the exact same configuration as above and the settings work great.  The only issue is that if I try to enable Desktop Effects on Ubuntu, I end up with blank white screens for new windows (for example, opening up a terminal just opens up a white box).  I also lose my minimize/maximize buttons.  This can be fixed by changing the DefaultDepth to 24, but then I go back to my original problem of slow performance.  Does anybody know how to solve the issue with the blank screens without having to increse the depth setting?&lt;br /&gt;
&lt;br /&gt;
== Desktop Effects ==&lt;br /&gt;
&lt;br /&gt;
Does anybody know why Desktop Effects are disabled when using the recommended xorg.conf on Ubuntu?&lt;br /&gt;
&lt;br /&gt;
=== Not enough ram ===&lt;br /&gt;
Because Desktop Effects are no fun with 16 or 32MB VRAM?&lt;br /&gt;
--[[User:Zhenech|Zhenech]] 14:17, 14 May 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_7500&amp;diff=43189</id>
		<title>Talk:ATI Mobility Radeon 7500</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_7500&amp;diff=43189"/>
		<updated>2009-05-14T13:31:02Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Desktop Effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, is there a way to use dri, drm and opengl with this card?&lt;br /&gt;
&lt;br /&gt;
== Functionality of ATI Mobility Radeon 7500 ==&lt;br /&gt;
&lt;br /&gt;
I have a Thinkpad R50 with the ATI Mobility Radeon 7500, currently running Gentoo Linux. (and dual-boot with WinXP)&lt;br /&gt;
&lt;br /&gt;
Direct rendering works with both radeon and ati (gatos) drivers, though the radeon is significantly (20%-30%) faster. I have not tried fglrx.&lt;br /&gt;
&lt;br /&gt;
TV-out works with both VESA and ati (gatos) drivers, though both have problems.&lt;br /&gt;
Using the VESA driver there is no acceleration, and the system is not fast enough to act as a mythfrontend without dropping frames rather badly.&lt;br /&gt;
Using the ati driver performance is acceptable, but the colors are washed out (practically gone) and the contrast is &amp;quot;odd&amp;quot;. The image looks kind like the old &amp;quot;posterization&amp;quot; photo process, where contrast is mostly reduced, but past a certain scale becomes extreme.&lt;br /&gt;
&lt;br /&gt;
In either case, I had to use atitvout to activate the svideo. It complained about VBE, but did the job. I was not able to get both displays working simultaneously.&lt;br /&gt;
&lt;br /&gt;
== Only use external display ==&lt;br /&gt;
I can't figure out how to configure X.org to ''only'' use the external VGA display. Xinerama works fine, but I don't want both displays enabled. Also, it turns off both when I close the lid. Anyone figure this stuff out? [[User:Kkinder|Kkinder]] 21:57, 24 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== HAL bug ==&lt;br /&gt;
According to [https://bugs.launchpad.net/ubuntu/+source/hal/+bug/306014 this bug report], Ubuntu is not giving the radeon video card its proper permissions. Using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;DRI&amp;quot;&lt;br /&gt;
 Mode 0666&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Does not work anymore.  &lt;br /&gt;
&lt;br /&gt;
Check your own permissions under /dev/dri/card0 .  If it reads crw-rw----, then you need to set your permissions to 666.  &lt;br /&gt;
&lt;br /&gt;
Create the file: /etc/udev/rules.d/45-dev-dri-permissions.rules&lt;br /&gt;
and add:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
KERNEL==&amp;quot;card[0-9]&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart the X server and you should get better 3d performance!&lt;br /&gt;
&lt;br /&gt;
== Alternate xorg.conf ==&lt;br /&gt;
&lt;br /&gt;
Using a Thinkpad T30 with an ATI Mobility Radeon 7500, the recommended xorg.conf file gives me an average of 250 FPS with glxgears on Ubuntu 8.04 (Hardy Heron).  The following xorg.conf setup gives me about 1200 FPS.  The major trade-off is a reduced default depth of 16.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]&amp;quot;&lt;br /&gt;
  Driver &amp;quot;radeon&amp;quot;&lt;br /&gt;
  BusID &amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
  Option &amp;quot;AGPMode&amp;quot; &amp;quot;4&amp;quot;&lt;br /&gt;
  Option &amp;quot;XAANoOffscreenPixmaps&amp;quot;&lt;br /&gt;
  Option &amp;quot;AGPFastWrite&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
  Option &amp;quot;EnablePageFlip&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
  Option &amp;quot;DPMS&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;Default Screen&amp;quot;&lt;br /&gt;
  Device &amp;quot;ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]&amp;quot;&lt;br /&gt;
  Monitor &amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
  DefaultDepth 16&lt;br /&gt;
  SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
    Depth 16&lt;br /&gt;
    Modes &amp;quot;1024x768&amp;quot;&lt;br /&gt;
  EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;DRI&amp;quot;&lt;br /&gt;
  Mode 0666&lt;br /&gt;
EndSection&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== In reference to Alternate xorg.conf ==&lt;br /&gt;
&lt;br /&gt;
I have the exact same configuration as above and the settings work great.  The only issue is that if I try to enable Desktop Effects on Ubuntu, I end up with blank white screens for new windows (for example, opening up a terminal just opens up a white box).  I also lose my minimize/maximize buttons.  This can be fixed by changing the DefaultDepth to 24, but then I go back to my original problem of slow performance.  Does anybody know how to solve the issue with the blank screens without having to increse the depth setting?&lt;br /&gt;
&lt;br /&gt;
== Desktop Effects ==&lt;br /&gt;
&lt;br /&gt;
Does anybody know why Desktop Effects are disabled when using the recommended xorg.conf on Ubuntu?&lt;br /&gt;
&lt;br /&gt;
=== Ebene 2 Überschrift ===&lt;br /&gt;
Because Desktop Effects are no fun with 16 or 32MB VRAM?&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=HDAPS&amp;diff=42490</id>
		<title>HDAPS</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=HDAPS&amp;diff=42490"/>
		<updated>2009-04-05T09:10:09Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &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; |&lt;br /&gt;
=== HDAPS - IBM Active Protection System Linux Driver ===&lt;br /&gt;
This is the Linux driver for monitoring the accelerometer known as [[Active Protection System|IBM Active Protection System]].&lt;br /&gt;
&lt;br /&gt;
The driver only enables reading of the acceleration data. It does '''not''' perform [[#Harddisk Protection|automatic disk head parking]]. But there are already some other useful [[#Applications|applications]] for HDAPS, using the {{path|/sys}} interface it provides.&lt;br /&gt;
&lt;br /&gt;
{{WARN|There are two versions of the hdaps driver, one in the Linux kernel mainline, and another provided by [[tp_smapi]].  '''Use of the tp_smapi version of hdaps is strongly recommended by the current hdaps developers.'''}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
*provides accelerometer values via sysfs&lt;br /&gt;
*provides a joystick type input device&lt;br /&gt;
&lt;br /&gt;
=== Project Homepage / Availability ===&lt;br /&gt;
*[http://hdaps.sourceforge.net/ Project Homepage]&lt;br /&gt;
*The driver is included in the 2.6-mm series of kernels since August, 26th 2005.&lt;br /&gt;
*The driver is now in the mainline (2.6.14).&lt;br /&gt;
*The [[tp_smapi]] package contains some patches to this driver. These are necessary for some recent models, and recommended for all.&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
A driver is included in recent Linux kernels and is actively maintained, but it is very inferior to the driver in tp_smapi (which provides its own hdaps module).&lt;br /&gt;
&lt;br /&gt;
=== How to install the driver ===&lt;br /&gt;
Recent Linux kernels include the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver. However, the driver in the mainline Linux kernel has two problems with recent models:&lt;br /&gt;
* It doesn't whitelist them (you have to edit hdaps_init() in drivers/hwmon/hdaps.c to include a line like &amp;lt;tt&amp;gt;HDAPS_DMI_MATCH_LENOVO(&amp;quot;ThinkPad T60&amp;quot;)&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* It doesn't work reliably, e.g., it may read out constant values (0,0). See [http://sourceforge.net/mailarchive/message.php?msg_id=15350314 here].&lt;br /&gt;
&lt;br /&gt;
To solve both problems, install the modified hdaps that is bundled with [[tp_smapi]].&lt;br /&gt;
&lt;br /&gt;
=== Harddisk Protection ===&lt;br /&gt;
As mentioned above, the hdaps kernel driver is only responsible for reading the accelerometer data and exporting it through the sysfs interface. In order to use this information to protect the disk, some additional steps are required.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]].&lt;br /&gt;
&lt;br /&gt;
=== Input device support ===&lt;br /&gt;
In more recent versions of the Linux kernel, the hdaps exports event devices with the accelerometer data.  These devices can be used as-is by some programs (e.g. hdapsd), but for most they must be handled by the additional kernel module &amp;lt;code&amp;gt;joydev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When both modules are loaded, joydev will provide standard joystick device emulation for hdaps (standard hdaps exports just one joystick device.  enhanced hdaps from tp_smapi will export two due to issues still unsolved on joydev, but the second one must not be used as a joystick).&lt;br /&gt;
&lt;br /&gt;
{{WARN|Letting a program bind to these joystick devices can cause surprising results if you are not aware of it. e.g.: mplayer can act quite strangely.  Also, letting a program bind to the second joystick device from enhanced HDAPS is guaranteed to be trouble}}&lt;br /&gt;
&lt;br /&gt;
Udev can be used to create device nodes in /dev for use by user space programs that access the joystick, and to set appropriate permissions.&lt;br /&gt;
&lt;br /&gt;
In order for non-root users to access these device files, their permissions must be tweaked a little through an appropriate udev rule and corresponding &amp;quot;joy&amp;quot; group.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|addgroup joy}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; joy}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;# echo 'SUBSYSTEM==&amp;quot;input&amp;quot;, KERNEL==&amp;quot;js*&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;joy&amp;quot;' &amp;gt;&amp;gt; /etc/udev/hdaps-joy.rules&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|ln -s ../hdaps-joy.rules /etc/udev/rules.d/z60_hdaps-joy.rules}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs you can use to test and calibrate the device files include &amp;lt;code&amp;gt;jscalibrator&amp;lt;/code&amp;gt; (gui) and &amp;lt;code&amp;gt;jstest&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;jscal&amp;lt;/code&amp;gt; (cli) packaged together (at least in Debian) simply as &amp;quot;joystick&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
====Disk head parking====&lt;br /&gt;
You will need the kernel patch below and the hdapsd userspace daemon. The GUI monitoring is optional.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]] for more information.&lt;br /&gt;
&lt;br /&gt;
===== Kernel patch =====&lt;br /&gt;
Due to significant changes in the way the libata module which handles disk i/o, applying any of the currently available patches to kernel 2.6.24 will intermittently cause system hangs when the queue is frozen (i.e., the heads are parked). It is recommended either that you stay at kernel [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.17.tar.bz2 2.6.23] or do without disk protection in 2.6.24 until the kinks have been worked out. There has been significant work on the part of [http://lkml.org/lkml/2008/2/25/478 Elias Oltmanns], author of the more recent patches, to get this worked out and eventually get shock protection built into the mainline kernel.&lt;br /&gt;
&lt;br /&gt;
Below are some links to patches for various Linux kernel versions. As noted above, your mileage may vary with the 2.6.24-rc3 patch as it was after this release candidate that things stopped working nicely. &lt;br /&gt;
{{HINT|To apply a patch, change to the root directory of the kernel tree and run&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;patch -p1 -l &amp;lt; hdaps_xx.patch&amp;lt;/code&amp;gt;}}&lt;br /&gt;
* New interface (requires hdapsd dated 2008-10-04 or newer)&lt;br /&gt;
** In mainline kernel 2.6.28&lt;br /&gt;
** [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1393 disk-protect patch for kernel 2.6.27.2]&lt;br /&gt;
* Old interface&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1324/raw disk-protect patch for kernel 2.6.26]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1297/raw disk-protect patch for kernel 2.6.26-rc9]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1245/raw disk-protect patch for kernel 2.6.25-rc9] &amp;amp;mdash; may cause system locks (same as patch for 2.6.24-rc3). Apply [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html this fix] before.&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1094 disk-protect patch for kernel 2.6.24-rc3] &amp;amp;mdash; may cause system locks (see [http://marc.info/?l=linux-thinkpad&amp;amp;m=120259594519907 here], [http://marc.info/?l=linux-thinkpad&amp;amp;m=120259929023300 here] and try [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html this fix])&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1092 disk-protect patch for 2.6.23.8] + [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1113 error check fix]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1077 disk-protect patch for 2.6.22.9 and 2.6.23-rc9]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/993 disk-protect patch for 2.6.20-rc6]&lt;br /&gt;
* Ancient interface&lt;br /&gt;
**[http://www.nabble.com/attachment/9047418/0/hdaps_protect-2.6.20.patch.bz2 Latest sata/ide disk protection patch for 2.6.20]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.kernel/470413 Latest sata/ide disk protection patch for 2.6.19-rc6]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch Latest sata/ide disk protection patch for 2.6.18.3]&lt;br /&gt;
**[http://exitzero.de/t41p-configs/hdaps_protect-2.6.17.1-20060625.patch Untested patch for 2.6.17.1]: see [http://thread.gmane.org/gmane.linux.drivers.hdaps.devel/708/focus=708]&lt;br /&gt;
**[http://whoopie.gmxhome.de/linux/patches/2.6.17.14-tj/03-hdaps_protect-20060430-for-2.6.17-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.17.4 patches] - See [[How_to_hotswap_UltraBay_devices]]&lt;br /&gt;
**[http://whoopie.gmxhome.de/linux/patches/2.6.16-tj/05-hdaps_protect-20060430-for-2.6.16-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.16.16 patches] - See [[How_to_hotswap_UltraBay_devices]]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060430.patch Latest sata/ide disk protection patch for 2.6.16]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060118.patch sata/ide disk protection patch for 2.6.15]&lt;br /&gt;
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.15.patch disk park patch adapted for the t41p model] &amp;lt;tt&amp;gt; kernel 2.6.15 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.14.patch disk park patch adapted for the t41p model] &amp;lt;tt&amp;gt; kernel 2.6.14 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://lwn.net/Articles/154923/ disk park patch] &amp;lt;tt&amp;gt;an experimental patch for parking the disk (Linux 2.6.14 for 2.6.15 see below)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Userspace daemon =====&lt;br /&gt;
*Current version: [http://sourceforge.net/project/showfiles.php?group_id=138242&amp;amp;package_id=308030 hdapsd-20090401]&amp;lt;br&amp;gt;&lt;br /&gt;
This version optionally reduces timer interrupts (as measured by [[PowerTOP]]), and thereby reduces power consumption on modern (&amp;quot;tickless&amp;quot;) Linux kernels. Interrupt reduction requires the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; kernel module from [[tp_smapi]] 0.32 or newer, and a udev rule. If these are not present, it will default to an older polling method that is slightly more power-hungry. The udev rule helps hdapsd find the input device, and on most distributions it can be created as follows:&lt;br /&gt;
 # echo 'KERNEL==&amp;quot;event[0-9]*&amp;quot;, ATTRS{phys}==&amp;quot;hdaps/input1&amp;quot;,ATTRS{modalias}==&amp;quot;input:b0019v1014p5054e4801-*&amp;quot;,SYMLINK+=&amp;quot;input/hdaps/accelerometer-event&amp;quot;' \&lt;br /&gt;
   &amp;gt; /etc/udev/rules.d/51-hdaps.rules&lt;br /&gt;
Then reboot or run {{cmdroot|/sbin/udevtrigger}}, and verify that the {{path|/dev/input/hdaps/accelerometer-event}} symlink exists.&lt;br /&gt;
&lt;br /&gt;
*[ftp://rohrmoser-engineering.de/pub Modified adaptive algorithm version] - uses a different (and potentially better) algorithm for the adaptive sensivity threshold.&lt;br /&gt;
{{HINT| Gentoo users : due to new interface your initscript won't be longer working. Read documentation before upgrading to this version. &lt;br /&gt;
Use an overlay listed bellow with updated versions of related packages}}&lt;br /&gt;
&lt;br /&gt;
===== GUI monitoring =====&lt;br /&gt;
*[http://roy.marples.name/node/269 khdapmonitor] KDE System Tray Monitor&lt;br /&gt;
*[http://www.dresco.co.uk/hdaps/gnome-hdaps-applet-20081204.tar.gz gnome-hdaps-applet] visual display of disk protection status in gnome panel&lt;br /&gt;
*[http://www.kde-look.org/content/show.php/Applet+HDAPS?content=78387 applet_hdaps] KDE4 Plasmoid display disk protection status&lt;br /&gt;
*[http://awn.planetblur.org/index.php?shard=forum&amp;amp;action=g_reply&amp;amp;ID=1916&amp;amp;page=1&amp;amp;isLive=true ThinkHDAPS] Avant Window Manager applet for disk protection status&lt;br /&gt;
*[http://web.student.tuwien.ac.at/~e0726415/thinkhdaps.html ThinkHDAPS] A standalone (=gtk.StatusIcon) version of onox' awn applet; v0.2 supports new sysfs layout (kernel &amp;gt;=2.6.27); Should work for the new HP driver as well.&lt;br /&gt;
*[http://michael.orlitzky.com/code/xfce4-hdaps.php xfce4-hdaps] An XFCE4 panel plugin for the HDAPS system.&lt;br /&gt;
&lt;br /&gt;
====Security &amp;amp; safety====&lt;br /&gt;
*[[Script for theft alarm using HDAPS]]&lt;br /&gt;
&lt;br /&gt;
====Tilt monitoring====&lt;br /&gt;
*[http://www.mulliner.org/collin/gkibm-acpi.php gkhdaps] &amp;lt;tt&amp;gt;a GKrellM applet displaying tilt data&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 gnome-tilt] &amp;lt;tt&amp;gt;a gnome applet showing tilt data&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Visualisation of ThinkPad orientation====&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 hdaps-gl] &amp;lt;tt&amp;gt;a little app animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 hdapsgl-applet] &amp;lt;tt&amp;gt; a GNOME applet animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 wmadhps] &amp;lt;tt&amp;gt;a WindowMaker DockApp animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://www.cs.cmu.edu/~ecc/gyro.tar.gz OpenGL gyroscope hack] &amp;lt;tt&amp;gt;keeps your display levelled when tilting the ThinkPad&amp;lt;/tt&amp;gt; (warning: [http://en.wikipedia.org/wiki/Tarbomb uncompresses in the current directory]!)&lt;br /&gt;
&lt;br /&gt;
====Games====&lt;br /&gt;
*[http://icculus.org/neverball/ Neverball] is quite fun with HDAPS. (You'll need to have the HDAPS joystick device)&lt;br /&gt;
*Turn your ThinkPad into a Jedi Weapon (hey, it [http://isnoop.net/blog/2006/05/20/macsaber-turn-your-mac-into-a-jedi-weapon works for Mac laptops])&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
&lt;br /&gt;
*[http://blog.micampe.it/articles/2006/06/04/here-comes-the-smackpad smack.py] - switch workspace by smacking your laptop, inspired by the [http://blog.medallia.com/2006/05/smacbook_pro.html SmackBook] (uses EWMH)&lt;br /&gt;
**an [http://weblogs.mozillazine.org/gerv/archives/2006/09/stablilised_smackpad.html improved version] adds stabilization (by comparing smacks to previous ones, uses EWMH)&lt;br /&gt;
**another [http://pberndt.com/Programme/Linux/pyhdaps/index.html approach] adds stabilization (by requiring a certain type of value deflection, uses xmacroplay)&lt;br /&gt;
**[http://www.gnome.org/~fherrera/gtollina.c GTollina] is another smack program for use with compiz (video [http://www.gnome.org/~fherrera/blog/gtollina.html here]).&lt;br /&gt;
*[http://blog.odonnell.nu/61.html xmms-smack.py] - move through your xmms playlist by smacking, based on the two smack scripts above.&lt;br /&gt;
*[http://www-128.ibm.com/developerworks/linux/library/l-knockage.html?ca=dgr-lnxw02aKnockBasedCommands KnockBasedCommands] - Execute commands by tapping your laptop.&lt;br /&gt;
*[http://people.ksp.sk/~mic/?menu=32&amp;amp;file=rotate.py rotate.py] - rotate desktop by turning your laptop&lt;br /&gt;
*[[hdaps_ess|Enhanced smack script]] ess.py is based on the smacks scripts listed in this section. It includes stabilization, a lot of tuning options and it handles both axis (at best you should be able to map 8 commands, even if it is possible I was not able to do so). It is not perfect but on my Thinkpad it works better than the other scripts.&lt;br /&gt;
&lt;br /&gt;
=== Interesting links related to this project ===&lt;br /&gt;
* [https://lists.sourceforge.net/lists/listinfo/hdaps-devel HDAPS mailinglist and its archive]&lt;br /&gt;
* #hdaps channel on irc.freenode.org&lt;br /&gt;
* [https://sourceforge.net/projects/hdaps/ hdaps projects] overview of userspace programs using hdaps&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TPAD-HDFIRM IBM ThinkPads hardware drive firmware site]&lt;br /&gt;
* [http://www.paul.sladen.org/thinkpad-r31/accelerometer.html http://www.paul.sladen.org/thinkpad-r31/accelerometer/]&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=119845 Gentoo ebuild for hdaps driver and daemon including a initscript*&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137345 Gentoo ebuild for gkhdaps gkrell plugin&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137350 Gentoo ebuild for hdaps-gl application&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137351 Gentoo ebuild for gnome hdapsgl-applet&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137352 Gentoo ebuild for gnome tilt application&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137353 Gentoo ebuild for wmhdaps&lt;br /&gt;
* http://gentoo.o0o.nu Gentoo sectools overlay with fresh hdaps-related ebuilds and patches&lt;br /&gt;
* [http://lenovoblogs.com/insidethebox/?p=71 Why the ThinkPad accelerometer is only 2D] - explanation by Lenovo&lt;br /&gt;
&lt;br /&gt;
[[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Drivers]] [[Category:Z61m]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=HDAPS&amp;diff=38104</id>
		<title>HDAPS</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=HDAPS&amp;diff=38104"/>
		<updated>2008-07-01T15:54:26Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* GUI monitoring */&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; |&lt;br /&gt;
=== HDAPS - IBM Active Protection System Linux Driver ===&lt;br /&gt;
This is the Linux driver for monitoring the accelerometer known as [[Active Protection System|IBM Active Protection System]].&lt;br /&gt;
&lt;br /&gt;
The driver only enables reading of the acceleration data. It does '''not''' perform [[#Harddisk Protection|automatic disk head parking]]. But there are already some other useful [[#Applications|applications]] for HDAPS, using the {{path|/sys}} interface it provides.&lt;br /&gt;
&lt;br /&gt;
{{WARN|There are two versions of the hdaps driver, one in the Linux kernel mainline, and another provided by [[tp_smapi]].  '''Use of the tp_smapi version of hdaps is strongly recommended by the current hdaps developers.'''}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
*provides accelerometer values via sysfs&lt;br /&gt;
*provides a joystick type input device&lt;br /&gt;
&lt;br /&gt;
=== Project Homepage / Availability ===&lt;br /&gt;
*[http://hdaps.sourceforge.net/ Project Homepage]&lt;br /&gt;
*The driver is included in the 2.6-mm series of kernels since August, 26th 2005.&lt;br /&gt;
*The driver is now in the mainline (2.6.14).&lt;br /&gt;
*The [[tp_smapi]] package contains some patches to this driver. These are necessary for some recent models, and recommended for all.&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
A driver is included in recent Linux kernels and is actively maintained, but it is very inferior to the driver in tp_smapi (which provides its own hdaps module).&lt;br /&gt;
&lt;br /&gt;
=== How to install the driver ===&lt;br /&gt;
Recent Linux kernels include the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver. However, the driver in the mainline Linux kernel has two problems with recent models:&lt;br /&gt;
* It doesn't whitelist them (you have to edit hdaps_init() in drivers/hwmon/hdaps.c to include a line like &amp;lt;tt&amp;gt;HDAPS_DMI_MATCH_LENOVO(&amp;quot;ThinkPad T60&amp;quot;)&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* It doesn't work reliably, e.g., it may read out constant values (0,0). See [http://sourceforge.net/mailarchive/message.php?msg_id=15350314 here].&lt;br /&gt;
&lt;br /&gt;
To solve both problems, install the modified hdaps that is bundled with [[tp_smapi]].&lt;br /&gt;
&lt;br /&gt;
=== Harddisk Protection ===&lt;br /&gt;
As mentioned above, the hdaps kernel driver is only responsible for reading the accelerometer data and exporting it through the sysfs interface. In order to use this information to protect the disk, some additional steps are required.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]].&lt;br /&gt;
&lt;br /&gt;
=== Input device support ===&lt;br /&gt;
In more recent versions of the Linux kernel, the hdaps exports event devices with the accelerometer data.  These devices can be used as-is by some programs (e.g. hdapsd), but for most they must be handled by the additional kernel module &amp;lt;code&amp;gt;joydev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When both modules are loaded, joydev will provide standard joystick device emulation for hdaps (standard hdaps exports just one joystick device.  enhanced hdaps from tp_smapi will export two due to issues still unsolved on joydev, but the second one must not be used as a joystick).&lt;br /&gt;
&lt;br /&gt;
{{WARN|Letting a program bind to these joystick devices can cause surprising results if you are not aware of it. e.g.: mplayer can act quite strangely.  Also, letting a program bind to the second joystick device from enhanced HDAPS is guaranteed to be trouble}}&lt;br /&gt;
&lt;br /&gt;
Udev can be used to create device nodes in /dev for use by user space programs that access the joystick, and to set appropriate permissions.&lt;br /&gt;
&lt;br /&gt;
In order for non-root users to access these device files, their permissions must be tweaked a little through an appropriate udev rule and corresponding &amp;quot;joy&amp;quot; group.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|addgroup joy}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; joy}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;# echo 'SUBSYSTEM==&amp;quot;input&amp;quot;, KERNEL==&amp;quot;js*&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;joy&amp;quot;' &amp;gt;&amp;gt; /etc/udev/hdaps-joy.rules&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|ln -s ../hdaps-joy.rules /etc/udev/rules.d/z60_hdaps-joy.rules}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs you can use to test and calibrate the device files include &amp;lt;code&amp;gt;jscalibrator&amp;lt;/code&amp;gt; (gui) and &amp;lt;code&amp;gt;jstest&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;jscal&amp;lt;/code&amp;gt; (cli) packaged together (at least in Debian) simply as &amp;quot;joystick&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
====Disk head parking====&lt;br /&gt;
You will need the kernel patch below and the hdapsd userspace daemon. The GUI monitoring is optional.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]] for more information.&lt;br /&gt;
&lt;br /&gt;
===== Kernel patch =====&lt;br /&gt;
Due to significant changes in the way the libata module which handles disk i/o, applying any of the currently available patches to kernel 2.6.24 will intermittently cause system hangs when the queue is frozen (i.e., the heads are parked). It is recommended either that you stay at kernel [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.17.tar.bz2 2.6.23] or do without disk protection in 2.6.24 until the kinks have been worked out. There has been significant work on the part of [http://lkml.org/lkml/2008/2/25/478 Elias Oltmanns], author of the more recent patches, to get this worked out and eventually get shock protection built into the mainline kernel.&lt;br /&gt;
&lt;br /&gt;
Below are some links to patches for various Linux kernel versions. As noted above, your mileage may vary with the 2.6.24-rc3 patch as it was after this release candidate that things stopped working nicely. &lt;br /&gt;
{{HINT|To apply a patch, change to the root directory of the kernel tree and run&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;patch -p1 -l &amp;lt; hdaps_xx.patch&amp;lt;/code&amp;gt;}}&lt;br /&gt;
* New interface&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1245 disk-protect patch for kernel 2.6.25-rc9] &amp;amp;mdash; may cause system locks (same as patch for 2.6.24-rc3). Apply [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html this fix] before.&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1094 disk-protect patch for kernel 2.6.24-rc3] &amp;amp;mdash; may cause system locks (see [http://marc.info/?l=linux-thinkpad&amp;amp;m=120259594519907 here], [http://marc.info/?l=linux-thinkpad&amp;amp;m=120259929023300 here] and try [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html this fix])&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1092 disk-protect patch for 2.6.23.8] + [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1113 error check fix]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1077 disk-protect patch for 2.6.22.9 and 2.6.23-rc9]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/993 disk-protect patch for 2.6.20-rc6]&lt;br /&gt;
* Old interface&lt;br /&gt;
**[http://www.nabble.com/attachment/9047418/0/hdaps_protect-2.6.20.patch.bz2 Latest sata/ide disk protection patch for 2.6.20]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.kernel/470413 Latest sata/ide disk protection patch for 2.6.19-rc6]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch Latest sata/ide disk protection patch for 2.6.18.3]&lt;br /&gt;
**[http://exitzero.de/t41p-configs/hdaps_protect-2.6.17.1-20060625.patch Untested patch for 2.6.17.1]: see [http://thread.gmane.org/gmane.linux.drivers.hdaps.devel/708/focus=708]&lt;br /&gt;
**[http://whoopie.gmxhome.de/linux/patches/2.6.17.14-tj/03-hdaps_protect-20060430-for-2.6.17-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.17.4 patches] - See [[How_to_hotswap_UltraBay_devices]]&lt;br /&gt;
**[http://whoopie.gmxhome.de/linux/patches/2.6.16-tj/05-hdaps_protect-20060430-for-2.6.16-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.16.16 patches] - See [[How_to_hotswap_UltraBay_devices]]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060430.patch Latest sata/ide disk protection patch for 2.6.16]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060118.patch sata/ide disk protection patch for 2.6.15]&lt;br /&gt;
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.15.patch disk park patch adapted for the t41p model] &amp;lt;tt&amp;gt; kernel 2.6.15 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.14.patch disk park patch adapted for the t41p model] &amp;lt;tt&amp;gt; kernel 2.6.14 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://lwn.net/Articles/154923/ disk park patch] &amp;lt;tt&amp;gt;an experimental patch for parking the disk (Linux 2.6.14 for 2.6.15 see below)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Userspace daemon =====&lt;br /&gt;
*[http://www.dresco.co.uk/hdaps/hdapsd-20070524.c Recommended version]&lt;br /&gt;
*[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1045 Reduced power version] - reduces timer interrupts, as measured by [[PowerTOP]]. This leads to lower power consumption on [[tickless kernel|tickless kernels]]. Interrupt reduction requires the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; kernel module from [[tp_smapi]] 0.32 or newer, and a [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1040 udev rule].&lt;br /&gt;
*[ftp://rohrmoser-engineering.de/pub Modified adaptive algorithm version] - uses a different (and potentially better) algorithm for the adaptive sensivity threshold.&lt;br /&gt;
&lt;br /&gt;
===== GUI monitoring =====&lt;br /&gt;
*[http://roy.marples.name/node/269 khdapmonitor] KDE System Tray Monitor&lt;br /&gt;
*[http://www.dresco.co.uk/hdaps/gnome-hdaps-applet-20060120.tar.gz gnome-hdaps-applet] visual display of disk protection status in gnome panel&lt;br /&gt;
*[http://www.kde-look.org/content/show.php/Applet+HDAPS?content=78387 applet_hdaps] KDE4 Plasmoid display disk protection status&lt;br /&gt;
*[http://awn.planetblur.org/index.php?shard=forum&amp;amp;action=g_reply&amp;amp;ID=1916&amp;amp;page=1&amp;amp;isLive=true ThinkHDAPS] Avant Window Manager applet for disk protection status&lt;br /&gt;
&lt;br /&gt;
====Security &amp;amp; safety====&lt;br /&gt;
*[[Script for theft alarm using HDAPS]]&lt;br /&gt;
&lt;br /&gt;
====Tilt monitoring====&lt;br /&gt;
*[http://www.mulliner.org/collin/gkibm-acpi.php gkhdaps] &amp;lt;tt&amp;gt;a GKrellM applet displaying tilt data&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://rlove.org/log/2005082203.html gnome-tilt] &amp;lt;tt&amp;gt;a gnome applet showing tilt data&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Visualisation of ThinkPad orientation====&lt;br /&gt;
*[http://rlove.org/log/2005082401.html hdaps-gl] &amp;lt;tt&amp;gt;a little app animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 hdapsgl-applet] &amp;lt;tt&amp;gt; a GNOME applet animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 wmadhps] &amp;lt;tt&amp;gt;a WindowMaker DockApp animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://www.cs.cmu.edu/~ecc/gyro.tar.gz OpenGL gyroscope hack] &amp;lt;tt&amp;gt;keeps your display levelled when tilting the ThinkPad&amp;lt;/tt&amp;gt; (warning: [http://en.wikipedia.org/wiki/Tarbomb uncompresses in the current directory]!)&lt;br /&gt;
&lt;br /&gt;
====Games====&lt;br /&gt;
*[http://icculus.org/neverball/ Neverball] is quite fun with HDAPS. (You'll need to have the HDAPS joystick device)&lt;br /&gt;
*Turn your ThinkPad into a Jedi Weapon (hey, it [http://isnoop.net/blog/2006/05/20/macsaber-turn-your-mac-into-a-jedi-weapon works for Mac laptops])&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
&lt;br /&gt;
*[http://blog.micampe.it/articles/2006/06/04/here-comes-the-smackpad smack.py] - switch workspace by smacking your laptop, inspired by the [http://blog.medallia.com/2006/05/smacbook_pro.html SmackBook] (uses EWMH)&lt;br /&gt;
**an [http://weblogs.mozillazine.org/gerv/archives/2006/09/stablilised_smackpad.html improved version] adds stabilization (by comparing smacks to previous ones, uses EWMH)&lt;br /&gt;
**another [http://pberndt.com/Programme/Linux/pyhdaps/index.html approach] adds stabilization (by requiring a certain type of value deflection, uses xmacroplay)&lt;br /&gt;
**[http://www.gnome.org/~fherrera/gtollina.c GTollina] is another smack program for use with compiz (video [http://www.gnome.org/~fherrera/blog/gtollina.html here]).&lt;br /&gt;
*[http://blog.odonnell.nu/61.html xmms-smack.py] - move through your xmms playlist by smacking, based on the two smack scripts above.&lt;br /&gt;
*[http://www-128.ibm.com/developerworks/linux/library/l-knockage.html?ca=dgr-lnxw02aKnockBasedCommands KnockBasedCommands] - Execute commands by tapping your laptop.&lt;br /&gt;
*[http://people.ksp.sk/~mic/?menu=32&amp;amp;file=rotate.py rotate.py] - rotate desktop by turning your laptop&lt;br /&gt;
&lt;br /&gt;
=== Interesting links related to this project ===&lt;br /&gt;
* [https://lists.sourceforge.net/lists/listinfo/hdaps-devel HDAPS mailinglist and its archive]&lt;br /&gt;
* #hdaps channel on irc.freenode.org&lt;br /&gt;
* [https://sourceforge.net/projects/hdaps/ hdaps projects] overview of userspace programs using hdaps&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TPAD-HDFIRM IBM ThinkPads hardware drive firmware site]&lt;br /&gt;
* [http://www.paul.sladen.org/thinkpad-r31/accelerometer.html http://www.paul.sladen.org/thinkpad-r31/accelerometer/]&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=119845 Gentoo ebuild for hdaps driver and daemon including a initscript*&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137345 Gentoo ebuild for gkhdaps gkrell plugin&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137350 Gentoo ebuild for hdaps-gl application&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137351 Gentoo ebuild for gnome hdapsgl-applet&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137352 Gentoo ebuild for gnome tilt application&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137353 Gentoo ebuild for wmhdaps&lt;br /&gt;
* http://gentoo.o0o.nu Gentoo sectools overlay with fresh hdaps-related ebuilds and patches&lt;br /&gt;
* [http://lenovoblogs.com/insidethebox/?p=71 Why the ThinkPad accelerometer is only 2D] - explanation by Lenovo&lt;br /&gt;
&lt;br /&gt;
[[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Drivers]] [[Category:Z61m]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=HDAPS&amp;diff=38103</id>
		<title>HDAPS</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=HDAPS&amp;diff=38103"/>
		<updated>2008-07-01T15:52:43Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* GUI monitoring */&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; |&lt;br /&gt;
=== HDAPS - IBM Active Protection System Linux Driver ===&lt;br /&gt;
This is the Linux driver for monitoring the accelerometer known as [[Active Protection System|IBM Active Protection System]].&lt;br /&gt;
&lt;br /&gt;
The driver only enables reading of the acceleration data. It does '''not''' perform [[#Harddisk Protection|automatic disk head parking]]. But there are already some other useful [[#Applications|applications]] for HDAPS, using the {{path|/sys}} interface it provides.&lt;br /&gt;
&lt;br /&gt;
{{WARN|There are two versions of the hdaps driver, one in the Linux kernel mainline, and another provided by [[tp_smapi]].  '''Use of the tp_smapi version of hdaps is strongly recommended by the current hdaps developers.'''}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
*provides accelerometer values via sysfs&lt;br /&gt;
*provides a joystick type input device&lt;br /&gt;
&lt;br /&gt;
=== Project Homepage / Availability ===&lt;br /&gt;
*[http://hdaps.sourceforge.net/ Project Homepage]&lt;br /&gt;
*The driver is included in the 2.6-mm series of kernels since August, 26th 2005.&lt;br /&gt;
*The driver is now in the mainline (2.6.14).&lt;br /&gt;
*The [[tp_smapi]] package contains some patches to this driver. These are necessary for some recent models, and recommended for all.&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
A driver is included in recent Linux kernels and is actively maintained, but it is very inferior to the driver in tp_smapi (which provides its own hdaps module).&lt;br /&gt;
&lt;br /&gt;
=== How to install the driver ===&lt;br /&gt;
Recent Linux kernels include the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver. However, the driver in the mainline Linux kernel has two problems with recent models:&lt;br /&gt;
* It doesn't whitelist them (you have to edit hdaps_init() in drivers/hwmon/hdaps.c to include a line like &amp;lt;tt&amp;gt;HDAPS_DMI_MATCH_LENOVO(&amp;quot;ThinkPad T60&amp;quot;)&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* It doesn't work reliably, e.g., it may read out constant values (0,0). See [http://sourceforge.net/mailarchive/message.php?msg_id=15350314 here].&lt;br /&gt;
&lt;br /&gt;
To solve both problems, install the modified hdaps that is bundled with [[tp_smapi]].&lt;br /&gt;
&lt;br /&gt;
=== Harddisk Protection ===&lt;br /&gt;
As mentioned above, the hdaps kernel driver is only responsible for reading the accelerometer data and exporting it through the sysfs interface. In order to use this information to protect the disk, some additional steps are required.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]].&lt;br /&gt;
&lt;br /&gt;
=== Input device support ===&lt;br /&gt;
In more recent versions of the Linux kernel, the hdaps exports event devices with the accelerometer data.  These devices can be used as-is by some programs (e.g. hdapsd), but for most they must be handled by the additional kernel module &amp;lt;code&amp;gt;joydev&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When both modules are loaded, joydev will provide standard joystick device emulation for hdaps (standard hdaps exports just one joystick device.  enhanced hdaps from tp_smapi will export two due to issues still unsolved on joydev, but the second one must not be used as a joystick).&lt;br /&gt;
&lt;br /&gt;
{{WARN|Letting a program bind to these joystick devices can cause surprising results if you are not aware of it. e.g.: mplayer can act quite strangely.  Also, letting a program bind to the second joystick device from enhanced HDAPS is guaranteed to be trouble}}&lt;br /&gt;
&lt;br /&gt;
Udev can be used to create device nodes in /dev for use by user space programs that access the joystick, and to set appropriate permissions.&lt;br /&gt;
&lt;br /&gt;
In order for non-root users to access these device files, their permissions must be tweaked a little through an appropriate udev rule and corresponding &amp;quot;joy&amp;quot; group.&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|addgroup joy}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|adduser &amp;lt;you&amp;gt; joy}}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;# echo 'SUBSYSTEM==&amp;quot;input&amp;quot;, KERNEL==&amp;quot;js*&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;joy&amp;quot;' &amp;gt;&amp;gt; /etc/udev/hdaps-joy.rules&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{cmdroot|ln -s ../hdaps-joy.rules /etc/udev/rules.d/z60_hdaps-joy.rules}}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Programs you can use to test and calibrate the device files include &amp;lt;code&amp;gt;jscalibrator&amp;lt;/code&amp;gt; (gui) and &amp;lt;code&amp;gt;jstest&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;jscal&amp;lt;/code&amp;gt; (cli) packaged together (at least in Debian) simply as &amp;quot;joystick&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
====Disk head parking====&lt;br /&gt;
You will need the kernel patch below and the hdapsd userspace daemon. The GUI monitoring is optional.&lt;br /&gt;
&lt;br /&gt;
See [[How to protect the harddisk through APS]] for more information.&lt;br /&gt;
&lt;br /&gt;
===== Kernel patch =====&lt;br /&gt;
Due to significant changes in the way the libata module which handles disk i/o, applying any of the currently available patches to kernel 2.6.24 will intermittently cause system hangs when the queue is frozen (i.e., the heads are parked). It is recommended either that you stay at kernel [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.17.tar.bz2 2.6.23] or do without disk protection in 2.6.24 until the kinks have been worked out. There has been significant work on the part of [http://lkml.org/lkml/2008/2/25/478 Elias Oltmanns], author of the more recent patches, to get this worked out and eventually get shock protection built into the mainline kernel.&lt;br /&gt;
&lt;br /&gt;
Below are some links to patches for various Linux kernel versions. As noted above, your mileage may vary with the 2.6.24-rc3 patch as it was after this release candidate that things stopped working nicely. &lt;br /&gt;
{{HINT|To apply a patch, change to the root directory of the kernel tree and run&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;patch -p1 -l &amp;lt; hdaps_xx.patch&amp;lt;/code&amp;gt;}}&lt;br /&gt;
* New interface&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1245 disk-protect patch for kernel 2.6.25-rc9] &amp;amp;mdash; may cause system locks (same as patch for 2.6.24-rc3). Apply [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html this fix] before.&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1094 disk-protect patch for kernel 2.6.24-rc3] &amp;amp;mdash; may cause system locks (see [http://marc.info/?l=linux-thinkpad&amp;amp;m=120259594519907 here], [http://marc.info/?l=linux-thinkpad&amp;amp;m=120259929023300 here] and try [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2008-February/042226.html this fix])&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1092 disk-protect patch for 2.6.23.8] + [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1113 error check fix]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1077 disk-protect patch for 2.6.22.9 and 2.6.23-rc9]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/993 disk-protect patch for 2.6.20-rc6]&lt;br /&gt;
* Old interface&lt;br /&gt;
**[http://www.nabble.com/attachment/9047418/0/hdaps_protect-2.6.20.patch.bz2 Latest sata/ide disk protection patch for 2.6.20]&lt;br /&gt;
**[http://article.gmane.org/gmane.linux.kernel/470413 Latest sata/ide disk protection patch for 2.6.19-rc6]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect-2.6.18.3-2.patch Latest sata/ide disk protection patch for 2.6.18.3]&lt;br /&gt;
**[http://exitzero.de/t41p-configs/hdaps_protect-2.6.17.1-20060625.patch Untested patch for 2.6.17.1]: see [http://thread.gmane.org/gmane.linux.drivers.hdaps.devel/708/focus=708]&lt;br /&gt;
**[http://whoopie.gmxhome.de/linux/patches/2.6.17.14-tj/03-hdaps_protect-20060430-for-2.6.17-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.17.4 patches] - See [[How_to_hotswap_UltraBay_devices]]&lt;br /&gt;
**[http://whoopie.gmxhome.de/linux/patches/2.6.16-tj/05-hdaps_protect-20060430-for-2.6.16-tj.patch Latest sata/ide disk protection patch for use with the libata hotplug 2.6.16.16 patches] - See [[How_to_hotswap_UltraBay_devices]]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060430.patch Latest sata/ide disk protection patch for 2.6.16]&lt;br /&gt;
**[http://www.dresco.co.uk/hdaps/hdaps_protect.20060118.patch sata/ide disk protection patch for 2.6.15]&lt;br /&gt;
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.15.patch disk park patch adapted for the t41p model] &amp;lt;tt&amp;gt; kernel 2.6.15 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://jenster.dyndns.org/files/blk_freeze-01-nodetection-for-2.6.14.patch disk park patch adapted for the t41p model] &amp;lt;tt&amp;gt; kernel 2.6.14 ([http://sourceforge.net/mailarchive/message.php?msg_id=13214288 capability detection disabled], no libata support)&amp;lt;/tt&amp;gt;&lt;br /&gt;
**[http://lwn.net/Articles/154923/ disk park patch] &amp;lt;tt&amp;gt;an experimental patch for parking the disk (Linux 2.6.14 for 2.6.15 see below)&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Userspace daemon =====&lt;br /&gt;
*[http://www.dresco.co.uk/hdaps/hdapsd-20070524.c Recommended version]&lt;br /&gt;
*[http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1045 Reduced power version] - reduces timer interrupts, as measured by [[PowerTOP]]. This leads to lower power consumption on [[tickless kernel|tickless kernels]]. Interrupt reduction requires the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; kernel module from [[tp_smapi]] 0.32 or newer, and a [http://article.gmane.org/gmane.linux.drivers.hdaps.devel/1040 udev rule].&lt;br /&gt;
*[ftp://rohrmoser-engineering.de/pub Modified adaptive algorithm version] - uses a different (and potentially better) algorithm for the adaptive sensivity threshold.&lt;br /&gt;
&lt;br /&gt;
===== GUI monitoring =====&lt;br /&gt;
*[http://roy.marples.name/node/269 khdapmonitor] KDE System Tray Monitor&lt;br /&gt;
*[http://www.dresco.co.uk/hdaps/gnome-hdaps-applet-20060120.tar.gz gnome-hdaps-applet] visual display of disk protection status in gnome panel&lt;br /&gt;
*[http://www.kde-look.org/content/show.php/Applet+HDAPS?content=78387 applet_hdaps] KDE4 Plasmoid display disk protection status&lt;br /&gt;
*[http://awn.planetblur.org/index.php?shard=forum&amp;amp;action=g_reply&amp;amp;ID=1916&amp;amp;page=1&amp;amp;isLive=true ThinkHDAPS] Avant Window Manager plugin for disk protection status&lt;br /&gt;
&lt;br /&gt;
====Security &amp;amp; safety====&lt;br /&gt;
*[[Script for theft alarm using HDAPS]]&lt;br /&gt;
&lt;br /&gt;
====Tilt monitoring====&lt;br /&gt;
*[http://www.mulliner.org/collin/gkibm-acpi.php gkhdaps] &amp;lt;tt&amp;gt;a GKrellM applet displaying tilt data&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://rlove.org/log/2005082203.html gnome-tilt] &amp;lt;tt&amp;gt;a gnome applet showing tilt data&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Visualisation of ThinkPad orientation====&lt;br /&gt;
*[http://rlove.org/log/2005082401.html hdaps-gl] &amp;lt;tt&amp;gt;a little app animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 hdapsgl-applet] &amp;lt;tt&amp;gt; a GNOME applet animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[https://sourceforge.net/project/showfiles.php?group_id=138242 wmadhps] &amp;lt;tt&amp;gt;a WindowMaker DockApp animating a 3D-ThinkPad&amp;lt;/tt&amp;gt;&lt;br /&gt;
*[http://www.cs.cmu.edu/~ecc/gyro.tar.gz OpenGL gyroscope hack] &amp;lt;tt&amp;gt;keeps your display levelled when tilting the ThinkPad&amp;lt;/tt&amp;gt; (warning: [http://en.wikipedia.org/wiki/Tarbomb uncompresses in the current directory]!)&lt;br /&gt;
&lt;br /&gt;
====Games====&lt;br /&gt;
*[http://icculus.org/neverball/ Neverball] is quite fun with HDAPS. (You'll need to have the HDAPS joystick device)&lt;br /&gt;
*Turn your ThinkPad into a Jedi Weapon (hey, it [http://isnoop.net/blog/2006/05/20/macsaber-turn-your-mac-into-a-jedi-weapon works for Mac laptops])&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
&lt;br /&gt;
*[http://blog.micampe.it/articles/2006/06/04/here-comes-the-smackpad smack.py] - switch workspace by smacking your laptop, inspired by the [http://blog.medallia.com/2006/05/smacbook_pro.html SmackBook] (uses EWMH)&lt;br /&gt;
**an [http://weblogs.mozillazine.org/gerv/archives/2006/09/stablilised_smackpad.html improved version] adds stabilization (by comparing smacks to previous ones, uses EWMH)&lt;br /&gt;
**another [http://pberndt.com/Programme/Linux/pyhdaps/index.html approach] adds stabilization (by requiring a certain type of value deflection, uses xmacroplay)&lt;br /&gt;
**[http://www.gnome.org/~fherrera/gtollina.c GTollina] is another smack program for use with compiz (video [http://www.gnome.org/~fherrera/blog/gtollina.html here]).&lt;br /&gt;
*[http://blog.odonnell.nu/61.html xmms-smack.py] - move through your xmms playlist by smacking, based on the two smack scripts above.&lt;br /&gt;
*[http://www-128.ibm.com/developerworks/linux/library/l-knockage.html?ca=dgr-lnxw02aKnockBasedCommands KnockBasedCommands] - Execute commands by tapping your laptop.&lt;br /&gt;
*[http://people.ksp.sk/~mic/?menu=32&amp;amp;file=rotate.py rotate.py] - rotate desktop by turning your laptop&lt;br /&gt;
&lt;br /&gt;
=== Interesting links related to this project ===&lt;br /&gt;
* [https://lists.sourceforge.net/lists/listinfo/hdaps-devel HDAPS mailinglist and its archive]&lt;br /&gt;
* #hdaps channel on irc.freenode.org&lt;br /&gt;
* [https://sourceforge.net/projects/hdaps/ hdaps projects] overview of userspace programs using hdaps&lt;br /&gt;
* [http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TPAD-HDFIRM IBM ThinkPads hardware drive firmware site]&lt;br /&gt;
* [http://www.paul.sladen.org/thinkpad-r31/accelerometer.html http://www.paul.sladen.org/thinkpad-r31/accelerometer/]&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=119845 Gentoo ebuild for hdaps driver and daemon including a initscript*&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137345 Gentoo ebuild for gkhdaps gkrell plugin&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137350 Gentoo ebuild for hdaps-gl application&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137351 Gentoo ebuild for gnome hdapsgl-applet&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137352 Gentoo ebuild for gnome tilt application&lt;br /&gt;
* http://bugs.gentoo.org/show_bug.cgi?id=137353 Gentoo ebuild for wmhdaps&lt;br /&gt;
* http://gentoo.o0o.nu Gentoo sectools overlay with fresh hdaps-related ebuilds and patches&lt;br /&gt;
* [http://lenovoblogs.com/insidethebox/?p=71 Why the ThinkPad accelerometer is only 2D] - explanation by Lenovo&lt;br /&gt;
&lt;br /&gt;
[[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:R60]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]] [[Category:T60p]] [[Category:T61]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]] [[Category:Drivers]] [[Category:Z61m]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=37796</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=37796"/>
		<updated>2008-05-22T14:21:53Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Installation in Gentoo */&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. It also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&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;
===Features===&lt;br /&gt;
*Battery charge/discharge control&lt;br /&gt;
*Battery status information&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.&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;
:{{cmdroot|tar xzvf tp_smapi-0.34.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.34}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR 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/package/app-laptop/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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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 unstable (sid) or testing (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu Hardy====&lt;br /&gt;
Ubuntu ships tp_smapi in their linux-ubuntu-modules Package since Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 source -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above is not existent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/source&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&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 prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{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}} || {{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}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X20}} 2662-31G&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}}   || {{Cno|text=}} (see ref) || 0.32  || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW-1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1 ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW-1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The tp_smapi's hdaps driver supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; is an integer between 0 and 7, whose meaning is as follows. Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=37795</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=37795"/>
		<updated>2008-05-22T14:11:21Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Installation on Debian unstable (sid) or testing (lenny) */&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. It also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&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;
===Features===&lt;br /&gt;
*Battery charge/discharge control&lt;br /&gt;
*Battery status information&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.&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;
:{{cmdroot|tar xzvf tp_smapi-0.34.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.34}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR 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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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 unstable (sid) or testing (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] and prebuilt modules for Debian kernels.&lt;br /&gt;
&lt;br /&gt;
If you use a custom kernel, you can build tp_smapi with module-assistant:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
If you use a stock Debian kernel, you can install the tp_smapi modules with:&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi-modules-`uname -r`}}&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu Hardy====&lt;br /&gt;
Ubuntu ships tp_smapi in their linux-ubuntu-modules Package since Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 source -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above is not existent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/source&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&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 prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{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}} || {{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}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X20}} 2662-31G&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}}   || {{Cno|text=}} (see ref) || 0.32  || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW-1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1 ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW-1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The tp_smapi's hdaps driver supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; is an integer between 0 and 7, whose meaning is as follows. Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=37794</id>
		<title>Tp smapi</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Tp_smapi&amp;diff=37794"/>
		<updated>2008-05-22T14:06:19Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Installation on Debian unstable (sid) or testing (lenny) */&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; |&lt;br /&gt;
The &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; kernel module exposes some features of the ThinkPad hardware/firmware via a &amp;lt;tt&amp;gt;sysfs&amp;lt;/tt&amp;gt; interface. Currently, the main implemented functionality is control of battery charging and extended battery status. It also includes an improved version of the [[HDAPS]] driver. The underlying hardware interfaces are [[SMAPI support for Linux|SMAPI]] and direct access to the embedded controller.&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;
===Features===&lt;br /&gt;
*Battery charge/discharge control&lt;br /&gt;
*Battery status information&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.&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;
:{{cmdroot|tar xzvf tp_smapi-0.34.tgz}}&lt;br /&gt;
:{{cmdroot|cd tp_smapi-0.34}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, either compile and load the driver within the current working directory (for testing):&lt;br /&gt;
:{{cmdroot|make load}}&lt;br /&gt;
OR compile and install into the kernel's module path:&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&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;
Again, either load the driver within the current working directory:&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
OR 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;
* Disable the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module in your kernel configuration (Device Drivers &amp;amp;rarr; Hardware Monitoring Support &amp;amp;rarr; IBM Hard Drive Active Protection System)&lt;br /&gt;
* Rebuild and install the 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;
* {{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 unstable (sid) or testing (lenny)====&lt;br /&gt;
Debian now contains the [http://packages.debian.org/tp-smapi packaged module source] for use with module-assistant.&lt;br /&gt;
&lt;br /&gt;
* {{cmdroot|apt-get install tp-smapi}}&lt;br /&gt;
* {{cmdroot|m-a -t a-i tp-smapi}}&lt;br /&gt;
&lt;br /&gt;
====Installation on Ubuntu Hardy====&lt;br /&gt;
Ubuntu ships tp_smapi in their linux-ubuntu-modules Package since Hardy, so you don't have to build it yourself. Please note that they have renamed tp_smapi's modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; module to &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;. You should load &amp;lt;tt&amp;gt;hdaps_ec&amp;lt;/tt&amp;gt;, not &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Installation on older Ubuntu/Debian====&lt;br /&gt;
Installation on Ubuntu or Debian is quite easy, but there are a few things to look after:&lt;br /&gt;
&lt;br /&gt;
To get your system ready for compiling code, install the build-essentials (as root, of course, as all of the following comands; Ubuntu users have to prepend 'sudo' to every line and enter their own password when prompted):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install build-essential&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi to work, obtain the latest source as mentioned above and unpack it. If you want to use HDAPS, you need to install the kernel source matching te kernel you are running. To do so, issue this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;uname -r&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you the version of your current kernel. &lt;br /&gt;
Debian users execute the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ubuntu users execute the following using the kernel-version only (exclude -XX-generic; e.g. 'linux-source-2.6.20'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;apt-get install linux-source-`uname -r`&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to unpack the source file. The easiest way is to open Nautilus as root:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;sudo nautilus&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then browse to /usr/src/ and extract the source file to that directory.&lt;br /&gt;
&lt;br /&gt;
Now change to the tp_smapi dir:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;cd tp_smapi-X.YY&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt; (X.YY being the version-number of [[tp_smapi]])&lt;br /&gt;
and make and install tp_smapi as instructed above.&lt;br /&gt;
&lt;br /&gt;
If you get an error that the kernel version isn't matching (or that you need to set KSRC/KBUILD), please check that there is a symlink from the modules dir to the kernel source:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ls -l /lib/modules/2.6.20-16-generic&lt;br /&gt;
lrwxrwxrwx  1 root root     28 2007-02-02 08:39 source -&amp;gt; /usr/src/linux-source-2.6.20&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create the link if the line above is not existent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;root@localhost:~#ln -s /usr/src/linux-source-2.6.20 /lib/modules/2.6.20-16-generic/source&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the following will build and install the correct modules to their locations:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;make install HDAPS=1&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To make sure your system loads the modules at boot time, do this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;echo &amp;quot;tp_smapi&amp;quot; &amp;gt;&amp;gt; /etc/modules&lt;br /&gt;
echo &amp;quot;hdaps&amp;quot; &amp;gt;&amp;gt; /etc/modules&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
and update your initramfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;update-initramfs -u&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To get tp_smapi running now, just load the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;modprobe -a tp_smapi hdaps&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This description was tested on Kubuntu 'Feisty Fawn' and should work on all Debian-based distros with minor tweaks.&lt;br /&gt;
&lt;br /&gt;
'''EDIT:''' Works on Kubuntu 7.10 (&amp;quot;Gutsy Gibbon&amp;quot;), too&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 prevent charging for 17 minutes (regardless of thresholds):&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 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 charging preventation:&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):&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_percent&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_running_time&lt;br /&gt;
# cat /sys/devices/platform/smapi/BAT0/remaining_charging_time&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/BAT0/temperature # in milli-Celsius&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 [[#Bundled hdaps driver|Bundled hdaps driver]] 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;
====Scripts====&lt;br /&gt;
Some scripts can make it easier to grep the information you need from tp_smapi&lt;br /&gt;
* [[battery.rb]]&lt;br /&gt;
&lt;br /&gt;
===Other features===&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. Example:&lt;br /&gt;
 # echo '211a 100 0 0' &amp;gt; /sys/devices/platform/smapi/smapi_request; cat /sys/devices/platform/smapi/smapi_request&lt;br /&gt;
 211a 34b b2 0 0 0 'OK'&lt;br /&gt;
The &amp;quot;4b&amp;quot; in the 2nd value, converted to decimal, is 75: the current charging stop threshold (stop_charge_thresh).&lt;br /&gt;
&lt;br /&gt;
===Bundled &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver===&lt;br /&gt;
&lt;br /&gt;
The tp_smapi package includes a modified version of the &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; Linux kernel driver used by the [[HDAPS]] system. To use &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; concurrently, you '''must''' use the modified version.&lt;br /&gt;
&lt;br /&gt;
To build the modified 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 (see [[#Installation|Installation]] above):&lt;br /&gt;
:{{cmdroot|1=make load HDAPS=1}}&lt;br /&gt;
or&lt;br /&gt;
:{{cmdroot|1=make install HDAPS=1}}&lt;br /&gt;
&lt;br /&gt;
If you don't do that, you will not be able to load &amp;lt;tt&amp;gt;tp_smapi&amp;lt;/tt&amp;gt; (and its support module &amp;lt;tt&amp;gt;thinkpad_ec&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;
The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; has several changes:&lt;br /&gt;
* The &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver in mainline kernels conflicts with the extended battery status (they use the same IO ports). The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; coordinates this access through the bundled &amp;lt;tt&amp;gt;thinkpad_ec&amp;lt;/tt&amp;gt; driver.&lt;br /&gt;
* The modified &amp;lt;tt&amp;gt;hdaps&amp;lt;/tt&amp;gt; driver fixes reliability and improves support for recent ThinkPad models (*60 and newer), since unlike the mainline driver, it correctly follows the Embedded Controller communication protocol.&lt;br /&gt;
* Several other improvements, such as the ability to control the polling rate.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you get &amp;quot;&amp;lt;tt&amp;gt;thinkpad_ec: no ThinkPad embedded controller!&amp;lt;/tt&amp;gt;&amp;quot; when trying to load the module on a supported model listed below, you should [[BIOS_Upgrade|upgrade your BIOS]]. Some early BIOS (like 1.x on the X31) don't handle the embedded controller.&lt;br /&gt;
&lt;br /&gt;
===Model-specific status===&lt;br /&gt;
&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;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; | &lt;br /&gt;
=====A series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{A22p}} 2629-USG&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{A30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====G series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{G41}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
=====R series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{R31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || || No SMAPI BIOS&lt;br /&gt;
|-&lt;br /&gt;
! {{R40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50}}&lt;br /&gt;
| {{Cunk}} || {{Cno}}  || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50e}} 1834-JAG&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R50p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 18*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 || 3.22 || || Machine types 1829, 1830, 1831 and 1836&lt;br /&gt;
|-&lt;br /&gt;
! {{R51}} 28*&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      || 1.29 || || Machine types 2883, 2887, 2888, 2889, 2894 and 2495&lt;br /&gt;
|-&lt;br /&gt;
! {{R52}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.29 || 1.06 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} ||{{Cyes}}  || {{Cno|text=}} 1 || 0.33 || || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{R61}}&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} ||{{Cyes}}  || {{Cyes|text=}} 1 || 0.35-test1 || 7KETA7WW 2.07 || 7KHT24WW 1.08 || Machine type 8918 ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====T series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{T20}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{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}} || {{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}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T40p}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T41p}} 2373-AM9&lt;br /&gt;
| {{Cno}} || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.20 || v3.04 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42}}&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KXU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 || 3.21 || || Stop charge threshold works in Windows, but dmesg says &amp;quot;__get_real_thresh: cannot get stop_thresh of bat=0: Function is not supported by SMAPI BIOS&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
! {{T42p}} 2373-KUU&lt;br /&gt;
| {{Cyes}} || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43}} 2686&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.33 || 1.27 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T43p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes|text=}} 0 ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 7 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.34 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60}} 1951-24G&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.36 || 1.09a || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T60p}} 8743-CTO&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 1 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{T61}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{T61p}} 6457-7XG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 1 || 0.32 ||  || || [http://ubuntuforums.org/showthread.php?p=3146719 ref]&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====X series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{X20}} 2662-31G&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X24}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X30}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || 0.34  || 1.09 || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X31}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X32}}&lt;br /&gt;
| {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cno}}  || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X40}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 || 2.08 || 1.62 || &lt;br /&gt;
|-&lt;br /&gt;
! {{X41}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X41_Tablet}}&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}}   || {{Cno|text=}} (see ref) || 0.32  || || [http://sourceforge.net/mailarchive/message.php?msg_name=4757BD30.8080808%40ugcs.caltech.edu ref] || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X60}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 ||      || 2.07 || 1.10 || 2.6.20 issue (see discussion)&lt;br /&gt;
|-&lt;br /&gt;
! {{X60s}} 1704-5UG&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cno|text=}} 3 || 0.34 || 7BETD2WW 2.13 || 7BHT40WW 1.13 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61s}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 / 3 || 0.32 ||  || || [http://www.slackwiki.org/ThinkPad_X61s ref] says 3 but conflicting report received&lt;br /&gt;
|-&lt;br /&gt;
! {{X60_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 3 || 0.34  || 7JET25WW (1.10 )  || 7JHT13WW 1.04 || [http://luke.no-ip.org/x60tablet/ ref] [http://rad.bioinfo.ulaval.ca/hardware/x60tablet ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{X61_Tablet}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.32  ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-4KU&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cno|text=}} 6 || 0.34 || 7NET30WW (1.11 ) || 7MHT24WW-1.02 ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X61}} 7675-CTO&lt;br /&gt;
| {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cno|text=}} 6 || 0.35-test1 ||  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! {{X300}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || 0.37 || 7TET25WW (1.02 ) || 7THT15WW-1.00c ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=12 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=====Z series=====&lt;br /&gt;
|-&lt;br /&gt;
{{tp_smapi/model_status_table_header}}&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z60t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cunk}} || {{Cyes}} || {{Cunk}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61m}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes|text=}} 0 || 0.32 ||  || ||&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61t}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || || [https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/45014 ref]&lt;br /&gt;
|-&lt;br /&gt;
! {{Z61p}}&lt;br /&gt;
| {{Cyes}} || {{Cyes}} || {{Cunk}} || {{Cyes}} || {{Cyes}} || {{Cyes}} || {{Cunk}} ||      ||  || ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SMAPI capabilities may depend on the BIOS version as well, so upgrading to the latest version of the BIOS might provide more SMAPI functions (especially true for long-lived BIOS with lots of releases, like the TP-1R).&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; error 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;
=====HDAPS axis orientation=====&lt;br /&gt;
&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; The HDAPS axis orientation is set using the &amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; module parameter (at load time) or sysfs attribute (at runtime). The tp_smapi's hdaps driver supports all 8 possible sensor orientations (inversion and swapping). You can use [[HDAPS#Visualisation_of_ThinkPad_orientation|hdaps visualisation]] to check if the settings is correct.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;invert&amp;lt;/tt&amp;gt; is an integer between 0 and 7, whose meaning is as follows. Let &amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Y&amp;lt;/tt&amp;gt; denote the hardware readouts. Let &amp;lt;tt&amp;gt;R&amp;lt;/tt&amp;gt; denote the laptop's roll (tilt left/right), and let &amp;lt;tt&amp;gt;P&amp;lt;/tt&amp;gt; denote the laptop's pitch (tilt forward/backward). The possible values are as follows:&lt;br /&gt;
    invert=0:   R= X  P= Y   (same as mainline)&lt;br /&gt;
    invert=1:   R=-X  P=-Y   (same as mainline)&lt;br /&gt;
    invert=2:   R=-X  P= Y   (new)&lt;br /&gt;
    invert=3:   R= X  P=-Y   (new)&lt;br /&gt;
    invert=4:   R= Y  P= X   (new)&lt;br /&gt;
    invert=5:   R=-Y  P=-X   (new)&lt;br /&gt;
    invert=6:   R=-Y  P= X   (new)&lt;br /&gt;
    invert=7:   R= Y  P=-X   (new)&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;br /&gt;
* {{CodeRef|thinkpad-smapi.sh}} - script to display various SMAPI information using tp_smapi module.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Category_talk:Models&amp;diff=37298</id>
		<title>Category talk:Models</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Category_talk:Models&amp;diff=37298"/>
		<updated>2008-04-11T10:31:44Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: damn spam, restore old version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Could anyone add an explanation of the scheme of recent Thinkpad's model names?  For example, AFAIK, the last letter indicates the keyboard language.&lt;br /&gt;
&lt;br /&gt;
== subcategories wrapped onto new page ==&lt;br /&gt;
&lt;br /&gt;
Guys,&lt;br /&gt;
&lt;br /&gt;
The subcategories exceeds 200 entries and wrapped onto a new page, which right now contains just the Z60t.&lt;br /&gt;
&lt;br /&gt;
Perhaps we should rethink this page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 17:56, 18 Oct 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
There's not much we can do about this.&lt;br /&gt;
&lt;br /&gt;
We could categorize certain models together (like numbered, T-Series, etc.), but that raises model browsing effort. Further models will come and hence the second page will fill up more or less quickly. I think the problem is that the &amp;quot;next page&amp;quot; link is not drawing a lot of attention. Maybe we could do something about this, probably the stylesheet has to be modified.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 00:15, 19 Oct 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I found a minor solution in the two links i just added next to the page heading. They are derived from the previous and next links and implement a simple means of filtering.&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 04:51, 29 January 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
I would like to start adding information about the 240z how do I get it listed on this page?&lt;br /&gt;
[[User:Kuop|Kuop]] 06:48, 30 June 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== New Models like C-series and N-series. ==&lt;br /&gt;
&lt;br /&gt;
I guess someoneshould write about the new C and N series of Thinkpads&lt;br /&gt;
as they made their way into the market and are sold by almost any&lt;br /&gt;
computer shop around the globe, that sells notebooks.&lt;br /&gt;
I see this matter as quite important.&lt;br /&gt;
&lt;br /&gt;
[[User:Laptopix|Laptopix]] 14:50, 4 August 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Lenovo's 3000 series is not branded &amp;quot;ThinkPad&amp;quot;. Is the hardware and firmare anything like recent ThinkPads?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 19:23, 4 August 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
They may not be branded as &amp;quot;Thinkpads&amp;quot;, but they have IBM-like part numbers and IBM-like hardware maintenance manuals (complete with IBM-like part numbers for the various internal parts), at least for the N100 series.  I'd vote for allowing their inclusion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- [[User:Cletus|Cletus]] 21:51, 8 August 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
I do have a Lenovo 3000 N100 0768-BJG for one month. I buyed it due to the lack of thinkpad available in France these times.&lt;br /&gt;
Support is made by IBM, FRU are available like thinkpads, OnSite waranty is available like thinkpads. It's worth the value.&lt;br /&gt;
Mine is quite well, core2duo 1.8GHz, 1x1Go DDR2, 100Go Sata, fingerprint, GeForce 7300, fingerprint reader, 16:10 1680x1050 LCD. I upgraded with a second 1Go DDR2, and a 9 cell battery available in lenovo dealer as with thinkpads. I'm running ubuntu edgy right now.&lt;br /&gt;
&lt;br /&gt;
--[[User:Rafael|Rafael]] 02:44, 9 March 2007 (CET)&lt;br /&gt;
----&lt;br /&gt;
I'd still like to add information about the 240z model but do i edit that list?&lt;br /&gt;
[[User:Kupo|Kupo]] 08:02, 3 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
== Wanted T41P 2373-315 ==&lt;br /&gt;
&lt;br /&gt;
If anyone has a good condition T41P 2373-315 for sale, please let me know. &lt;br /&gt;
&lt;br /&gt;
Also, if anyone knows reputable place to purchase one, please let me know.  &lt;br /&gt;
&lt;br /&gt;
TIA.&lt;br /&gt;
&lt;br /&gt;
mikeo993@yahoo.com&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=37268</id>
		<title>Problem with unauthorized MiniPCI network card</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=37268"/>
		<updated>2008-04-06T17:43:22Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Successful WiFi LED fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Problem Description==&lt;br /&gt;
Although the MiniPCI slot is an industry standard and can accept any MiniPCI adapter, the IBM BIOS is set to only allow you to boot with an 'authorized' adapter installed. Attempts to install an unsupported card will result in the following message:&lt;br /&gt;
&lt;br /&gt;
   1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.&lt;br /&gt;
&lt;br /&gt;
This is because the card's sub-vendor PCI-ID (which can be seen using ''lspci -v'') are checked against a [[Wikipedia:Whitelist|whitelist]] in the BIOS.  IBM's reasoning for this is that the combination of MiniPCI card and the integrated antenna in the ThinkPad needs to be certified by the US FCC (Federal Communications Commission).{{footnote|1}} or similar agencies in other countries.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
All machines with integrated WiFi, or machines with WiFi added&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
All - problem is in the BIOS&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
* Workarounds exist for most affected models.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
It may be possible to use the computer with the unauthorized card deactivated (but not removed).  Press {{key|F1}} to enter the BIOS and deactivate the WLAN card, then attempt to boot with the card disabled.  This does not make the wireless card work, but it may allow you to boot the computer normally.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Any of the following solutions should suffice to make the wireless card useable.  You only need to perform one of them.}}&lt;br /&gt;
&lt;br /&gt;
* You may can modify the BIOS whitelist to include the PCI-ID of the card you wish to use.  The complete instructions for this procedure are [http://www.paul.sladen.org/thinkpad-r31/wifi-card-pci-ids.html here].&lt;br /&gt;
{{WARN|It is dangerous to mess with your BIOS, you can easily make your machine unbootable, proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
* A safer and better method than modifying the BIOS is modifying the PCI-ID of the wlan card to match the authorized one(why? 1.you'll risk the wireless card instead of the motherbord 2.future BIOS updates will not create any problem 3.no problem with newer laptops with different BIOS, the only reqirement is to find an ID that is already listed in the BIOS that can be easily acheived if community maintain a compatibility table). The instructions are [http://www.dagarlas.org/stuff/computing/article0001.php here].  This page is for Atheros-based cards and HP notebooks, but it applies to Thinkpads as well. It also has links on how to edit the PCI-ID on Intel Pro Wireless cards. Instruction for intel 2200/2915 cards are [http://stachon.webpark.cz/ipw-eeprom.html here]. &lt;br /&gt;
{{NOTE|Modifying your PCI-ID will require either a laptop without a BIOS lock or a PCI adapter for your desktop.  Also, this procedure can render your card useless, but that's better than bricking your laptop.}}&lt;br /&gt;
&lt;br /&gt;
* You can use the [[Problem with error 01C9 - More than one Ethernet devices | no-1802 and no-01C9 Linux Live CD]] without applying the no-01C9 patch. It is very convenient to use and based on the C code below.&lt;br /&gt;
&lt;br /&gt;
* You can use the DOS [http://jcnp.pku.edu.cn/~shadow/1802/no-1802.com no-1802] utility, written by Tisheng Chen.{{footnote|2}} It will set a certain bit in the CMOS memory which disables the whitelist check, but it has been reported not to work on the latest machines, such as the T43 and X41&lt;br /&gt;
&lt;br /&gt;
* You can compile and run (as root) the following C-code, which was written by Matthew Garrett. It was based on the code written by Vojtech Pavlik, which in turn was based on the assembly used in the no-1802 program. {{footnote|3}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
   int fd;&lt;br /&gt;
   unsigned char data;&lt;br /&gt;
   &lt;br /&gt;
   fd = open(&amp;quot;/dev/nvram&amp;quot;, O_RDWR);&lt;br /&gt;
   if (fd==-1) {&lt;br /&gt;
     printf(&amp;quot;Opening /dev/nvram failed\n&amp;quot;);&lt;br /&gt;
     return 1;&lt;br /&gt;
   }&lt;br /&gt;
   printf(&amp;quot;Disabling WiFi whitelist check.\n&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
   /* BIG INFORMATIONAL WARNING */ &lt;br /&gt;
   /* The linux nvram driver doesn't give access to the first 14 bytes of&lt;br /&gt;
      the CMOS. As a result, we seek to 0x5c rather than 0x6a. If you're &lt;br /&gt;
      implementing this under another OS, then you'll have to go to whichever&lt;br /&gt;
      address is appropriate for your access method */&lt;br /&gt;
 &lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   read(fd, &amp;amp;data, 1);&lt;br /&gt;
   printf(&amp;quot;CMOS address 0x5c: %02x-&amp;gt;&amp;quot;, data);&lt;br /&gt;
   data |= 0x80;&lt;br /&gt;
   printf(&amp;quot;%02x\n&amp;quot;, data);&lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   if (write(fd, &amp;amp;data, 1)&amp;lt;0) {&lt;br /&gt;
     printf(&amp;quot;Unable to write to /dev/nvram - hack failed\n&amp;quot;);&lt;br /&gt;
     close(fd);&lt;br /&gt;
     return 2;&lt;br /&gt;
   }&lt;br /&gt;
   close(fd);&lt;br /&gt;
   printf(&amp;quot;Done.\n&amp;quot;);&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
{{NOTE|On the R32, T43, X41, X60 and probably others, the BIOS hacks and the &amp;quot;no-1802&amp;quot; utility don't work.}}&lt;br /&gt;
&lt;br /&gt;
==Successful BIOS Modifications==&lt;br /&gt;
{{WARN|This table is meant to give users an idea of what models have been successfully modified and how. As stated before, it is dangerous to mess with your BIOS, you can easily make your machine unbootable. Please proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table contains information about ThinkPad models that have been successfully modified to run an unauthorized Mini PCI card. {{footnote|4}} &lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| BIOS Version &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Method &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad 240&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| 1.18&lt;br /&gt;
| Damn Small Linux&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad G40&lt;br /&gt;
| 2388-2UU&lt;br /&gt;
| 1.21 (2006/2/24; 1TETA6WW)&lt;br /&gt;
| Windows XP Home&lt;br /&gt;
| no-1802 DOS 6.22 floppy&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-6FG &lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-E4U&lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Professional SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R32&lt;br /&gt;
| 2656-EG1 &lt;br /&gt;
| 2.16 (16-06-2006) &lt;br /&gt;
| DOS Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2656-69U &lt;br /&gt;
| ? &lt;br /&gt;
| Windows 2000 Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-F7G &lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2200BG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Etch&lt;br /&gt;
| Matthew Garrett code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2896-J3U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Fedora Core 4 &lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-L7U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40e&lt;br /&gt;
| 2684-LKG&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CDG&lt;br /&gt;
| 1.27 (10-06-2006) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-DM2&lt;br /&gt;
| 1.09 (2003) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2723&lt;br /&gt;
| ?&lt;br /&gt;
| Slackware Linux 12&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes  &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CFM &lt;br /&gt;
| 1.24 (10-17-2005) &lt;br /&gt;
| Gentoo &amp;amp; XP Pro&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724 &lt;br /&gt;
| 1.30 (10-19-2005) &lt;br /&gt;
| FreeBSD 6.1-p1&lt;br /&gt;
| code by Matthew Garrett, compiled and run on bactrack&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724-3XU &lt;br /&gt;
| 1.33 (06-29-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682 &lt;br /&gt;
| 1.01 (2003-01-24)&lt;br /&gt;
| Debian GNU/Linux etch (March 2007) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33 (2006/6/29)&lt;br /&gt;
| Lunar Linux (2007/03/04) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50&lt;br /&gt;
| 1829-7RG&lt;br /&gt;
| 3.21 (02-06-2006)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50p&lt;br /&gt;
| 1832-2AG&lt;br /&gt;
| 3.19 (13-10-2005)&lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-10-686)&lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R51&lt;br /&gt;
| 2887-W2C &lt;br /&gt;
| 1.27 (03-03-2006) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R52&lt;br /&gt;
| 1849-BMU&lt;br /&gt;
|1.27 (09-20-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from external USB floppy)&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T23&lt;br /&gt;
| 2647-4MU&lt;br /&gt;
| 1.18 (08-06-2004) &lt;br /&gt;
| Windows XP Pro/SP2&lt;br /&gt;
| no-1802 utility (W98se-bootfloppy)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-68G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-ES1 &lt;br /&gt;
| 2.10  &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;  &lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-97G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.10 (26-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-81U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86G&lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2 and Ubuntu 7.10 &amp;quot;Gutsy Gibbon&amp;quot; Intel BG2200&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-DU9 &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Suse Linux 10.1 &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2367-RU1 &lt;br /&gt;
| 2.01 (06-08-2002) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-7CU &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PM1 &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-4BG &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-7CU&lt;br /&gt;
| 3.21 (06-02-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-75U&lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Fedora 6 w Intel 2915ABG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-82U &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP/ SUSE 10.1&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.05a (2004-05-14)&lt;br /&gt;
| Arch Linux&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.15 (2005-03-29)&lt;br /&gt;
| Windows XP Pro SP2 w/[http://www.giga-byte.com.tw/Products/Communication/Products_Spec.aspx?ClassValue=Communication&amp;amp;ProductID=985&amp;amp;ProductName=GN-WI01GS Gigabyte GN-WI01GS]&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PU7 &lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Windows XP Professional&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-42G &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Windows 2000 Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CG &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Ubuntu 6.06 LTS w/Intel Pro Lan2200&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CU &lt;br /&gt;
| 3.03 (07 Apr 2004) &lt;br /&gt;
| Windows XP&lt;br /&gt;
| no-1802 utility (applied via FreeDos bootable USB stick) &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-DG1 &lt;br /&gt;
| 3.21 (06-02-2006) &lt;br /&gt;
| Ubuntu 6.10 w/Broadcom 4306&lt;br /&gt;
| Matthew Garrett's code &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G1G&lt;br /&gt;
| 3.19 (10-13-2005)&lt;br /&gt;
| Debian GNU/Linux (sid)&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G5G&lt;br /&gt;
| 3.21 (2006-06-02)&lt;br /&gt;
| Windows XP Pro SP2 / Gentoo 2007.0&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-1FG &lt;br /&gt;
| 3.21 (2007-06-18)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-5G1 &lt;br /&gt;
| 2004 &lt;br /&gt;
| Fedora Core 6 w/Intel Pro 2915ABG a/b/g&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-9HU&lt;br /&gt;
| n/a&lt;br /&gt;
| Ubuntu 6.10 w/Atheros 5212 a/b/g&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-2FG&lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SR2 w/ Intel 2200BG&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2373-GEG &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| Gentoo / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2374-GGU &lt;br /&gt;
| 3.21 (1RETDPWW) 6/2/2006&lt;br /&gt;
| Slackware / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-K32 &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| CentOS 5.0 w/Atheros 5212 (CM9)&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-6UU&lt;br /&gt;
| Not noted&lt;br /&gt;
| Fedora 7 w/Atheros 5212&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-4TG &lt;br /&gt;
| 3.13 (1RETDHWW) (29-10-2004)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel PRO 2200BG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42p&lt;br /&gt;
| 2373-HTU &lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-K2G &lt;br /&gt;
| 3.17 (07-27-2005)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-M1U&lt;br /&gt;
| 3.13 1RETDHWW (10/29/2004)&lt;br /&gt;
| Fedora 7 w/ Intel PRO 2200BG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-LM1&lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Debian Lenny (2.6.21-2-686) w/ Intel PRO 2915ABG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2378-EXU &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T43&lt;br /&gt;
| 1871-F1G&lt;br /&gt;
| 1.19 (70ET59WW) (2005-09-20)&lt;br /&gt;
| n/a&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X22 &lt;br /&gt;
| 2662-95G&lt;br /&gt;
| 1.32 (2003-06-10)&lt;br /&gt;
| Debian GNU/Linux testing, kernel 2.6.18-3-686&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X24&lt;br /&gt;
| 2662-MPG &lt;br /&gt;
| ?&lt;br /&gt;
| Debian GNU/Linux 2.6.18.5-586&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| AR5212 &lt;br /&gt;
| ?&lt;br /&gt;
| Debian Linux 2.6.18-5&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-41j &lt;br /&gt;
| 1.08 (08-09-2005)&lt;br /&gt;
| Gentoo Kernel 2.6.15 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-4XU &lt;br /&gt;
| 1.09&lt;br /&gt;
| Win XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2673-EU2 &lt;br /&gt;
| 1.09 &lt;br /&gt;
| Windows XP Pro SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.22-rc7&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PG9 &lt;br /&gt;
| 2.04 (2003-11-10) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.21-2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2673-C27 &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-9-386) &lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-1UG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| FreeBSD 6-STABLE&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.17-2-686&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CXU &lt;br /&gt;
| 2.04&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PBU &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-I5A &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C8G&lt;br /&gt;
| 3.02&lt;br /&gt;
| Debian (kernel 2.6.16.20-386)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG&lt;br /&gt;
| 2.11 (02/13/2004)&lt;br /&gt;
| Debian (kernel 2.6.18-4-686, gcc 4.1.2)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2884-BRU &lt;br /&gt;
| 1.03 (1QET34WW) 2003-04-08&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| ?&lt;br /&gt;
| Win XP Pro, w/ Gigabyte GN-WI03N-RN&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X40&lt;br /&gt;
| 2371-8EU&lt;br /&gt;
| 1.42 (2004/09/16; 1UET92WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 1866-6SU&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41 &lt;br /&gt;
| 2525-A2U&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 2528-ELU&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro / OSX 10.4.8 / Ubuntu Edgy&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X60s&lt;br /&gt;
| 1702-3JU&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Testing&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| NO (bricked)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem with WiFi LED==&lt;br /&gt;
After getting an unauthorized card to work, you may notice that the WiFi LED found on the ThinkPad is not working. This doesn't happen with all unauthorized cards. The general cause for this is the fact that the MiniPCI standard leaves the implementation of the LED signals available on the MiniPCI connector to the card vendors. Therefore some newer WiFi cards use one of the signals originally meant for LEDs to implement the &amp;quot;radio kill&amp;quot; switch input. As a result, the LED doesn't get proper signals and fails.&lt;br /&gt;
&lt;br /&gt;
====Details====&lt;br /&gt;
The WiFi LED found in ThinkPads is connected to following pins on the MiniPCI connector.&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Pin&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Signal&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Description&lt;br /&gt;
|-style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
|11&lt;br /&gt;
|LED1_GRNP&lt;br /&gt;
|WiFi active LED +&lt;br /&gt;
|-style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
|13&lt;br /&gt;
|LED1_GRNN&lt;br /&gt;
|WiFi active LED - (older cards) / RF Silent input (newer cards)&lt;br /&gt;
|}&lt;br /&gt;
Note: The descriptions are specific to this article.&lt;br /&gt;
&lt;br /&gt;
If your LED is not working, the problem could be the pin 13. Newer cards may no longer provide the necessary negative signal there to drive the LED. Before you apply any fixes, be sure to check the voltage between pin 11 and ground (can be found for example on the MiniPCI latch arms) - it should give you about 3.3V while the WiFi is active and 0V otherwise. The voltage between pin 13 and ground should measure about 2.5V. The notebook has to be running while you perform the tests so be extremely careful. All the mentioned pins are on the upper side so it's quite easy to get to them with a multimeter. If all the voltages match, your LED is fixable.&lt;br /&gt;
&lt;br /&gt;
Reference:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://members.datafast.net.au/dft0802/specs/mpci10.pdf MiniPCI Specification] (PDF, 724KB)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.interfacebus.com/MiniPCI_Pinout_124Pin.html MiniPCI Pinout]&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
The solution is to connect the ground (GND) to the pin 13. However, since the new ''RF Silent input'' signal is active low, grounding the card side will tell it to turn itself off. Therefore, we have to separate pin 13 of the card from the system board and connect ground to the system board side only.&lt;br /&gt;
&lt;br /&gt;
There are many ways to accomplish this. One which doesn't require any soldering is to mask pin 13 on the card with a cellophane tape and use about 3cm of thin wire to connect pin 13 of the connector to the ground. Place one end of the wire on the masked pad and insert the card into the slot. Check if the wire is centered on the pad and try pulling it (but not too hard) to see if it holds. If it comes out easily, pull the card out and repeat. If you successfully attach it, you have to connect the other end to the ground. The best place is the left MiniPCI latch arm. Bend it outside and insert the wire into the small gap between the two pieces of metal the arm is made from. Finally, make sure that the wire doesn't touch anything else and doesn't stand out too much, it must not touch the touchpad electronics when you put the palmrest back on. If in doubt, cover the wire with some insulator.&lt;br /&gt;
&lt;br /&gt;
{{WARN|Do this fix ONLY if you know exactly what you are doing and at your own risk! If you're not sure about any part, don't even try it or you may damage your WiFi card and/or brick your laptop. You have been warned.}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|If your card is not listed in the table below, your WiFi LED may not work for some other reason. Therefore, make sure you understood the problem described here and made all the measurements carefully. This way you will know if this apply to your card and if it can be fixed this way. Otherwise, if you're skilled enough, please try to find out why your LED doesn't work and contribute to this article.}}&lt;br /&gt;
&lt;br /&gt;
====Successful WiFi LED fixes====&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| WiFi card&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Comments&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|T41&lt;br /&gt;
|2374-312&lt;br /&gt;
|Intel&amp;amp;nbsp;PRO/Wireless&amp;amp;nbsp;2915ABG,&lt;br /&gt;
Spares No: 373830-001&lt;br /&gt;
|Windows&amp;amp;nbsp;XP&amp;amp;nbsp;SP2,&lt;br /&gt;
Ubuntu&amp;amp;nbsp;7.10&lt;br /&gt;
|style =&amp;quot;color:green;font-weight:bold;&amp;quot;|Yes&lt;br /&gt;
|The WiFi card seems to be a HP one (tip: google for spares no.). Not sure thou - received it with an already changed PCI-ID.&lt;br /&gt;
|-  style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|X31&lt;br /&gt;
|2672-PG9&lt;br /&gt;
|Intel&amp;amp;nbsp;PRO/Wireless&amp;amp;nbsp;2915ABG, Broadcom BCM4306&lt;br /&gt;
|Debian Sid&lt;br /&gt;
|style =&amp;quot;color:green;font-weight:bold;&amp;quot;|Yes&lt;br /&gt;
|Both cards are non-IBM ones, BIOS was patched. ipw2200 needed the {{bootparm|led|1}} option to be enabled while loading the module.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
* Additional Information about &amp;quot;Unauthorised&amp;quot; MiniPCI adapters can be found on [http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website].&lt;br /&gt;
&lt;br /&gt;
* Thinkpad Mini PCI Wireless [http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix].&lt;br /&gt;
&lt;br /&gt;
* Bootable &amp;quot;no-1802&amp;quot; [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#This is explained in a [http://lkml.org/lkml/2003/6/3/162 message to the LKML] and subsequently [http://lkml.org/lkml/2003/6/9/50 clarified].&lt;br /&gt;
#The no-1802 tool was announced and explaned in a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2004-June/018253.html message to the Linux-Thinkpad ML].&lt;br /&gt;
#Vojtech Pavlik's C-code was originally posted in a [http://lkml.org/lkml/2004/6/13/69 message to the LKML]. It was based on the assembly used in the no-1802 program. Matthew Garrett [http://www.srcf.ucam.org/~mjg59/thinkpad/hacks.html rewrote] the code to provide more error checking.&lt;br /&gt;
#This information has been added by users. Please feel free to add systems if you have had personal success or failure.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=37267</id>
		<title>Problem with unauthorized MiniPCI network card</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_unauthorized_MiniPCI_network_card&amp;diff=37267"/>
		<updated>2008-04-06T17:40:23Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Successful WiFi LED fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Problem Description==&lt;br /&gt;
Although the MiniPCI slot is an industry standard and can accept any MiniPCI adapter, the IBM BIOS is set to only allow you to boot with an 'authorized' adapter installed. Attempts to install an unsupported card will result in the following message:&lt;br /&gt;
&lt;br /&gt;
   1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card.&lt;br /&gt;
&lt;br /&gt;
This is because the card's sub-vendor PCI-ID (which can be seen using ''lspci -v'') are checked against a [[Wikipedia:Whitelist|whitelist]] in the BIOS.  IBM's reasoning for this is that the combination of MiniPCI card and the integrated antenna in the ThinkPad needs to be certified by the US FCC (Federal Communications Commission).{{footnote|1}} or similar agencies in other countries.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
All machines with integrated WiFi, or machines with WiFi added&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
All - problem is in the BIOS&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
* Workarounds exist for most affected models.&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
It may be possible to use the computer with the unauthorized card deactivated (but not removed).  Press {{key|F1}} to enter the BIOS and deactivate the WLAN card, then attempt to boot with the card disabled.  This does not make the wireless card work, but it may allow you to boot the computer normally.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Any of the following solutions should suffice to make the wireless card useable.  You only need to perform one of them.}}&lt;br /&gt;
&lt;br /&gt;
* You may can modify the BIOS whitelist to include the PCI-ID of the card you wish to use.  The complete instructions for this procedure are [http://www.paul.sladen.org/thinkpad-r31/wifi-card-pci-ids.html here].&lt;br /&gt;
{{WARN|It is dangerous to mess with your BIOS, you can easily make your machine unbootable, proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
* A safer and better method than modifying the BIOS is modifying the PCI-ID of the wlan card to match the authorized one(why? 1.you'll risk the wireless card instead of the motherbord 2.future BIOS updates will not create any problem 3.no problem with newer laptops with different BIOS, the only reqirement is to find an ID that is already listed in the BIOS that can be easily acheived if community maintain a compatibility table). The instructions are [http://www.dagarlas.org/stuff/computing/article0001.php here].  This page is for Atheros-based cards and HP notebooks, but it applies to Thinkpads as well. It also has links on how to edit the PCI-ID on Intel Pro Wireless cards. Instruction for intel 2200/2915 cards are [http://stachon.webpark.cz/ipw-eeprom.html here]. &lt;br /&gt;
{{NOTE|Modifying your PCI-ID will require either a laptop without a BIOS lock or a PCI adapter for your desktop.  Also, this procedure can render your card useless, but that's better than bricking your laptop.}}&lt;br /&gt;
&lt;br /&gt;
* You can use the [[Problem with error 01C9 - More than one Ethernet devices | no-1802 and no-01C9 Linux Live CD]] without applying the no-01C9 patch. It is very convenient to use and based on the C code below.&lt;br /&gt;
&lt;br /&gt;
* You can use the DOS [http://jcnp.pku.edu.cn/~shadow/1802/no-1802.com no-1802] utility, written by Tisheng Chen.{{footnote|2}} It will set a certain bit in the CMOS memory which disables the whitelist check, but it has been reported not to work on the latest machines, such as the T43 and X41&lt;br /&gt;
&lt;br /&gt;
* You can compile and run (as root) the following C-code, which was written by Matthew Garrett. It was based on the code written by Vojtech Pavlik, which in turn was based on the assembly used in the no-1802 program. {{footnote|3}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
   int fd;&lt;br /&gt;
   unsigned char data;&lt;br /&gt;
   &lt;br /&gt;
   fd = open(&amp;quot;/dev/nvram&amp;quot;, O_RDWR);&lt;br /&gt;
   if (fd==-1) {&lt;br /&gt;
     printf(&amp;quot;Opening /dev/nvram failed\n&amp;quot;);&lt;br /&gt;
     return 1;&lt;br /&gt;
   }&lt;br /&gt;
   printf(&amp;quot;Disabling WiFi whitelist check.\n&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
   /* BIG INFORMATIONAL WARNING */ &lt;br /&gt;
   /* The linux nvram driver doesn't give access to the first 14 bytes of&lt;br /&gt;
      the CMOS. As a result, we seek to 0x5c rather than 0x6a. If you're &lt;br /&gt;
      implementing this under another OS, then you'll have to go to whichever&lt;br /&gt;
      address is appropriate for your access method */&lt;br /&gt;
 &lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   read(fd, &amp;amp;data, 1);&lt;br /&gt;
   printf(&amp;quot;CMOS address 0x5c: %02x-&amp;gt;&amp;quot;, data);&lt;br /&gt;
   data |= 0x80;&lt;br /&gt;
   printf(&amp;quot;%02x\n&amp;quot;, data);&lt;br /&gt;
   lseek(fd, 0x5c, SEEK_SET);&lt;br /&gt;
   if (write(fd, &amp;amp;data, 1)&amp;lt;0) {&lt;br /&gt;
     printf(&amp;quot;Unable to write to /dev/nvram - hack failed\n&amp;quot;);&lt;br /&gt;
     close(fd);&lt;br /&gt;
     return 2;&lt;br /&gt;
   }&lt;br /&gt;
   close(fd);&lt;br /&gt;
   printf(&amp;quot;Done.\n&amp;quot;);&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
{{NOTE|On the R32, T43, X41, X60 and probably others, the BIOS hacks and the &amp;quot;no-1802&amp;quot; utility don't work.}}&lt;br /&gt;
&lt;br /&gt;
==Successful BIOS Modifications==&lt;br /&gt;
{{WARN|This table is meant to give users an idea of what models have been successfully modified and how. As stated before, it is dangerous to mess with your BIOS, you can easily make your machine unbootable. Please proceed with caution!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following table contains information about ThinkPad models that have been successfully modified to run an unauthorized Mini PCI card. {{footnote|4}} &lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| BIOS Version &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Method &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad 240&lt;br /&gt;
| 2609-21G&lt;br /&gt;
| 1.18&lt;br /&gt;
| Damn Small Linux&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad G40&lt;br /&gt;
| 2388-2UU&lt;br /&gt;
| 1.21 (2006/2/24; 1TETA6WW)&lt;br /&gt;
| Windows XP Home&lt;br /&gt;
| no-1802 DOS 6.22 floppy&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-6FG &lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R31&lt;br /&gt;
| 2656-E4U&lt;br /&gt;
| 3.11 (12-01-2004) &lt;br /&gt;
| Windows XP Professional SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R32&lt;br /&gt;
| 2656-EG1 &lt;br /&gt;
| 2.16 (16-06-2006) &lt;br /&gt;
| DOS Boot Disk &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2656-69U &lt;br /&gt;
| ? &lt;br /&gt;
| Windows 2000 Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-F7G &lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2200BG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Etch&lt;br /&gt;
| Matthew Garrett code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2896-J3U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Fedora Core 4 &lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-L7U &lt;br /&gt;
| 1.24 (10-18-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40e&lt;br /&gt;
| 2684-LKG&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CDG&lt;br /&gt;
| 1.27 (10-06-2006) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-DM2&lt;br /&gt;
| 1.09 (2003) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2723&lt;br /&gt;
| ?&lt;br /&gt;
| Slackware Linux 12&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes  &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2681-CFM &lt;br /&gt;
| 1.24 (10-17-2005) &lt;br /&gt;
| Gentoo &amp;amp; XP Pro&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724 &lt;br /&gt;
| 1.30 (10-19-2005) &lt;br /&gt;
| FreeBSD 6.1-p1&lt;br /&gt;
| code by Matthew Garrett, compiled and run on bactrack&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2724-3XU &lt;br /&gt;
| 1.33 (06-29-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2682 &lt;br /&gt;
| 1.01 (2003-01-24)&lt;br /&gt;
| Debian GNU/Linux etch (March 2007) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R40&lt;br /&gt;
| 2722-BDG&lt;br /&gt;
| 1.33 (2006/6/29)&lt;br /&gt;
| Lunar Linux (2007/03/04) &lt;br /&gt;
| Matthew Garret's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50&lt;br /&gt;
| 1829-7RG&lt;br /&gt;
| 3.21 (02-06-2006)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad R50p&lt;br /&gt;
| 1832-2AG&lt;br /&gt;
| 3.19 (13-10-2005)&lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-10-686)&lt;br /&gt;
| Vojtech Pavlik code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R51&lt;br /&gt;
| 2887-W2C &lt;br /&gt;
| 1.27 (03-03-2006) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from USB key to apply)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad R52&lt;br /&gt;
| 1849-BMU&lt;br /&gt;
|1.27 (09-20-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility (boot from external USB floppy)&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T23&lt;br /&gt;
| 2647-4MU&lt;br /&gt;
| 1.18 (08-06-2004) &lt;br /&gt;
| Windows XP Pro/SP2&lt;br /&gt;
| no-1802 utility (W98se-bootfloppy)&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot; &lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-68G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T30&lt;br /&gt;
| 2366-ES1 &lt;br /&gt;
| 2.10  &lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes &lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;  &lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-97G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.09 (08-08-2005) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-N6G &lt;br /&gt;
| 2.10 (26-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-81U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86U &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-86G&lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Windows XP Pro SP 2 and Ubuntu 7.10 &amp;quot;Gutsy Gibbon&amp;quot; Intel BG2200&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2366-DU9 &lt;br /&gt;
| 2.10 (27-06-2006) &lt;br /&gt;
| Suse Linux 10.1 &lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T30 &lt;br /&gt;
| 2367-RU1 &lt;br /&gt;
| 2.01 (06-08-2002) &lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-7CU &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PM1 &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40 &lt;br /&gt;
| 2373-4BG &lt;br /&gt;
| 3.21&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-7CU&lt;br /&gt;
| 3.21 (06-02-2006)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-75U&lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Fedora 6 w Intel 2915ABG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-82U &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP/ SUSE 10.1&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.05a (2004-05-14)&lt;br /&gt;
| Arch Linux&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-8CG &lt;br /&gt;
| 3.15 (2005-03-29)&lt;br /&gt;
| Windows XP Pro SP2 w/[http://www.giga-byte.com.tw/Products/Communication/Products_Spec.aspx?ClassValue=Communication&amp;amp;ProductID=985&amp;amp;ProductName=GN-WI01GS Gigabyte GN-WI01GS]&lt;br /&gt;
| No-1802 LiveCD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-PU7 &lt;br /&gt;
| 3.21 (09-12-2006)&lt;br /&gt;
| Windows XP Professional&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2373-42G &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Windows 2000 Pro &lt;br /&gt;
| no-1802 utility &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CG &lt;br /&gt;
| 3.20 (11-05-2006) &lt;br /&gt;
| Ubuntu 6.06 LTS w/Intel Pro Lan2200&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-8CU &lt;br /&gt;
| 3.03 (07 Apr 2004) &lt;br /&gt;
| Windows XP&lt;br /&gt;
| no-1802 utility (applied via FreeDos bootable USB stick) &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40&lt;br /&gt;
| 2374-DG1 &lt;br /&gt;
| 3.21 (06-02-2006) &lt;br /&gt;
| Ubuntu 6.10 w/Broadcom 4306&lt;br /&gt;
| Matthew Garrett's code &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G1G&lt;br /&gt;
| 3.19 (10-13-2005)&lt;br /&gt;
| Debian GNU/Linux (sid)&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T40p&lt;br /&gt;
| 2373-G5G&lt;br /&gt;
| 3.21 (2006-06-02)&lt;br /&gt;
| Windows XP Pro SP2 / Gentoo 2007.0&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-1FG &lt;br /&gt;
| 3.21 (2007-06-18)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-5G1 &lt;br /&gt;
| 2004 &lt;br /&gt;
| Fedora Core 6 w/Intel Pro 2915ABG a/b/g&lt;br /&gt;
| no-1802 Linux Live CD &lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-9HU&lt;br /&gt;
| n/a&lt;br /&gt;
| Ubuntu 6.10 w/Atheros 5212 a/b/g&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|ThinkPad T41&lt;br /&gt;
| 2373-2FG&lt;br /&gt;
| n/a&lt;br /&gt;
| Windows XP Pro SR2 w/ Intel 2200BG&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style=&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2373-GEG &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| Gentoo / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41p&lt;br /&gt;
| 2374-GGU &lt;br /&gt;
| 3.21 (1RETDPWW) 6/2/2006&lt;br /&gt;
| Slackware / XP pro SP2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T41&lt;br /&gt;
| 2373-K32 &lt;br /&gt;
| BIOS Build ID: 1RETDOWW(3.20) &lt;br /&gt;
| CentOS 5.0 w/Atheros 5212 (CM9)&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-6UU&lt;br /&gt;
| Not noted&lt;br /&gt;
| Fedora 7 w/Atheros 5212&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-4TG &lt;br /&gt;
| 3.13 (1RETDHWW) (29-10-2004)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel PRO 2200BG&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42p&lt;br /&gt;
| 2373-HTU &lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-K2G &lt;br /&gt;
| 3.17 (07-27-2005)&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-M1U&lt;br /&gt;
| 3.13 1RETDHWW (10/29/2004)&lt;br /&gt;
| Fedora 7 w/ Intel PRO 2200BG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2373-LM1&lt;br /&gt;
| 3.23 (1RETDRWW) (06-18-2007)&lt;br /&gt;
| Debian Lenny (2.6.21-2-686) w/ Intel PRO 2915ABG&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T42&lt;br /&gt;
| 2378-EXU &lt;br /&gt;
| 3.18 (09-15-2005)&lt;br /&gt;
| Windows XP Pro SP2&lt;br /&gt;
| No-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad T43&lt;br /&gt;
| 1871-F1G&lt;br /&gt;
| 1.19 (70ET59WW) (2005-09-20)&lt;br /&gt;
| n/a&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X22 &lt;br /&gt;
| 2662-95G&lt;br /&gt;
| 1.32 (2003-06-10)&lt;br /&gt;
| Debian GNU/Linux testing, kernel 2.6.18-3-686&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X24&lt;br /&gt;
| 2662-MPG &lt;br /&gt;
| ?&lt;br /&gt;
| Debian GNU/Linux 2.6.18.5-586&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| AR5212 &lt;br /&gt;
| ?&lt;br /&gt;
| Debian Linux 2.6.18-5&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-41j &lt;br /&gt;
| 1.08 (08-09-2005)&lt;br /&gt;
| Gentoo Kernel 2.6.15 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2672-4XU &lt;br /&gt;
| 1.09&lt;br /&gt;
| Win XP Pro SP2&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X30 &lt;br /&gt;
| 2673-EU2 &lt;br /&gt;
| 1.09 &lt;br /&gt;
| Windows XP Pro SP2 &lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.22-rc7&lt;br /&gt;
| no-1802 utility&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PG9 &lt;br /&gt;
| 2.04 (2003-11-10) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.21-2&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2673-C27 &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Ubuntu 5.10 (kernel 2.6.12-9-386) &lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-1UG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| FreeBSD 6-STABLE&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG &lt;br /&gt;
| 3.02 (22-09-2005) &lt;br /&gt;
| Debian Etch (Testing), Kernel 2.6.17-2-686&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CXU &lt;br /&gt;
| 2.04&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-PBU &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-I5A &lt;br /&gt;
| 3.02&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C8G&lt;br /&gt;
| 3.02&lt;br /&gt;
| Debian (kernel 2.6.16.20-386)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-CEG&lt;br /&gt;
| 2.11 (02/13/2004)&lt;br /&gt;
| Debian (kernel 2.6.18-4-686, gcc 4.1.2)&lt;br /&gt;
| Matthew Garrett code {{footnote|3}}&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2884-BRU &lt;br /&gt;
| 1.03 (1QET34WW) 2003-04-08&lt;br /&gt;
| Windows XP Pro SP2 w/ Intel 2915ABG&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X31 &lt;br /&gt;
| 2672-C2G &lt;br /&gt;
| ?&lt;br /&gt;
| Win XP Pro, w/ Gigabyte GN-WI03N-RN&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X40&lt;br /&gt;
| 2371-8EU&lt;br /&gt;
| 1.42 (2004/09/16; 1UET92WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:green;&amp;quot;| Yes&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 1866-6SU&lt;br /&gt;
| ?&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 DOS boot CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41 &lt;br /&gt;
| 2525-A2U&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X41&lt;br /&gt;
| 2528-ELU&lt;br /&gt;
| 2.06 (2006/03/14; 74ET61WW)&lt;br /&gt;
| Windows XP Pro / OSX 10.4.8 / Ubuntu Edgy&lt;br /&gt;
| no-1802 Linux Live CD&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| No&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
| ThinkPad X60s&lt;br /&gt;
| 1702-3JU&lt;br /&gt;
| ?&lt;br /&gt;
| Debian Testing&lt;br /&gt;
| Matthew Garrett's code&lt;br /&gt;
! style =&amp;quot;color:red;&amp;quot;| NO (bricked)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Problem with WiFi LED==&lt;br /&gt;
After getting an unauthorized card to work, you may notice that the WiFi LED found on the ThinkPad is not working. This doesn't happen with all unauthorized cards. The general cause for this is the fact that the MiniPCI standard leaves the implementation of the LED signals available on the MiniPCI connector to the card vendors. Therefore some newer WiFi cards use one of the signals originally meant for LEDs to implement the &amp;quot;radio kill&amp;quot; switch input. As a result, the LED doesn't get proper signals and fails.&lt;br /&gt;
&lt;br /&gt;
====Details====&lt;br /&gt;
The WiFi LED found in ThinkPads is connected to following pins on the MiniPCI connector.&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Pin&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Signal&lt;br /&gt;
!style=&amp;quot;background:#efefef;&amp;quot;|Description&lt;br /&gt;
|-style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
|11&lt;br /&gt;
|LED1_GRNP&lt;br /&gt;
|WiFi active LED +&lt;br /&gt;
|-style=&amp;quot;background: white;&amp;quot;&lt;br /&gt;
|13&lt;br /&gt;
|LED1_GRNN&lt;br /&gt;
|WiFi active LED - (older cards) / RF Silent input (newer cards)&lt;br /&gt;
|}&lt;br /&gt;
Note: The descriptions are specific to this article.&lt;br /&gt;
&lt;br /&gt;
If your LED is not working, the problem could be the pin 13. Newer cards may no longer provide the necessary negative signal there to drive the LED. Before you apply any fixes, be sure to check the voltage between pin 11 and ground (can be found for example on the MiniPCI latch arms) - it should give you about 3.3V while the WiFi is active and 0V otherwise. The voltage between pin 13 and ground should measure about 2.5V. The notebook has to be running while you perform the tests so be extremely careful. All the mentioned pins are on the upper side so it's quite easy to get to them with a multimeter. If all the voltages match, your LED is fixable.&lt;br /&gt;
&lt;br /&gt;
Reference:&amp;lt;br&amp;gt;&lt;br /&gt;
[http://members.datafast.net.au/dft0802/specs/mpci10.pdf MiniPCI Specification] (PDF, 724KB)&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.interfacebus.com/MiniPCI_Pinout_124Pin.html MiniPCI Pinout]&lt;br /&gt;
&lt;br /&gt;
====Solution====&lt;br /&gt;
The solution is to connect the ground (GND) to the pin 13. However, since the new ''RF Silent input'' signal is active low, grounding the card side will tell it to turn itself off. Therefore, we have to separate pin 13 of the card from the system board and connect ground to the system board side only.&lt;br /&gt;
&lt;br /&gt;
There are many ways to accomplish this. One which doesn't require any soldering is to mask pin 13 on the card with a cellophane tape and use about 3cm of thin wire to connect pin 13 of the connector to the ground. Place one end of the wire on the masked pad and insert the card into the slot. Check if the wire is centered on the pad and try pulling it (but not too hard) to see if it holds. If it comes out easily, pull the card out and repeat. If you successfully attach it, you have to connect the other end to the ground. The best place is the left MiniPCI latch arm. Bend it outside and insert the wire into the small gap between the two pieces of metal the arm is made from. Finally, make sure that the wire doesn't touch anything else and doesn't stand out too much, it must not touch the touchpad electronics when you put the palmrest back on. If in doubt, cover the wire with some insulator.&lt;br /&gt;
&lt;br /&gt;
{{WARN|Do this fix ONLY if you know exactly what you are doing and at your own risk! If you're not sure about any part, don't even try it or you may damage your WiFi card and/or brick your laptop. You have been warned.}}&lt;br /&gt;
&lt;br /&gt;
{{NOTE|If your card is not listed in the table below, your WiFi LED may not work for some other reason. Therefore, make sure you understood the problem described here and made all the measurements carefully. This way you will know if this apply to your card and if it can be fixed this way. Otherwise, if you're skilled enough, please try to find out why your LED doesn't work and contribute to this article.}}&lt;br /&gt;
&lt;br /&gt;
====Successful WiFi LED fixes====&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;border:1px; background:grey;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Model&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Type&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| WiFi card&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Operating System &lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Success&lt;br /&gt;
! style=&amp;quot;background:#efefef;&amp;quot;| Comments&lt;br /&gt;
|- style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|T41&lt;br /&gt;
|2374-312&lt;br /&gt;
|Intel&amp;amp;nbsp;PRO/Wireless&amp;amp;nbsp;2915ABG,&lt;br /&gt;
Spares No: 373830-001&lt;br /&gt;
|Windows&amp;amp;nbsp;XP&amp;amp;nbsp;SP2,&lt;br /&gt;
Ubuntu&amp;amp;nbsp;7.10&lt;br /&gt;
|style =&amp;quot;color:green;font-weight:bold;&amp;quot;|Yes&lt;br /&gt;
|The WiFi card seems to be a HP one (tip: google for spares no.). Not sure thou - received it with an already changed PCI-ID.&lt;br /&gt;
|-  style=&amp;quot;background: white; color:black;&amp;quot;&lt;br /&gt;
|X31&lt;br /&gt;
|2672-PG9&lt;br /&gt;
|Intel&amp;amp;nbsp;PRO/Wireless&amp;amp;nbsp;2915ABG, Broadcom BCM4306&lt;br /&gt;
|Debian Sid&lt;br /&gt;
|style =&amp;quot;color:green;font-weight:bold;&amp;quot;|Yes&lt;br /&gt;
|Both cards are non-IBM ones, BIOS was patched.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External Sources==&lt;br /&gt;
* Additional Information about &amp;quot;Unauthorised&amp;quot; MiniPCI adapters can be found on [http://www.srcf.ucam.org/~mjg59/thinkpad/wireless.html Matthew Garrett's website].&lt;br /&gt;
&lt;br /&gt;
* Thinkpad Mini PCI Wireless [http://www.srcf.ucam.org/~mjg59/thinkpad/tables.html compatibility matrix].&lt;br /&gt;
&lt;br /&gt;
* Bootable &amp;quot;no-1802&amp;quot; [http://www.command-tab.com/2006/02/26/unauthorized-wireless-cards/ CD and floppy image]&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#This is explained in a [http://lkml.org/lkml/2003/6/3/162 message to the LKML] and subsequently [http://lkml.org/lkml/2003/6/9/50 clarified].&lt;br /&gt;
#The no-1802 tool was announced and explaned in a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2004-June/018253.html message to the Linux-Thinkpad ML].&lt;br /&gt;
#Vojtech Pavlik's C-code was originally posted in a [http://lkml.org/lkml/2004/6/13/69 message to the LKML]. It was based on the assembly used in the no-1802 program. Matthew Garrett [http://www.srcf.ucam.org/~mjg59/thinkpad/hacks.html rewrote] the code to provide more error checking.&lt;br /&gt;
#This information has been added by users. Please feel free to add systems if you have had personal success or failure.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Issues_with_the_Wiki&amp;diff=35102</id>
		<title>Issues with the Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Issues_with_the_Wiki&amp;diff=35102"/>
		<updated>2007-12-11T12:14:21Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a provisorium. It's a list of things that are going wrong after the update to help [[User:akw|Akw]] track and fix them.&lt;br /&gt;
&lt;br /&gt;
== Suggestions and requests ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling user Javascript and CSS for MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
Could ThinkWiki's MediaWiki installation get these options enabled (typically set in LocalSettings.php):&lt;br /&gt;
&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:%24wgAllowUserCss wgAllowUserCss]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:%24wgAllowUserJs wgAllowUserJs]&lt;br /&gt;
&lt;br /&gt;
These options allow users to have their own custom Javascript and CSS. I (and others) like to have our own custom themes and Javascript when working with MediaWiki-powered websites.&lt;br /&gt;
&lt;br /&gt;
--[[User:SamatJain|SamatJain]] 22:04, 28 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
This is a great security risk. What is it good for?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 00:14, 29 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
It allowers users to set their own customizations via Javascript and CSS. It's a minor security risk which is why MediaWiki ships with it off, but Wikipedia and other popular websites using MediaWiki ship with it on.&lt;br /&gt;
&lt;br /&gt;
--[[User:SamatJain|SamatJain]] 20:49, 29 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
There is nothing minor about it.  The web security model is site-wise when dealing with MediaWiki, there is no easy (read: manageable) way for an user, even one that uses NoScript+Firefox or something else equally powerful, to really filter out trusted from untrusted content when you start allowing people to write JavaScript into a Wiki.&lt;br /&gt;
&lt;br /&gt;
CSS is less of a problem, but it could still hork the site if one is not careful, and MediaWiki already allows us to change the pages well enough.  If you need to change thinkwiki CSS for your own viewing pleasure, any browser worth its bytes lets you layer your own CSS on top of a site's.  I would not be strongly against enabling CSS, but I don't see any reason to do it, either.&lt;br /&gt;
&lt;br /&gt;
JavaScript submissions, OTOH, is something that must remain disabled.  IMO, if you really can't survive without tacking different JavaScript code than what thinkwiki already has, you can use greasemonkey or some other such system to do it in your own browser.&lt;br /&gt;
&lt;br /&gt;
If thinkwiki starts allowing users to set javascript on their pages, I would have to block javascript completely on my side, for example.  At that time, it is likely I will just go away.  Other contributors might feel the same.  It is not that I have anything against JavaScript.  It is the fact that I cannot *trust* user-submitted JavaScript.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 12:26, 30 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
These options only enable Javascript and CSS for user pages, i.e. for User:User/Monobook.css and User/Monobook.js, specifically ''not'' for other pages. Disabling these options was done by default as a precaution against XSS vulnerabilies [http://www.gossamer-threads.com/lists/wiki/mediawiki-announce/28572 long since been fixed]. Unfortunately, while I agree with you about disabling user Javascript as a precaution, I do not think the wgAllowUserCss option has any effect unless the wgAllowUserJs option is enabled as well.&lt;br /&gt;
&lt;br /&gt;
--[[User:SamatJain|SamatJain]] 18:52, 30 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't get the point ether.&lt;br /&gt;
Why you want to use css/javascript on user pages? You always say why you think its no problem, but not what you want to do. If you need some funky looking stuff or buttons there you should use something like myspace. This Wikis (and almost all other) purpose is collecting the main - Thinkpad - content, not something cool/funky/special on userpages&lt;br /&gt;
&lt;br /&gt;
As Hmh, I would block js immediately and may leave the site, even if its only on userpages, because I don't want to mind clicking &amp;quot;the false links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]], 30 July 2007&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/MediaWiki#Customisation Wikipedia's section on MediaWiki customization] describes some of the extensions and addons available. For example, [http://en.wikipedia.org/wiki/User:Cacycle/wikEd wikiEd] is a WYSIWYG editor such that instead of having to remember MediaWiki's markup, they use an editor that's only enabled for use them. This kind of extending is difficult to do with Stylish or Greasemonkey.&lt;br /&gt;
&lt;br /&gt;
I'll repeat, since I've not been apparently misunderstood:&lt;br /&gt;
* Users ''won't'' be able to add Javascript or CSS to arbitrary pages, only those under their user profile (these are called &amp;quot;user pages&amp;quot;)&lt;br /&gt;
* Only those users logged in will see these their own changes, no other users will.&lt;br /&gt;
Given these things, I don't understand why people need to threaten they're going to stop contributing to ThinkWiki? There isn't a way you're going to turn ThinkWiki into MySpace. If you don't use specifically use any CSS or Javascript through these features, it will not effect you at all.&lt;br /&gt;
&lt;br /&gt;
What I personally want to do, I want to use a MediaWiki modification I wrote, [http://meta.wikimedia.org/wiki/Gallery_of_user_styles#Nullbook Nullbook]. I feel as if I am much more efficient with this theme. &lt;br /&gt;
&lt;br /&gt;
--[[User:SamatJain|SamatJain]] 21:58, 30 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't understand what exactly $wgAllowUserJs is supposed to do, and its [http://www.mediawiki.org/wiki/Manual:%24wgAllowUserCss documentation] is worthless. The crux of the matter is this: if those features are enabled, is there any way ''you'' can cause ''me'' to execute JavaScript (or apply CSS) that ''you'' wrote, in ''any'' page on ThinkWiki? If not, why? &lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 22:17, 30 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
[http://meta.wikimedia.org/wiki/User_styles User styles on the MediaWiki site] describes a bit more how these options work and what is provided to any modification that depends upon them. Unless there exist security-related bugs (which is the reason these features are tagged possible security risks, and why they are proactively disabled by default), by design, no, there is no way that I can cause you to execute Javascript or apply CSS that I had put into one of my own &amp;quot;user pages&amp;quot; (i.e. those under [[User:SamatJain]]).&lt;br /&gt;
&lt;br /&gt;
--[[User:SamatJain|SamatJain]] 22:53, 30 July 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
'''If and only if''' such javascript and css changes are limited so that the user who made them is the only one who gets them, then I have nothing against it.&lt;br /&gt;
&lt;br /&gt;
That said, I'd prefer if the relevant mediawiki code was audited a bit before it is enabled.&lt;br /&gt;
&lt;br /&gt;
PS: Whomever is doing it, please stop screwing around with the formatting: there must be one empty line before and after signatures, it makes the dialog a '''lot''' more readable.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 02:53, 1 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Troubles encountered ==&lt;br /&gt;
&lt;br /&gt;
=== Problems with Language.php ===&lt;br /&gt;
&lt;br /&gt;
Some pages are not happy with mediawiki 1.11.0, and return:&lt;br /&gt;
 Warning: array_slice() [function.array-slice]: The first argument should be an array in /home/thinkwiki/htdocs/mediawiki-1.11.0/languages/Language.php on line 1153&lt;br /&gt;
&lt;br /&gt;
For an example, see: [[User:Akw | Akw's user page]]&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 01:14, 20 October 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Problem with cmdroot ===&lt;br /&gt;
&lt;br /&gt;
Following String is not handled correct by template cmdroot:&lt;br /&gt;
&amp;quot;fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image&amp;quot;&lt;br /&gt;
&lt;br /&gt;
see here:&lt;br /&gt;
{{cmdroot|fakeroot make-kpkg --initrd --revision=thinkpad.1.0 kernel_image}}&lt;br /&gt;
&lt;br /&gt;
=== Can not open page to edit without introducing modifications ===&lt;br /&gt;
&lt;br /&gt;
If I open the [[X31]] model page and without touching anything I hit preview, the div token is decomposed and appears in the preview page, and of course, the photo is not in the right place.&lt;br /&gt;
 &lt;br /&gt;
--[[User:Ungoliant|Ungoliant]] 19:24, 20 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=== Uploading SVG files ===&lt;br /&gt;
&lt;br /&gt;
'''Can not upload SVG'''&lt;br /&gt;
 I get the upload warning:&lt;br /&gt;
 &amp;quot;.svg&amp;quot; is not a recommended image file format.&lt;br /&gt;
--[[User:Matt|Matt]] 14:02, 3 December 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
=== SpamBlackList not working ===&lt;br /&gt;
&lt;br /&gt;
* [[ThinkWiki:SpamBlackList]] does not appear to work anymore&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 03:40, 11 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
=== Multiline cmdresult template ===&lt;br /&gt;
&lt;br /&gt;
You can't (easliy do a multiline {{cmdresult|cmdresult}}, can you? See:&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&lt;br /&gt;
bar&lt;br /&gt;
baz}}&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&lt;br /&gt;
  bar (after whitespace)&lt;br /&gt;
  baz (after whitespace)}}&lt;br /&gt;
&lt;br /&gt;
This works (but is not so nice)&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&lt;br /&gt;
&lt;br /&gt;
bar (after empty line)&lt;br /&gt;
&lt;br /&gt;
baz (after empty line)}}&lt;br /&gt;
&lt;br /&gt;
Any suggestions?&lt;br /&gt;
&lt;br /&gt;
--[[User:Pebolle|Paul Bolle]] 10:27, 24 January 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I think the best way is to use single cmdresult calls for each line and prefix them with a colon. Like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:{{cmdresult|foo}}&lt;br /&gt;
:{{cmdresult|bar}}&lt;br /&gt;
:{{cmdresult|baz}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;, which results in&lt;br /&gt;
:{{cmdresult|foo}}&lt;br /&gt;
:{{cmdresult|bar}}&lt;br /&gt;
:{{cmdresult|baz}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can use &amp;amp;lt;br /&amp;amp;gt; at the ende of each line within one call, like this:&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;{{cmdresult|foo&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
bar&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
baz}}&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
, which will result in&lt;br /&gt;
&lt;br /&gt;
{{cmdresult|foo&amp;lt;br /&amp;gt;&lt;br /&gt;
bar&amp;lt;br /&amp;gt;&lt;br /&gt;
baz}}&lt;br /&gt;
&lt;br /&gt;
--[[User:Wyrfel|Wyrfel]] 12:13, 24 January 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
=== Server time out-of-sync ===&lt;br /&gt;
&lt;br /&gt;
The server time would appear to be off a lot, is it possible to setup ntpd, or to run ntpdate every hour or so using cron?&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 05:11, 22 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
=== Missing imagemagick on server ===&lt;br /&gt;
&lt;br /&gt;
 Error creating thumbnail: /home/thinkwiki/htdocs/mediawiki-1.10.0/bin/ulimit4.sh: line 4: /usr/bin/convert: No such file or directory&lt;br /&gt;
&lt;br /&gt;
I think the computer this wiki is running on is missing the imagemagick software tools especially convert to create thumbnails of images &lt;br /&gt;
&lt;br /&gt;
--[[User:Markusw|Markusw]] 10:21, 26 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Your signature with timestamp button ===&lt;br /&gt;
&lt;br /&gt;
This Button simply doesn't work, it adds &amp;lt;nowiki&amp;gt;--~~~~&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
I think its a bunch on javascript so I may add:&amp;lt;br&amp;gt;&lt;br /&gt;
I use Firefox (branded as Icewasel) on Debian Testing&amp;lt;br&amp;gt;&lt;br /&gt;
Preferences:&amp;lt;br&amp;gt;&lt;br /&gt;
Raw signatures (without automatic link) OFF&amp;lt;br&amp;gt;&lt;br /&gt;
Show edit toolbar (JavaScript) ON&amp;lt;br&amp;gt;&lt;br /&gt;
(Oh... Yes its javascript)&lt;br /&gt;
&lt;br /&gt;
EDIT:&lt;br /&gt;
Even in my Windows XP SP2 Virtual Machine it don't work in Internet Explorer 7.0&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] 29 July 2007&lt;br /&gt;
&lt;br /&gt;
I have been using this button for quite a while now, and it seems to work just fine.  It does insert &amp;lt;nowiki&amp;gt;--~~~&amp;lt;/nowiki&amp;gt;, but upon submitting previews or saving the page, it gets converted into my signature.&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 01:27, 20 October 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
hm... (wow a nice joke...)&lt;br /&gt;
&lt;br /&gt;
lets try this&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] 00:30, 21 October 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, its all fine... I'm sorry but this seems to be extremely non-intuitive...&lt;br /&gt;
&lt;br /&gt;
--[[User:BDKMPSS|BDKMPSS]] 00:32, 21 October 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yeah, intuitive it ain't...&lt;br /&gt;
&lt;br /&gt;
--[[User:Hmh|hmh]] 00:43, 22 October 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Problem with the feeds (RSS and Atom) ===&lt;br /&gt;
The feed does not validate, and thus not load in Firefox or Liferea.&lt;br /&gt;
&lt;br /&gt;
The problem is, that there is a trailing newline before &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt; which is not allowed&lt;br /&gt;
&lt;br /&gt;
--[[User:Zhenech|Zhenech]] 12:14, 11 December 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Problems fixed ==&lt;br /&gt;
&lt;br /&gt;
* List emptied, since everything in it was more than one year old&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade_Downloads&amp;diff=34112</id>
		<title>BIOS Upgrade Downloads</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=BIOS_Upgrade_Downloads&amp;diff=34112"/>
		<updated>2007-10-25T15:44:41Z</updated>

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

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;uum... how is this related to ibm/lenovo thinkpads? [[User:Ra|Ra]] 19:04, 18 September 2007 (UTC)&lt;br /&gt;
:it is related, as it is a software for linux which helps you to get a longer battery life for your laptop which in this case is a thinkpad ;) --[[User:Zhenech|Zhenech]] 20:07, 18 September 2007 (UTC)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Xorg_RandR_1.2&amp;diff=32717</id>
		<title>Xorg RandR 1.2</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Xorg_RandR_1.2&amp;diff=32717"/>
		<updated>2007-08-29T09:16:42Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: adding note about disabled dri on x31&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Fixme|This page will cover use of Xorg 7.3 with RandR version 1.2 based on testing the forthcoming Ubuntu 'Gutsy' (7.10) release with a Thinkpad R60e (Intel 946GM graphics chip). As the release stabilises so should this page transform from a lab notebook to a fully written-up howto.}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''X RandR '''is used to set the size, orientation and reflection of the screen display outputs.&lt;br /&gt;
&lt;br /&gt;
xrandr is the command line interface to the RandR X extension. As usual with X good documentation is hard to find, to start somewhere try&lt;br /&gt;
&lt;br /&gt;
* {{cmduser|xrandr --help}}&lt;br /&gt;
* {{cmduser|man xrandr}}&lt;br /&gt;
* {{cmduser|man intel}}&lt;br /&gt;
* {{cmduser|man radeon}}&lt;br /&gt;
* [http://gitweb.freedesktop.org/?p=xorg/proto/randrproto.git;f=randrproto.txt;a=blob RandR 1.2 protocol specifications] - this defines the model and terminology&lt;br /&gt;
&lt;br /&gt;
== Supported drivers ==&lt;br /&gt;
Ubuntu Gutsy (7.10 tribe 5+)&lt;br /&gt;
* X.org intel driver, version [https://launchpad.net/ubuntu/+source/xserver-xorg-video-intel/2:2.1.1-0ubuntu2  2:2.1.1-0ubuntu2] with [https://launchpad.net/ubuntu/gutsy/i386/xrandr/1:1.2.2-0ubuntu1 xrandr 1:1.2.2-0ubuntu1]&lt;br /&gt;
&lt;br /&gt;
* X.org [[radeon]] driver, current git version&lt;br /&gt;
&lt;br /&gt;
== xorg.conf ==&lt;br /&gt;
Start testing with a default configuration.&lt;br /&gt;
Connect the external display to the VGA port, turn on that display, boot and run&lt;br /&gt;
&lt;br /&gt;
    {{cmdroot|sudo dpkg-reconfigure -phigh xserver-xorg}}&lt;br /&gt;
 &lt;br /&gt;
The resulting {{path|/etc/X11/xorg.conf}} should include something like&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier	&amp;quot;Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller&amp;quot;&lt;br /&gt;
        Driver		&amp;quot;intel&amp;quot;&lt;br /&gt;
        BusID		&amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
        '''# ADD THIS IF YOUR LAPTOP DOES NOT HAVE A TV CONNECTOR or DOCKING STATION '''&lt;br /&gt;
        '''Option          &amp;quot;monitor-TV&amp;quot;   &amp;quot;TV&amp;quot; '''&lt;br /&gt;
    EndSection&lt;br /&gt;
    Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
        Identifier	&amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
        Option		&amp;quot;DPMS&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
   ''' # ADD THIS IF YOUR LAPTOP DOES NOT HAVE A TV CONNECTOR or DOCKING STATION '''&lt;br /&gt;
   '''Section &amp;quot;Monitor&amp;quot; '''&lt;br /&gt;
        '''Identifier      &amp;quot;TV&amp;quot; '''&lt;br /&gt;
        '''Option          &amp;quot;Ignore&amp;quot; &amp;quot;True&amp;quot; '''&lt;br /&gt;
   EndSection '''&lt;br /&gt;
    Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier	&amp;quot;Default Screen&amp;quot;&lt;br /&gt;
        Device		&amp;quot;Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller&amp;quot;&lt;br /&gt;
        Monitor		&amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
        DefaultDepth	24&lt;br /&gt;
    ...&lt;br /&gt;
        SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
            Depth		24&lt;br /&gt;
            Modes		&amp;quot;1600x1200&amp;quot; &amp;quot;1280x1024&amp;quot; &amp;quot;1024x768&amp;quot; &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&lt;br /&gt;
            '''# ADD A VIRTUAL LINE TO PROVIDE FOR THE LARGEST SCREENS YOU WILL HOTPLUG '''&lt;br /&gt;
            '''Virtual              2048 2048 '''&lt;br /&gt;
        EndSubSection&lt;br /&gt;
    EndSection&lt;br /&gt;
    Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
        Identifier	&amp;quot;Default Layout&amp;quot;&lt;br /&gt;
        Screen		&amp;quot;Default Screen&amp;quot;&lt;br /&gt;
        InputDevice	&amp;quot;Generic Keyboard&amp;quot;&lt;br /&gt;
        InputDevice	&amp;quot;Configured Mouse&amp;quot;&lt;br /&gt;
        InputDevice     &amp;quot;stylus&amp;quot;	&amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
        InputDevice     &amp;quot;cursor&amp;quot;	&amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
        InputDevice     &amp;quot;eraser&amp;quot;	&amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
        InputDevice	&amp;quot;Synaptics Touchpad&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
after creating a clean Xorg.conf restart X and logon&lt;br /&gt;
&lt;br /&gt;
You will probably find you have a display only on the external VGA screen at its default max resolution.&lt;br /&gt;
&lt;br /&gt;
== Using  {{cmduser|xrandr}} ==&lt;br /&gt;
&lt;br /&gt;
Open a terminal window to use the command line: 'Applications:Accessories:Terminal'&lt;br /&gt;
&lt;br /&gt;
{{HINT|First look at the 'help' and 'man' pages. }}&lt;br /&gt;
&lt;br /&gt;
 {{cmduser|xrandr --help}}&lt;br /&gt;
 {{cmduser|man xrandr}}&lt;br /&gt;
&lt;br /&gt;
To query what we have (nothing connected to VGA)&lt;br /&gt;
 {{cmduser| xrandr -v}}&lt;br /&gt;
    Server reports RandR version 1.2&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr -q }}&lt;br /&gt;
 Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 1440&lt;br /&gt;
 VGA disconnected (normal left inverted right)&lt;br /&gt;
  LVDS connected 1024x768+0+0 (normal left inverted right) 304mm x 228mm&lt;br /&gt;
    1024x768       60.0*+   50.0  &lt;br /&gt;
    800x600        60.3  &lt;br /&gt;
    640x480        60.0     59.9  &lt;br /&gt;
 TV disconnected (normal left inverted right)&lt;br /&gt;
&lt;br /&gt;
If you see the 'TV disconnected' line but have neither TV connector nor docking station (eg Thinkpad R60e) then add to the Monitor and Device sections of xorg.conf as noted above. This will prevent the external (VGA) flashing off for a few seconds every time xrandr is used. (Newer versions of the intel driver may fix this.) &lt;br /&gt;
 &lt;br /&gt;
connect, but do not power-on the VGA monitor&lt;br /&gt;
 {{cmduser| xrandr -q }}&lt;br /&gt;
 Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1920 x 1440&lt;br /&gt;
 VGA connected (normal left inverted right)&lt;br /&gt;
    1920x1440@60   60.0  &lt;br /&gt;
    1920x1440      60.0  &lt;br /&gt;
    1600x1200@60   60.0  &lt;br /&gt;
    1600x1200      60.0  &lt;br /&gt;
    1280x960       60.0  &lt;br /&gt;
    640x480@60     60.0  &lt;br /&gt;
 LVDS connected 1024x768+0+0 (normal left inverted right) 304mm x 228mm&lt;br /&gt;
    1024x768       60.0*+   50.0  &lt;br /&gt;
    800x600        60.3  &lt;br /&gt;
    640x480        60.0     59.9  &lt;br /&gt;
 TV disconnected (normal left inverted right)&lt;br /&gt;
&lt;br /&gt;
Power-on the VGA &lt;br /&gt;
 {{cmduser| xrandr -q }}&lt;br /&gt;
 Screen 0: minimum 320 x 200, current 2624 x 1200, maximum 2624 x 2048&lt;br /&gt;
 VGA connected 1600x1200+1024+0 (normal left inverted right) 367mm x 275mm&lt;br /&gt;
    1600x1200      60.0*+&lt;br /&gt;
    1920x1440@60   60.0  &lt;br /&gt;
    1600x1200@60   60.0  &lt;br /&gt;
    640x480@60     60.0  &lt;br /&gt;
    640x480        60.0  &lt;br /&gt;
 LVDS connected 1024x768+0+0 (normal left inverted right) 304mm x 228mm&lt;br /&gt;
    1024x768       60.0*+   50.0  &lt;br /&gt;
    800x600        60.3  &lt;br /&gt;
    640x480        60.0     59.9  &lt;br /&gt;
 TV disconnected (normal left inverted right)&lt;br /&gt;
&lt;br /&gt;
More information for bug reports&lt;br /&gt;
 {{cmduser| xrandr --verbose}}&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr --output LVDS --auto}}&lt;br /&gt;
gets two screens but both at 1600x1200 cloned&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr --output LVDS --mode 1024x768 --output VGA --off }}&lt;br /&gt;
gets laptop only at 1024x768&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr --output VGA --right-of LVDS --mode 1600x1200 }}&lt;br /&gt;
    xrandr: screen cannot be larger than 1600x1600 (desired size 2624x1200)&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr --output VGA  --mode 1600x1200 --pos 0x400 }}&lt;br /&gt;
creates two screens with the laptop screen at  bottom of the 1600x1600 window&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr --output LVDS --mode 1024x768 --pos 0x400 }}&lt;br /&gt;
moves laptop screen to top of window, so both share same top line (which is where I prefer my menu bar)&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr  --output VGA --mode 1600x1200 --pos 0x768}}&lt;br /&gt;
   xrandr: screen cannot be larger than 1920x1440 (desired size 1600x1968)&lt;br /&gt;
&lt;br /&gt;
edit xorg.conf and ensure we have '''Virtual 2048 2048'''. Try again and it works: we have a laptop screen in a virtual position at the top of a 2048x2048 frame with the VGA monitor below.&lt;br /&gt;
&lt;br /&gt;
Next edit xorg.conf and set '''Virtual 2624 2048 '''&lt;br /&gt;
&lt;br /&gt;
 {{cmduser| xrandr  --output VGA --mode 1600x1200 --pos 1024x0}}&lt;br /&gt;
&lt;br /&gt;
We now have the laptop screen to the top-left of the 2624x2048 frame and the 1600x1200 VGA sitting beside it to the right. Because the width is now greater than 2048 DRI is disabled, (What do I need this DRI for anyway?). Now if only Gnome would put a menu-bar on the laptop screen and not place desktop icons in the invisible space below 768 on the laptop screen (and below 1200 on the VGA side) all manner of things would be well.&lt;br /&gt;
&lt;br /&gt;
== So, the story so far ==&lt;br /&gt;
&lt;br /&gt;
'''xrandr''' enables dynamic resizing of screens, switching both external and laptop screens on and off, and the applications windows can be dragged from one screen to the other. None of this requires configuring anything special for {{path|/etc/X11/xorg.conf}}. Downside: the virtual screen is not big enough permit a 1024x768 laptop and a 1600x1200 external monitor screen to be used in a non-overlapped arrangement. For that a Virtual line is needed in the 'Display' SubSection of the 'Screen' Section of xorg.conf.&lt;br /&gt;
That Virtual determines the size of the frame buffer into which the displays must fit. It cannot be changed once X starts so needs to be large enough to accommodate the largest combination of displays you want to hotplug without having to restart X. If it is greater than 2048x2048 and you are using an Intel 945 (or less) chip then DRI is not possible. Making the Virtual size square makes rotation easy. A bigger Virtual requires more memory. &lt;br /&gt;
&lt;br /&gt;
[[Image:VirtualScreen.png|monitor windows must fit within the virtual screen]] &lt;br /&gt;
&lt;br /&gt;
'''2007-08-26'''&lt;br /&gt;
Ubuntu Gutsy Gibbon Tribe 5 release plus some subsequent updates.&lt;br /&gt;
&lt;br /&gt;
The good news: a [http://www.ubuntu.com/testing/tribe5  Graphical Configuration Tool], [https://launchpad.net/ubuntu/+source/displayconfig-gtk/0.2+20070731ubuntu1 displayconfig-gtk] bad news: [https://bugs.launchpad.net/ubuntu/+source/displayconfig-gtk it dosn't work too well]. If installing from a tribe 5 CD then this will be found in the menu: 'System: Administration: Screens and Graphics'. If you have been upgrading from earlier releases you may need to install from 'Applications: Add/Remove: System Tools' &lt;br /&gt;
&lt;br /&gt;
[[Image:Ubuntu710ScreenConfig.png|Ubuntu 7.10t5 Screen Config]] &lt;br /&gt;
&lt;br /&gt;
This provides a dialogue to set the default screen, and a secondary screen as either a mirror of screen 1 or an extended screen. At the moment this is far from stable and changing settings causes modifications to the xorg.conf that will cause X to fail. This issue is not confined to the Thinkpad R60e, testing with a Toshiba U300 produces similar results. It also appears to mess with xorg.conf by adding extra screen configs so if things stop working with command line xrandr check the integrity of xorg.conf . Also it appears that the xorg.conf generated by debian with {{cmduser|  sudo dpkg-reconfigure -phigh xserver-xorg}} includes modelines for a Generic Monitor. My post tribe 5 xorg.conf has: (only the [Section &amp;quot;Screen&amp;quot;: SubSection &amp;quot;Display&amp;quot;: Virtual 2624 2048] has been added by me)&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;Intel Corporation Mobile 945GM/GMS, 943/940GML Express &lt;br /&gt;
 Integrated Graphics Controller&amp;quot;&lt;br /&gt;
        Boardname       &amp;quot;intel&amp;quot;&lt;br /&gt;
        Busid           &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
        Driver          &amp;quot;intel&amp;quot;&lt;br /&gt;
        Screen  0&lt;br /&gt;
        Option          &amp;quot;MonitorLayout&amp;quot; &amp;quot;CRT,LFP&amp;quot;&lt;br /&gt;
        Option          &amp;quot;Clone&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
        Option          &amp;quot;CloneRefresh&amp;quot;  &amp;quot;60&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
        Vendorname      &amp;quot;Generic LCD Display&amp;quot;&lt;br /&gt;
        Modelname       &amp;quot;LCD Panel 1600x1200&amp;quot;&lt;br /&gt;
        Horizsync       31.5-90&lt;br /&gt;
        Vertrefresh     60&lt;br /&gt;
  modeline  &amp;quot;640x480@60&amp;quot; 25.2 640 656 752 800 480 490 492 525 -vsync -hsync&lt;br /&gt;
  modeline  &amp;quot;800x600@60&amp;quot; 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1024x768@60&amp;quot; 65.0 1024 1048 1184 1344 768 771 777 806 -vsync -hsync&lt;br /&gt;
  modeline  &amp;quot;1280x960@60&amp;quot; 102.1 1280 1360 1496 1712 960 961 964 994 -hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1280x1024@60&amp;quot; 108.0 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1400x1050@60&amp;quot; 122.61 1400 1488 1640 1880 1050 1051 1054 1087 -hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1600x1200@60&amp;quot; 162.0 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1792x1344@60&amp;quot; 204.8 1792 1920 2120 2448 1344 1345 1348 1394 -hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1856x1392@60&amp;quot; 218.3 1856 1952 2176 2528 1392 1393 1396 1439 -hsync +vsync&lt;br /&gt;
  modeline  &amp;quot;1920x1440@60&amp;quot; 234.0 1920 2048 2256 2600 1440 1441 1444 1500 -hsync +vsync&lt;br /&gt;
        Gamma   1.0&lt;br /&gt;
 EndSection&lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;Default Screen&amp;quot;&lt;br /&gt;
        Device          &amp;quot;Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller&amp;quot;&lt;br /&gt;
        Monitor         &amp;quot;Generic Monitor&amp;quot;&lt;br /&gt;
        Defaultdepth    24&lt;br /&gt;
        SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
                Depth   24&lt;br /&gt;
                Virtual 2624    2048&lt;br /&gt;
                Modes           &amp;quot;1024x768@60&amp;quot;   &amp;quot;1280x960@60&amp;quot;   &amp;quot;800x600@60&amp;quot;    &amp;quot;1280x1024@60&amp;quot;  &amp;quot;640x480@60&amp;quot;    &amp;quot;1400x1050@60&amp;quot;  &amp;quot;1600x1200@60&amp;quot;  &amp;quot;1792x1344@60&amp;quot;  &amp;quot;1856x1392@60&amp;quot;  &amp;quot;1920x1440@60&amp;quot;&lt;br /&gt;
        EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
=== Notes from xserver-xorg-video-intel.readme === &lt;br /&gt;
'''Known Limitations'''&lt;br /&gt;
- No support for &amp;quot;zaphod mode&amp;quot; dualhead.  This is the mode in which two&lt;br /&gt;
Device sections are placed in the config file, and doesn't support DRI or&lt;br /&gt;
many other features.  Instead, only &amp;quot;MergedFB-style&amp;quot; dualhead is supported.&lt;br /&gt;
- No support for X Screens larger than 2048 pixels in either direction&lt;br /&gt;
before the 965.  This reflects hardware limitations in the x direction on&lt;br /&gt;
those older chips, and limits dualhead functionality.  It may be possible to&lt;br /&gt;
extend the limit vertically on these older chips.&lt;br /&gt;
- i855 XV may cause hangs.  This was present in the previous release, and no&lt;br /&gt;
workaround is known.&lt;br /&gt;
- SDVO TV-out cards not supported.  This should be fixed in the next&lt;br /&gt;
release.&lt;br /&gt;
- Gray output with integrated TV-out and PAL TVs.&lt;br /&gt;
- EXA support unstable on i845.&lt;br /&gt;
- Some GM965 systems, such as the Thinkpad T61, probe the TV as being connected&lt;br /&gt;
even when no output connector is available. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Common issues not caused by the driver'''&lt;br /&gt;
- Font sizes (DPI) are wrong.  Some displays incorrectly report their&lt;br /&gt;
physical size, which is harmless on most OSes that always assume 96dpi&lt;br /&gt;
displays.  This can be fixed through quirks for specific monitors in the X&lt;br /&gt;
Server, and the output of xrandr --prop along with a physical measurement of&lt;br /&gt;
the screen size in a bug report against the server can help get that fixed.&lt;br /&gt;
- gnome-panel is located in the middle of the screen.  gnome-panel places&lt;br /&gt;
itself within head #0's boundaries, which doesn't work well with a second&lt;br /&gt;
head covering the same area as head #0 but larger.&lt;br /&gt;
- Older resolution-changing applications have poor results in&lt;br /&gt;
multihead systems.  Previous extensions such as RandR 1.1 exposed only a&lt;br /&gt;
single output to client programs, and those requests map poorly to multi-head&lt;br /&gt;
systems.  Currently, those requests map to just one of the outputs in the&lt;br /&gt;
RandR 1.2 environment, and those applications need to be updated to RandR 1.2&lt;br /&gt;
API when available for better results.&lt;br /&gt;
&lt;br /&gt;
=== Notes from various sources ===&lt;br /&gt;
Virtual size of 2048x2048 is the maximum for the Intel 945. So to configure two non-ovelapping monitors of 1600x1200 and 1024x768 the only option is to stack them verticaly in the virtual pane.&lt;br /&gt;
&lt;br /&gt;
updated Xorg.conf should:&lt;br /&gt;
&lt;br /&gt;
drop dual Device/Screen/Monitor sections from&lt;br /&gt;
&lt;br /&gt;
drop MonitorLayout option and Screen lines from the remaining Device section&lt;br /&gt;
&lt;br /&gt;
drop dual Screen lines from the ServerLayout section&lt;br /&gt;
&lt;br /&gt;
drop RightOf/LeftOf indication to the remaining Screen line in ServerLayout section&lt;br /&gt;
&lt;br /&gt;
add a &amp;quot;Virtual 2048 2048&amp;quot; line in SubSection &amp;quot;Display&amp;quot; to create a large virtual screen where physical monitor will be placed (note that boards &amp;lt; i945 will disable DRI if you use more than 2048 in one direction)&lt;br /&gt;
&lt;br /&gt;
use xrandr --output VGA --right-of LVDS to place you VGA screen on the right of your internal LCD (see xrandr manpage for details)&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-June/025469.html FreeDesktop.org 2007-June 025469]&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-June/025484.html FreeDesktop.org 2007-June 025484]&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-July/026340.html FreeDesktop.org 2007-July 026340]&lt;br /&gt;
&lt;br /&gt;
the 3D engine has an 11 bit coordinate space at one point making it&lt;br /&gt;
impossible to draw to areas beyond 2048x2048. At another point, it has a&lt;br /&gt;
stride limit of 8192 bytes, so you can't even draw to a subset of a&lt;br /&gt;
larger frame buffer.&lt;br /&gt;
&lt;br /&gt;
One more bit in both of these registers would have solved the problem&lt;br /&gt;
for pretty much any supportable monitor configuration (the chip can only&lt;br /&gt;
support two single-channel DVI outputs at the most; 1920 is the widest&lt;br /&gt;
size supported at single-channel speeds).&lt;br /&gt;
&lt;br /&gt;
For multiple monitors, the driver could allocate multiple frame buffers&lt;br /&gt;
and step through them one at a time with appropriate clipping. It would&lt;br /&gt;
be icky, but could be made to work.&lt;br /&gt;
&lt;br /&gt;
Of course, the latest hardware (965G/965GM) has plenty of coordinate&lt;br /&gt;
space, which does tend to reduce the odds that someone will get excited&lt;br /&gt;
enough to go fix the driver for older chips.&lt;br /&gt;
&lt;br /&gt;
The Gnome menu bar lands on Xinerama Screen 0 at this&lt;br /&gt;
point, which isn't currently something that you can set through RandR. On Intel the allocation to Screen 0 is determined by CRTC order and LVDS only runs on screen 1.&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-June/026053.html FreeDesktop.org 2007-June 026053]&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-August/027616.html Blanking of external screen when using xrandr]&lt;br /&gt;
&lt;br /&gt;
 it's checking to see if you have anything connected to the TV output.&lt;br /&gt;
 To do that, it needs to temporarily unplug the VGA.&lt;br /&gt;
  You can avoid this by ignoring the TV output&lt;br /&gt;
    Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;TV&amp;quot;&lt;br /&gt;
        Option          &amp;quot;Ignore&amp;quot; &amp;quot;True&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
    Section &amp;quot;Device&amp;quot;&lt;br /&gt;
       Option      &amp;quot;monitor-TV&amp;quot; &amp;quot;TV&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
 If your machine cannot ever have a TV adapter (even with a docking station),&lt;br /&gt;
 we can add a quirk to the driver to never look at the TV output.  That requires &lt;br /&gt;
 the pci subsystem values (from lspci -n -v) to plug into the quirk table.&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-August/027632.html default for 'Virtual']&lt;br /&gt;
 &amp;gt; Version 2.1.1-0ubuntu2 seems to set the default Virtual size (maximum &lt;br /&gt;
 &amp;gt; screen size) to 1920 x 1920, if there is no entry in xorg.conf. I take &lt;br /&gt;
 &amp;gt; it the maximum screen size for the i915 chipset family is 2048 x 2048, &lt;br /&gt;
 &amp;gt; so why not have it at that? This would make dualscreen setups a bit easier.&lt;br /&gt;
   The default settings is found by taking the largest resolution in either &lt;br /&gt;
 x or y dimension and making a square from that. This allows for easy &lt;br /&gt;
 rotation should you want to do so.&lt;br /&gt;
   I believe you should be able to do dual screen up to 8192x8192, though &lt;br /&gt;
 only through two monitors (Only two pipes are available for output), but &lt;br /&gt;
 that 3D acceleration is only supported up to 2048x2048. Thus as soon as &lt;br /&gt;
 you set your virtual size above 2048x2048, you lose 3D acceleration.&lt;br /&gt;
   The current driver cannot reallocate the frame buffer, so whatever size&lt;br /&gt;
 you start with is the maximum the screen can ever become, and that this&lt;br /&gt;
 amount of physical memory is tied down for the whole X server run.&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/2007-August/027670.html Primary output for Laptop + external screen]&lt;br /&gt;
 &amp;gt;the desired behavior of the video &lt;br /&gt;
 &amp;gt; drivers in typical laptop situations with an internal display and an &lt;br /&gt;
 &amp;gt; external screen attached (extending the desktop).&lt;br /&gt;
 &amp;gt; &lt;br /&gt;
 &amp;gt; Currently for example the intel driver uses the external screen as the &lt;br /&gt;
 &amp;gt; primary output. It is listed first with xrandr. I'm not sure if this is &lt;br /&gt;
 &amp;gt; intentional or just coincidence.&lt;br /&gt;
     It's coincidence -- the laptop hardware has two crtcs, and the LVDS can&lt;br /&gt;
 only be driven by the second.&lt;br /&gt;
     Note that RandR doesn't really want the order to be significant; it&lt;br /&gt;
 would be better if the desktop environment knew about outputs and could&lt;br /&gt;
 refer to a specific output as 'primary' or 'holds toolbar' or whatever.&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
'''1'''. What if xrandr -q doesn't report multiple screens and both the LVDS and TMDS-1 are stuck in cloned mode?&lt;br /&gt;
&lt;br /&gt;
{{cmduser| xrandr -q }}&lt;br /&gt;
&lt;br /&gt;
 SZ:    Pixels          Physical       Refresh&lt;br /&gt;
 0   1400 x 1050   ( 520mm x 520mm )  *60  &lt;br /&gt;
 1   1024 x 768    ( 520mm x 520mm )   60  &lt;br /&gt;
 2    800 x 600    ( 520mm x 520mm )   60  &lt;br /&gt;
 3    640 x 480    ( 520mm x 520mm )   60  &lt;br /&gt;
 4   2048 x 2048   ( 520mm x 520mm )   60  &lt;br /&gt;
Current rotation - normal&lt;br /&gt;
Current reflection - none&lt;br /&gt;
Rotations possible - normal left inverted right &lt;br /&gt;
Reflections possible - none&lt;br /&gt;
&lt;br /&gt;
''which Thhinkpad? What is connected?''&lt;br /&gt;
&lt;br /&gt;
'''2''' Is the 2048x2048 a unfixable limitation for 945GM chipsets or can a BIOs patch help?&lt;br /&gt;
&lt;br /&gt;
Yes this is practically unfixable for 945GM. As subsequent Intel chipsets do not have this problem it is unlikely that the work-arounds required in the intel driver will be implemented. See discussions on xorg mailing list noted above.&lt;br /&gt;
&lt;br /&gt;
'''3''' What is meant by &amp;quot;to configure two non-ovelapping monitors of 1600x1200 and 1024x768 the only option is to stack them verticaly in the virtual pane.&amp;quot;  &lt;br /&gt;
By my math 1600+1024&amp;gt;2048 so does't this violate the 2048x2048 limitation?  What happens when the limitation is violated? (Error message, ignores setting, something else?)&lt;br /&gt;
&lt;br /&gt;
1600 wide plus 1200 wide is 2800. Therefore if you want your external monitor to the right or left of the laptop screen and do not want windows on one screen to also appear in part on the other screen the total width of the virtual screen needs to be 2800. If the laptop screen is to the top or bottom of the extenal screen (move mouse off top/bottom of one screen to move to the other) then we need 1200 plus 768, so a virtual screen of 1968 x 1600 will do. The problem with this arrangement is to get the Gnome menu bar in a useable position.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''4''' Shouldn't there be a way to get the version number of xrandr itself?  My ~# xrandr --version command reports &amp;quot;Server reports RandR version 1.2&amp;quot; but for me commands such as &amp;quot;xrandr --output LVDS --auto&amp;quot; return the usage and the -q option looks different.&lt;br /&gt;
&lt;br /&gt;
''Try running synaptic and then search for xrandr''&lt;br /&gt;
&lt;br /&gt;
== Notes for X31 / Radeon 7000 users ==&lt;br /&gt;
My {{X31}} has an [[ATI Mobility Radeon 7000]] with only 16MB RAM. This is not enough for big screens and DRI. Neither with [[radeon]]-default virtual size of 2048x1200, nor with my customized virtual of 2304x1024 (for one 1024x768 and one 1280x1024 screen). But this only applies for 24-bit color depth. Now I'm using only 16-bit and DRI works fine with the big virtual screen.&lt;br /&gt;
&lt;br /&gt;
If you really want 24-bit depth, and do not need a bigger screen as your LCD, try setting Virtual to &amp;quot;1024 768&amp;quot;, this will enable DRI in 24-bit too, but you won't be able to extend your screen anymore (well, clone will still work though).&lt;br /&gt;
&lt;br /&gt;
== Glossary ==&lt;br /&gt;
&lt;br /&gt;
'''VGA'''    Analog VGA output&lt;br /&gt;
&lt;br /&gt;
'''LVDS'''   Laptop panel&lt;br /&gt;
&lt;br /&gt;
'''TV'''     Integrated TV output&lt;br /&gt;
&lt;br /&gt;
'''TMDS-1''' First DVI SDVO output&lt;br /&gt;
&lt;br /&gt;
'''TMDS-2''' Second DVI SDVO output&lt;br /&gt;
&lt;br /&gt;
'''SDVO''' and '''DVO TV''' outputs are not supported by the driver at this time.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
Version 7.10 (Gutsy) of Ubuntu includes support for Xorg 7.3 with RandR 1.2 [https://wiki.ubuntu.com/Xorg7.3Integration Xorg 7.3]&lt;br /&gt;
&lt;br /&gt;
For versions of Ubuntu prior to 7.10 see [[Installing Ubuntu on a ThinkPad R60e]]  for an Xorg.conf suitable for use with more than one screen&lt;br /&gt;
&lt;br /&gt;
RandR extension is currently under development  see: [http://wiki.x.org/wiki/XDC2007Notes#head-11895d48723a8d0308571bec8829b7cc3ef87d7b Xorg Developer Conference 2007] and [http://burtonini.com/blog/computers/randr-2007-02-06-17-50 X RandR v1.2].&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/mailman/listinfo/xorg FreeDesktop.org mailing list]&lt;br /&gt;
&lt;br /&gt;
[http://lists.freedesktop.org/archives/xorg/ FreeDesktop.org Xorg archive]&lt;br /&gt;
&lt;br /&gt;
Useful page to supplement the minimal documentation  [http://wiki.x.org/wiki/Development/Documentation/HowVideoCardsWork How video cards work]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.debian.org/XStrikeForce/ReleaseNotes xserver-xorg-core  and xserver-xorg-video-intel might cause some trouble but also brings nice features.]&lt;br /&gt;
&lt;br /&gt;
[http://andrew.mcmillan.net.nz/taxonomy/term/18 Seamless Monitor Hotplugging with X Windows]&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/ubuntu/+source/xserve/ATI_Mobility_Radeon_7000r-xorg-video-intel/ Ubuntu source]&lt;br /&gt;
&lt;br /&gt;
[http://www.intellinuxgraphics.org/  Linux Graphics Drivers from Intel]&lt;br /&gt;
&lt;br /&gt;
[http://zdzichubg.jogger.pl/2007/05/07/xrandr-1-2-sweetness/ blog post] with xrandr-1.2 commands and photos. Narrative is in polish.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:HDAPS&amp;diff=32377</id>
		<title>Talk:HDAPS</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:HDAPS&amp;diff=32377"/>
		<updated>2007-08-24T07:26:10Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* &amp;quot;Reduced Power&amp;quot; hdapsd Consuming More Power */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;So, this is in the stable kernel now, but what userspace program do we need to actually park the heads?&lt;br /&gt;
--[[User:MrStaticVoid|MrStaticVoid]] 01:26, 30 Oct 2005 (CEST)&lt;br /&gt;
----&lt;br /&gt;
Yes the hdaps driver is in the 2.6.14 kernel, but support to park the heads quickly and freeze the disk queue (to prevent the heads from getting un-parked) is not. There is some disagreement into how that should be implemented.&lt;br /&gt;
&lt;br /&gt;
In other words, the hdaps driver for the moment is rather useless, unless you want to use it to play games.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tonko|Tonko]] 02:10, 30 Oct 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I head rumours that you can make SDL handle this like a joystick, e.g. for playing Neverball. Can anyone confirm or deny that? Thanx --[[User:Nomeata|Nomeata]] 01:16, 16 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Yes it is possible to use it as a joystick, as Tonko allready mentioned.&lt;br /&gt;
/dev/input/jsX modprobe joydev&lt;br /&gt;
&lt;br /&gt;
Ozi&lt;br /&gt;
&lt;br /&gt;
Thanks, I didn't have the joydev module. Rebuilding... --[[User:129.13.186.1|129.13.186.1]] 15:30, 16 Nov 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Yeah, it's a pretty good party trick - set up the HDAPS joystick as xmame input.  You can play Ms. Pac-man by tilting your laptop to make pac-man navigate the maze.  You can imagine that the pac-man &amp;quot;rolls&amp;quot; downhill, just like those old wooden marble-puzzles that you see around.  Heh, can actually clear a level or two.&lt;br /&gt;
&lt;br /&gt;
Marble madness was strangely unsatisfying though, and just didn't work well (probably due to the diagonal nature of the screen in that game).&lt;br /&gt;
&lt;br /&gt;
--[[User:gsmenden|gsmenden]] 20:10, 13 Jan 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Anyone got the queue freezing patch running on 2.6.16? I'm going to try to manually merge it but didn't want to duplicate someone else's work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ajbarr|Ajbarr]] 19:12, 22 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Reduced Power&amp;quot; hdapsd Consuming More Power ==&lt;br /&gt;
&lt;br /&gt;
There is a link to a &amp;quot;reduced power&amp;quot; version of hdapsd, which is supposed to lower the number of timer interrupts (thereby reducing the power consumed by the daemon).  From my experiments (using powertop), however, this program requires about twice as many interrupts to operate in &amp;quot;low power&amp;quot; mode as it does using the (older) sysfs interface.  It also consumes enough CPU cycles to force my CPU back on periodically, consuming more power.  Has anybody else had this experience?&lt;br /&gt;
&lt;br /&gt;
--[[User:Mbsullivan|Mbsullivan]] 05:41, 24 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Well, not really. With tp_smapi 0.31 and older hdapsd I had wakeups from hdapsd and from the hdaps module, now powertop only shows about 50wakeups from hdapsd (which are really from the module, but this is a bug in powertop, it tells who first called a function, not whose function it is [it's a function in the module code]). So I get a lower power consumption with the newer pair of tpsmapi and hdapsd&lt;br /&gt;
:--[[User:Zhenech|Zhenech]] 07:26, 24 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== I hawe a problem ==&lt;br /&gt;
&lt;br /&gt;
I tray to start working my IBM x40 with hdaps function but I can't make it right.&lt;br /&gt;
&lt;br /&gt;
The main problem is in a not hanging variables when I read&lt;br /&gt;
/sys/devices/platform/hdaps/position&lt;br /&gt;
&lt;br /&gt;
==I also have this problem!==&lt;br /&gt;
Hi, I also have this problem that on my X40 the device/platform/hdaps/position does not give the right response. It is simply constant (128,1).&lt;br /&gt;
Does anyone have a clue? I use the suse kernel 2.6.16.13-4-default from suse10.1. the hdaps sources in that kernel are the same as in the original kernel.&lt;br /&gt;
thanks in advance,&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Does the HDAPS sensor work under Windows (as observed from actual disk parking, or the graphical animation)? &lt;br /&gt;
Also, try loading [[tp_smapi]], it includes some patches for the hdaps driver. Does it help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 16:45, 8 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
HI Again,&lt;br /&gt;
HDAPS does work under windows. When I had windows running and then reboot the machine, hdaps is running under suse10.1 also. If I, however, turn off the machine and restart it, then, hdaps does *not* work anymore.&lt;br /&gt;
I remember that with suse 10.0 and the separate module, hdaps did work.&lt;br /&gt;
HDAPS now works with tp_smapi as suggested above.&lt;br /&gt;
Still, where does the problem derive from?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The hdaps in the vanilla kernel has some bugs (i.e., in doesn't talk to the hardware correctly) which tp_smapi fixes. Looks like you've hit one of these.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 18:05, 12 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==laptop acpi problem with hdaps==&lt;br /&gt;
&amp;lt;b&amp;gt; UPDATE: the problem seems fixed in the version 0.21 &amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
My my both IBM T42/T43 laptops freezes time to times with the follow:&lt;br /&gt;
&lt;br /&gt;
kernel 2.6.16/sata patch&amp;lt;br&amp;gt;&lt;br /&gt;
hdaps build as a module from the kernel.&lt;br /&gt;
tp_smapi 0.20/hdapsd&lt;br /&gt;
&lt;br /&gt;
The freez is quite common then I access CD-ROM,but it also might freez without touching anything.&amp;lt;br&amp;gt;&lt;br /&gt;
After the freez keyboard doesn't work or priting some character,power button doesn't work, however mouse might continue to work.&amp;lt;br&amp;gt;&lt;br /&gt;
KDE battery systray shows discarchged  batteries.&amp;lt;br&amp;gt;&lt;br /&gt;
Still under investigation that cases the problem.&amp;lt;br&amp;gt;&lt;br /&gt;
The related software:&lt;br /&gt;
khdapsmon 0.1.2&amp;lt;br&amp;gt;&lt;br /&gt;
ibm-acpi build-in as a module from the kernel(for ksensors)&lt;br /&gt;
modified ksensors without lm_sensors with a patch&lt;br /&gt;
http://bugs.gentoo.org/show_bug.cgi?id=116661&lt;br /&gt;
&lt;br /&gt;
--noname 00:25, 13 June 2006 (CEST)Anton&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You're the 2nd one reporting this. The fact you can reproduce it on two machines may be very helpful! Are these machines configured identically? Do they run the same software? Can you send your kernel .config, and precise kernel version + patches, to the e-mail address in the tp_smapi README? Please specify which hdaps or tp_smapi -related applications you're typically running.&lt;br /&gt;
&lt;br /&gt;
BTW, if you have [[swsusp]] or [[Software Suspend 2]] installed, you can do a suspend-to-disk cycle to recover from the hang.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 11:53, 13 June 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I also have the follow &lt;br /&gt;
[[Problems_with_SATA_and_Linux#No_DMA_on_DVD_drive]].&lt;br /&gt;
So I switched cdrom driver from IDE to ATA and it fixed the problem.&lt;br /&gt;
However HDAPS has stared to freez a machine if I shake it then HDD is active.&lt;br /&gt;
The issue might be not related to ACPI but I'll log it here for now.&lt;br /&gt;
&lt;br /&gt;
I'll send configs. Thank you.&lt;br /&gt;
ps. 0.21 is out so let me try the new version.&lt;br /&gt;
--noname 08:34, 22 June 2006 (CEST)Anton&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== hdaps and /sys ==&lt;br /&gt;
&lt;br /&gt;
Hey Fellas,&lt;br /&gt;
&lt;br /&gt;
 I've just upgraded from 2.6.15.2, where the patches all dropped in ok and all was well, to 2.6.17.6, where hdaps is built into the kernel.&lt;br /&gt;
 the hdapsd daemon referenced on thinkwiki looks in /sys/block/&amp;lt;drive&amp;gt;/queue/protect to get started.&lt;br /&gt;
 The default drivers that come with 2.6.17.6 for hdaps apparently dont put anything in /queue there, so there is no 'protect' directory.&lt;br /&gt;
 Has anyone else experienced this? I'd love to get my drive protection back :)&lt;br /&gt;
 ON THE UPSIDE! - the Ricoh card reader in my z60m came to life, and I can read sd cards (but not sony memory sticks, oddly enough)&lt;br /&gt;
 Any input would be awesome!&lt;br /&gt;
 dan@itkinetix.com&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You need an extra kernel patch for &amp;quot;protect&amp;quot;. Please read the page more carefully.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 00:24, 22 July 2006 (CEST)&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Zhenech&amp;diff=32297</id>
		<title>User:Zhenech</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Zhenech&amp;diff=32297"/>
		<updated>2007-08-21T20:12:14Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm a ThinkPad {{Z61m}}/{{X31}} user from Düsseldorf, Germany.&lt;br /&gt;
At the moment I study computer science at the Heinrich-Heine-University in Düsseldorf.&lt;br /&gt;
&lt;br /&gt;
My {{Z61m}} is running {{Debian}} GNU/Linux unstable with kernel 2.6.22-rc7 ([[User:Zhenech/Config-2.6.19.2-z61m-1|config]]), [[fglrx]] 8.40.4, Xfce 4.4.1.&lt;br /&gt;
My {{X31}} is running {{Debian}} GNU/Linux unstable with kernel 2.6.22.1-rt6, open-source [[radeon|radeon-driver]], Xfce 4.4.1.&lt;br /&gt;
&lt;br /&gt;
Private homepage (including [http://www.die-welt.net/index.php/blog/65/Debian_Linux_auf_einem_IBM_Lenovo_ThinkPad_Z61m some infos about Linux on Z61m in german] [http://www.die-welt.net/index.php/blog/66/Debian_Linux_on_an_IBM_Lenovo_ThinkPad_Z61m and english]): [http://www.die-welt.net die-welt.net]&lt;br /&gt;
&lt;br /&gt;
Private Debian Sid repository with hdapsd and tp-smapi-source (out of date):&lt;br /&gt;
 deb http://debian.die-welt.net unstable main&lt;br /&gt;
 deb-src http://debian.die-welt.net unstable main&lt;br /&gt;
&lt;br /&gt;
I'm currently maintaining [http://packages.debian.org/hdapsd hdapsd] in Debian. tp-smapi and brightd will hopefully follow soon.&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Recovering_from_Recovery_CDs&amp;diff=31367</id>
		<title>Recovering from Recovery CDs</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Recovering_from_Recovery_CDs&amp;diff=31367"/>
		<updated>2007-07-18T21:08:54Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* How does the recovery process deal with existing partition layouts? */ it DOES wipe everything&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the recovery process using IBM provided recovery CDs.&lt;br /&gt;
&lt;br /&gt;
==Coverage of this approach==&lt;br /&gt;
If you install from a Recovery CD, you should get all your drivers and&lt;br /&gt;
pre-installed software back.&lt;br /&gt;
&lt;br /&gt;
==Things to be aware of==&lt;br /&gt;
===Obtaining Recovery CDs===&lt;br /&gt;
If you have your PreDesktop Area intact, you can [[Ordering_Recovery_CDs#Creating_Recovery_CDs_from_the_preinstalled_O.2FS|make a set of Recovery CDs]].&lt;br /&gt;
Otherwise, you have to try to&lt;br /&gt;
[[Ordering_Recovery_CDs#Creating_Recovery_CDs_from_the_preinstalled_O.2FS|obtain them from IBM]].&lt;br /&gt;
===How does the recovery process deal with existing partition layouts?===&lt;br /&gt;
Recovery deletes the first partition and then installs to the first&lt;br /&gt;
block of contiguous free space (which could be bigger than the original&lt;br /&gt;
first partition if there was free space after it).  Later partitions&lt;br /&gt;
are safe. The partition must be at least 8GB or so or else the&lt;br /&gt;
recovery will either fail or produce a corrupt {{Windows}} installation.  &lt;br /&gt;
You can save a little space if you intervene during some of the IBM&lt;br /&gt;
software installs, reduce the swap size and disable hibernation, but&lt;br /&gt;
you have to time this carefully.&lt;br /&gt;
{{WARN|On my Z61m, RnR3 wiped the WHOLE disk when booted from CD and told to install from the IBM-discs}}&lt;br /&gt;
&lt;br /&gt;
===Possible Causes of Failure During Recovery===&lt;br /&gt;
The Recovery CDs (shipped from IBM) are a set of up to 8 CDs, one of which is bootable and takes you into an interface almost identical to the [[predesktop area]]. It is possible that when you click &amp;quot;Restore From Factory Contents&amp;quot; (which will actually restore from the other seven CDs), before it begins writing to the hard drive, it may give you an error message that says something like &amp;quot;Restore failed to initialize&amp;quot; and refuse to go further. In my case, completely wiping the hard drive (by booting from a Linux LiveCD and using gnu scrub) fixed the problem. The Restore was able to begin without further problems. Pre-restore, my preboot partition and the whole partition table were likey messed up, which may have been what caused the error.&lt;br /&gt;
&lt;br /&gt;
A common problem during recovery *using CD's* is that if the recovery has been started by pressing f12 and choosing the &amp;quot;Boot from CD&amp;quot; the recovery starts fine and it will until the 2nd restart of the machine at which point it hangs / gives error messages of missing files or &amp;quot;unable to initialise&amp;quot; and following recovery attempts will fail with the &amp;quot;unable to initialize&amp;quot; error.&lt;br /&gt;
&lt;br /&gt;
What happens is that pressing the F12 causes the Boot record to become corrupt, the recovery should -ALLWAYS- be started by changing the boot order in the &amp;quot;startup sequence&amp;quot; of the bios leaving the CDD as the top boot device will ensure a correct recovery.&lt;br /&gt;
failing to do this and thus having a corrupt boot record requires the MBR (Master boot record) to be deleted before running a recovery will work.&lt;br /&gt;
&lt;br /&gt;
[http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-4VFUDU IBMs Official recovery instructions]&lt;br /&gt;
&lt;br /&gt;
[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=TVAN-SDD&amp;amp;sitestyle=lenovo Deletion Tool to remove a corrupt MBR]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Fedora_7_on_a_ThinkPad_T60&amp;diff=30974</id>
		<title>Talk:Installing Fedora 7 on a ThinkPad T60</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Installing_Fedora_7_on_a_ThinkPad_T60&amp;diff=30974"/>
		<updated>2007-07-04T10:14:15Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a GREAT article. While not ''everything'' worked for me exactly as told, it is the best resource I have found for the T60 and F7&lt;br /&gt;
&lt;br /&gt;
Thanks TOM!&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When I try to come out of a suspend,  I get a yellow &amp;quot;INU&amp;quot; on the screen, and the moon led stays lit.  Any ideas?  I don't see this behavior anywhere that I can find.&lt;br /&gt;
:Try to add &amp;quot;acpi_sleep=s3_bios,s3_mode&amp;quot; to your kernel parameters in your bootloader, reboot and try to suspend. It should work now. --[[User:Zhenech|Zhenech]] 10:14, 4 July 2007 (UTC)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=30042</id>
		<title>Default meanings of special keys</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=30042"/>
		<updated>2007-05-24T07:17:12Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Z Series */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; columns=&amp;quot;2&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; rowspan=&amp;quot;2&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
The following table lists the associated functionalities for special keys on ThinkPads.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| Models&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F1}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F2}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F3}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F4}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F5}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F6}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F7}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F8}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F9}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F10}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F11}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F12}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Home}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|End}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|PageUp}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Space}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|left}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|right}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|up}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|down}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Numbered===&lt;br /&gt;
|-&lt;br /&gt;
| {{240}}, {{240X}}, 240Z&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{365C}}, {{365CD}}, {{365CS}}, {{365CSD}}, {{365E}}, {{365ED}}, {{365X}}, {{365XD}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380}}, {{380D}}, {{380E}}, {{380ED}}, {{385D}}, {{385ED}}, {{380XD}}, {{385XD}}, {{380Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390}}, {{390E}}, {{390X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560}}, {{560E}}, {{560X}}, {{560Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{570}}, {{570E}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600}}, {{600E}}, {{600X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{750}}, {{750CS}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{755C}}, {{755CS}}, {{755CE}}, {{755CSE}}, {{755CD}}, {{755CX}}, {{755CV}}, {{755CDV}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760C}}, {{760CD}}, {{760L}}, {{760LD}}, {{760E}}, {{760ED}}, {{760EL}}, {{760ELD}}, {{760XD}}, {{765D}}, {{765L}}, {{760XL}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770}}, {{770E}}, {{770ED}}, {{770X}}, {{770Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===i Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{i1720}}, {{i1721}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===A Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{A20m}}, {{A20p}}, {{A21e}}, {{A21m}}, {{A21p}}, {{A22e}}, {{A22m}}, {{A22m}}, {{A22p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A30}}, {{A30p}}, {{A31}}, {{A31p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===G Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{G40}}, {{G41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===R Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}}, {{R31}}, {{R32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}}, {{R40e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}}, {{R50e}}, {{R50p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}}, {{R51e}}, {{R52}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| blank screen&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless/bluetooth&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===T Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}}, {{T21}}, {{T22}}, {{T23}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| blank screen&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| zoom(?)&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}}, {{T60p}}, {{T61}}&lt;br /&gt;
|&lt;br /&gt;
| lock screen&lt;br /&gt;
| energy manager/ settings&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| wireless/bluetooth&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| control ultranav&lt;br /&gt;
| eject&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness up&lt;br /&gt;
| brightness down&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
| last track&lt;br /&gt;
| next track&lt;br /&gt;
| stop&lt;br /&gt;
| play / pause&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===X Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}}, {{X31}}, {{X32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41T}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}}, {{X60s}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Z Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}}, {{Z60t}}&lt;br /&gt;
|&lt;br /&gt;
| lock desktop&lt;br /&gt;
| show state of battery&lt;br /&gt;
| suspend to ram (sleep)&lt;br /&gt;
| toggle bluetooth&lt;br /&gt;
| &lt;br /&gt;
| switch to external vga-output&lt;br /&gt;
| switch between trackpoint and touchpad&lt;br /&gt;
| eject dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk (hibernate)&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
|&lt;br /&gt;
| lock desktop&lt;br /&gt;
| show state of battery&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
| &lt;br /&gt;
| switch display&lt;br /&gt;
| switch trackpoint / touchpad&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
|-&lt;br /&gt;
| {{TransNote}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tables]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=29856</id>
		<title>Default meanings of special keys</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Default_meanings_of_special_keys&amp;diff=29856"/>
		<updated>2007-05-18T06:11:07Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: z61 added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; columns=&amp;quot;2&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; rowspan=&amp;quot;2&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
The following table lists the associated functionalities for special keys on ThinkPads.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; {{prettytable}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| Models&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F1}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F2}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F3}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F4}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F5}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F6}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F7}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F8}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F9}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F10}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F11}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|F12}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Home}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|End}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|PageUp}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|Space}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|left}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|right}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|up}}&lt;br /&gt;
! style=&amp;quot;background:#ffdead;&amp;quot;| {{key|Fn}}{{key|down}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Numbered===&lt;br /&gt;
|-&lt;br /&gt;
| {{240}}, {{240X}}, 240Z&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{365C}}, {{365CD}}, {{365CS}}, {{365CSD}}, {{365E}}, {{365ED}}, {{365X}}, {{365XD}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{380}}, {{380D}}, {{380E}}, {{380ED}}, {{385D}}, {{385ED}}, {{380XD}}, {{385XD}}, {{380Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{390}}, {{390E}}, {{390X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{560}}, {{560E}}, {{560X}}, {{560Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{570}}, {{570E}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{600}}, {{600E}}, {{600X}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{750}}, {{750CS}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{755C}}, {{755CS}}, {{755CE}}, {{755CSE}}, {{755CD}}, {{755CX}}, {{755CV}}, {{755CDV}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{760C}}, {{760CD}}, {{760L}}, {{760LD}}, {{760E}}, {{760ED}}, {{760EL}}, {{760ELD}}, {{760XD}}, {{765D}}, {{765L}}, {{760XL}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{770}}, {{770E}}, {{770ED}}, {{770X}}, {{770Z}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===i Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{i1720}}, {{i1721}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===A Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{A20m}}, {{A20p}}, {{A21e}}, {{A21m}}, {{A21p}}, {{A22e}}, {{A22m}}, {{A22m}}, {{A22p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{A30}}, {{A30p}}, {{A31}}, {{A31p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===G Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{G40}}, {{G41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
===R Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{R30}}, {{R31}}, {{R32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R40}}, {{R40e}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R50}}, {{R50e}}, {{R50p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R51}}, {{R51e}}, {{R52}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{R60}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===T Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{T20}}, {{T21}}, {{T22}}, {{T23}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T30}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| blank screen&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
|&lt;br /&gt;
| switch display&lt;br /&gt;
| zoom(?)&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{T60}}, {{T60p}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===X Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{X20}}, {{X21}}, {{X22}}, {{X23}}, {{X24}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X30}}, {{X31}}, {{X32}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X40}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X41T}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60}}, {{X60s}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{X60t}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Z Series===&lt;br /&gt;
|-&lt;br /&gt;
| {{Z60m}}, {{Z60t}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| {{Z61e}}, {{Z61m}}, {{Z61p}}, {{Z61t}}&lt;br /&gt;
|&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| suspend to ram&lt;br /&gt;
| switch wireless&lt;br /&gt;
| &lt;br /&gt;
| switch display&lt;br /&gt;
| switch trackpoint / touchpad&lt;br /&gt;
| (un)dock&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| suspend to disk&lt;br /&gt;
| brightness increase&lt;br /&gt;
| brightness decrease&lt;br /&gt;
| thinklight&lt;br /&gt;
| zoom&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=21 style=&amp;quot;text-align:center;background:#efefef;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Other===&lt;br /&gt;
|-&lt;br /&gt;
| {{TransNote}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tables]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_X1400&amp;diff=29811</id>
		<title>Talk:ATI Mobility Radeon X1400</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_X1400&amp;diff=29811"/>
		<updated>2007-05-15T13:44:53Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* framebuffer at 1680x1050? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== framebuffer at 1680x1050? ==&lt;br /&gt;
hey guys - did anyone of you get the framebuffer to 1680x1050?&lt;br /&gt;
vesafb works well with 1280x1024, but not more.&lt;br /&gt;
maybe with vesafb-tng from [http://dev.gentoo.org/~spock/projects/vesafb-tng/ dev.gentoo.org/~spock]? the patch fails here with 2.6.16 and 2.6.17 :(&lt;br /&gt;
(yes, I posted this question already to [[Category_talk:Z61m]], but never got a reply there)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I've not been able to get vesafb above 1280x1024 either, and didn't see any screen output from vesafb-tng when I tried it. &lt;br /&gt;
--[[User:Jescombe|Jescombe]] 15:40, 28 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Use lower color depth -- just added an entry into main article i use 1400x1050 and highcolor (16bit)&lt;br /&gt;
:Hm, which vga-mode is it -- what vga=XXX did you append to your boot-params? --[[User:Zhenech|Zhenech]] 14:39, 15 May 2007 (CEST)&lt;br /&gt;
::Well, after googling I found 0x13b, 0x142, 0x145 and 0x148, adding 0x200 and booting -&amp;gt; only 0x145 works and fglrx isn't able to initialize the display afterwards, also tested 0x144 and 0x143 with same results. :( --[[User:Zhenech|Zhenech]] 15:44, 15 May 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_X1400&amp;diff=29808</id>
		<title>Talk:ATI Mobility Radeon X1400</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:ATI_Mobility_Radeon_X1400&amp;diff=29808"/>
		<updated>2007-05-15T12:39:02Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* framebuffer at 1680x1050? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== framebuffer at 1680x1050? ==&lt;br /&gt;
hey guys - did anyone of you get the framebuffer to 1680x1050?&lt;br /&gt;
vesafb works well with 1280x1024, but not more.&lt;br /&gt;
maybe with vesafb-tng from [http://dev.gentoo.org/~spock/projects/vesafb-tng/ dev.gentoo.org/~spock]? the patch fails here with 2.6.16 and 2.6.17 :(&lt;br /&gt;
(yes, I posted this question already to [[Category_talk:Z61m]], but never got a reply there)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
I've not been able to get vesafb above 1280x1024 either, and didn't see any screen output from vesafb-tng when I tried it. &lt;br /&gt;
--[[User:Jescombe|Jescombe]] 15:40, 28 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Use lower color depth -- just added an entry into main article i use 1400x1050 and highcolor (16bit)&lt;br /&gt;
:Hm, which vga-mode is it -- what vga=XXX did you append to your boot-params? --[[User:Zhenech|Zhenech]] 14:39, 15 May 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:Intel_PRO/Wireless_2915ABG_Mini-PCI_Adapter&amp;diff=29706</id>
		<title>Talk:Intel PRO/Wireless 2915ABG Mini-PCI Adapter</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:Intel_PRO/Wireless_2915ABG_Mini-PCI_Adapter&amp;diff=29706"/>
		<updated>2007-05-11T12:18:35Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
==Linux ==&lt;br /&gt;
&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
Could anybody please confirm that the ipw2200 driver works for that card?&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
-- [[User:Oub|Oub]] 18:46, 23 March 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Yes, it does. You should always use Intel's latest stable version, though, and not whatever happened to come with the distribution kernel you're using.  Usually the very latest development drivers from Intel are good as well.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Hmh|hmh]] 2006-03-24 12:07 UTC-0300&lt;br /&gt;
&lt;br /&gt;
==Difference to 2200?==&lt;br /&gt;
Is it correct, that the only difference between 2200 and 2915 is the 802.11a which is supported by 2915? Does the possible a-mode needs more power (so a 2915 needs more than a 2200 while connected to the same g-network)? --[[User:Zhenech|Zhenech]] 14:18, 11 May 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=29501</id>
		<title>Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=29501"/>
		<updated>2007-04-26T06:55:47Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Troubles using software suspend */ added my z61m&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses issues with the ATI proprietary [[fglrx]] display driver.&lt;br /&gt;
&lt;br /&gt;
== Known Troubles and Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== X-specific issues ===&lt;br /&gt;
&lt;br /&gt;
==== upgrading xserver-xorg ====&lt;br /&gt;
ATI proprietary drivers version 8.21.7 and later work with x.org 6.9.&lt;br /&gt;
&lt;br /&gt;
If you are running an older version (8.20.8) under Debian sid and you upgrade your xserver-xorg, apt will force you to remove any debian-packaged fglrx drivers (package fglrx-driver depends on x.org &amp;lt;&amp;lt; 6.8.99).  You can just download the driver from the ATI site and install after modifying the Debian packager script to allow dependencies to be satisfied by x.org 6.9, or just download 8.21.7 and install manually.  See talk page for step-by-step commands.&lt;br /&gt;
&lt;br /&gt;
After installing the fglrx driver, you can use module-assist to build the appropriate kernel module.&lt;br /&gt;
&lt;br /&gt;
==== new Xorg ID Scheme ====&lt;br /&gt;
ATI proprietary drivers &amp;lt;=8.36.5 with xorg &amp;gt;=7.1.0-18 in Debian and Fedora ([http://www.sidux.com/PNphpBB2-viewtopic-t-3162-postdays-0-postorder-asc.html Debian] and [http://www.phoronix.net/forums/showthread.php?t=2382 Fedora] Forum Entries)&lt;br /&gt;
&lt;br /&gt;
Ubuntu feisty made their own xorg with the standard id of 7.2, to work around this issue.&lt;br /&gt;
&lt;br /&gt;
Xorg has changed its ID Scheme in newer Versions, and fglrx cannot cope with that (Error message saying &amp;quot;[...] X version mismatch - detected X.org 1.3.-1.905, required X.org 7.1.0.0 [...]&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So far there is '''no solution'''. I suggest holding back the xorg upgrades, or using the open source ati driver, until a new driver or at least a patch is released.&lt;br /&gt;
&lt;br /&gt;
=== Kernel-specific troubles ===&lt;br /&gt;
&lt;br /&gt;
Using ATI drivers &amp;lt;=8.21.7 with kernel &amp;gt;=2.6.15 needs a [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch].  (see table below for detail.) If you can't compile the driver modules with 2.6.15 or later, you should apply this [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch patch] instead. &lt;br /&gt;
&lt;br /&gt;
If you do not use one of these patches, you may experience peculiar lockups of X.  Try {{cmduser|fglrxinfo}} - if your shell hangs at the end of this command, you may have an issue and should try the patch or upgrade.&lt;br /&gt;
&lt;br /&gt;
Although unproven, there is a substantial amount of user / developer concern that the above patches prevent hard lockups but do not provide full reliability with 2.6.15 and there are larger / redisgn issues preventing compatibility.  These issues have been fixed with later ATI drivers (&amp;gt; 8.21.7) so you can simply upgrade if you are running a more modern kernel.&lt;br /&gt;
&lt;br /&gt;
=== No hardware acceleration ===&lt;br /&gt;
&lt;br /&gt;
====Acceleration lost after driver update====&lt;br /&gt;
If you lose hardware acceleration after a driver update this can be caused by an old fglrx kernel module being loaded.&lt;br /&gt;
&lt;br /&gt;
Check out {{path|1=/var/log/Xorg.0.log}} for a message like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(WW) fglrx(0): Kernel Module version does *not* match driver.&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify this yourself by looking at the version message some lines above. It should read something not matching the installed version like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0): Kernel Module Version Information:&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Name: fglrx&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Version: 8.10.19&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cause for this trouble might be that there resist multiple versions of the fglrx module within the kernel module search path.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to {{path|1=/lib/modules/&amp;lt;your linux kernel version&amp;gt;/}} and type {{cmdroot|1=grep fglrx modules.dep}}.&amp;lt;br&amp;gt;&lt;br /&gt;
If grep finds multiple lines you nailed down the problem. All you have to do now is to delete any versions of the module (look at the filedate) but the most current one. Then run {{cmdroot|1=depmod}} and you are done.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Newer versions (8.21.7) of the fglrx module seem to be installed in the &amp;lt;code&amp;gt;extra/&amp;lt;/code&amp;gt; subdirectory.&amp;lt;br&amp;gt;&lt;br /&gt;
Older versions (8.19.10) used to be located in the &amp;lt;code&amp;gt;kernel/drivers/char/drm/&amp;lt;/code&amp;gt; subdirectory.}}&lt;br /&gt;
&lt;br /&gt;
====GCC 3.4====&lt;br /&gt;
If the ATI driver works only without the hardware acceleration, take into consideration that {{path|fglrx_dri.so}} was linked against libstdc++.so.5 which may not be present if your system uses gcc-3.4.&lt;br /&gt;
&lt;br /&gt;
To fix this, compile gcc-3.3.5 and copy &amp;lt;tt&amp;gt;libstdc++.so.5*&amp;lt;/tt&amp;gt; to {{path|/usr/lib}} and update the dynamic linker cache via {{cmdroot|ldconfig}}.&lt;br /&gt;
&lt;br /&gt;
Or install a compat package for your favorite distro. FC4 users can do:&lt;br /&gt;
:{{cmdroot|yum install libstdc++.so.5}}&lt;br /&gt;
&lt;br /&gt;
====radeonfb framebuffer====&lt;br /&gt;
Another possible cause for broken hardware acceleration (2D and 3D) is the radeonfb framebuffer: Switching to vesafb or vesafb-tng is reported to solve the problem on some systems. Also it has proven helpful to not perform {{cmdroot|modprobe fglrx}} after boot but to have the module loaded via {{path|/etc/modules.autoload/kernel2.x}} at boottime instead.&lt;br /&gt;
&lt;br /&gt;
====Perpetual Mesa GLX Indirect on Debian====&lt;br /&gt;
If you've done everything right and you're still seeing:&lt;br /&gt;
&lt;br /&gt;
:{{cmduser|fglrxinfo}}&lt;br /&gt;
:{{cmdresult|display: :0.0  screen: 0}}&lt;br /&gt;
:{{cmdresult|OpenGL vendor string: Mesa project: www.mesa3d.org}}&lt;br /&gt;
:{{cmdresult|OpenGL renderer string: Mesa GLX Indirect}}&lt;br /&gt;
:{{cmdresult|OpenGL version string: 1.2 (1.5 Mesa 6.4.1)}}&lt;br /&gt;
&lt;br /&gt;
try this:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|mkdir -p /usr/X11R6/lib/modules/dri}}&lt;br /&gt;
:{{cmdroot|ln -s /usr/lib/dri/fglrx_dri.so /usr/X11R6/lib/modules/dri}}&lt;br /&gt;
&lt;br /&gt;
Thanks to Maciej Matysiak for the clear debug [http://lists.debian.org/debian-amd64/2006/02/msg00217.html here] and solution [http://lists.debian.org/debian-amd64/2006/02/msg00311.html here].&lt;br /&gt;
&lt;br /&gt;
More generally, use LIBGL_DEBUG=verbose fglrxinfo, to see what's happening, and whether you get this:&lt;br /&gt;
:{{cmduser|&amp;lt;nowiki&amp;gt;LIBGL_DEBUG=verbose&amp;lt;/nowiki&amp;gt; fglrxinfo}}&lt;br /&gt;
:{{cmdresult|libGL: XF86DRIGetClientDriverName: 8.26.18 fglrx (screen 0)}}&lt;br /&gt;
:{{cmdresult|libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/fglrx_dri.so}}&lt;br /&gt;
:{{cmdresult|libGL error: dlopen /usr/X11R6/lib/modules/dri/fglrx_dri.so failed (/usr/X11R6/lib/modules/dri/fglrx_dri.so: cannot open shared object file: No such file or directory)}}&lt;br /&gt;
:{{cmdresult|libGL error: unable to find driver: fglrx_dri.so}}&lt;br /&gt;
:{{cmdresult|display: :0.0  screen: 0}}&lt;br /&gt;
:{{cmdresult|OpenGL vendor string: Mesa project: www.mesa3d.org}}&lt;br /&gt;
:{{cmdresult|OpenGL renderer string: Mesa GLX Indirect}}&lt;br /&gt;
:{{cmdresult|OpenGL version string: 1.2 (1.5 Mesa 6.4.2)}}&lt;br /&gt;
&lt;br /&gt;
instead of that:&lt;br /&gt;
:{{cmduser|&amp;lt;nowiki&amp;gt;LIBGL_DEBUG=verbose&amp;lt;/nowiki&amp;gt; fglrxinfo}}&lt;br /&gt;
:{{cmdresult|libGL: XF86DRIGetClientDriverName: 8.26.18 fglrx (screen 0)}}&lt;br /&gt;
:{{cmdresult|libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/fglrx_dri.so}}&lt;br /&gt;
:{{cmdresult|libGL: XF86DRIGetClientDriverName: 8.26.18 fglrx (screen 0)}}&lt;br /&gt;
:{{cmdresult|drmOpenByBusid: busid is PCI:1:0:0}}&lt;br /&gt;
:{{cmdresult|drmOpenDevice: minor is 0}}&lt;br /&gt;
:{{cmdresult|drmOpenDevice: node name is /dev/dri/card0}}&lt;br /&gt;
:{{cmdresult|drmOpenDevice: open result is 4, (OK)}}&lt;br /&gt;
:{{cmdresult|drmOpenByBusid: drmOpenMinor returns 4}}&lt;br /&gt;
:{{cmdresult|drmOpenByBusid: drmGetBusid reports PCI:1:0:0}}&lt;br /&gt;
:{{cmdresult|Can't open configuration file /home/merlin/.drirc: No such file or directory.}}&lt;br /&gt;
:{{cmdresult|fglrx: DPD supported.}}&lt;br /&gt;
:{{cmdresult|display: :0.0  screen: 0}}&lt;br /&gt;
:{{cmdresult|OpenGL vendor string: ATI Technologies Inc.}}&lt;br /&gt;
:{{cmdresult|OpenGL renderer string: MOBILITY FIREGL T2 Pentium 4 (SSE2) (FireGL) (GNU_ICD)}}&lt;br /&gt;
:{{cmdresult|OpenGL version string: 2.0.5879 (8.26.18)}}&lt;br /&gt;
&lt;br /&gt;
I have contacted ATI to add that info by default, the mesa guys to do that in glxinfo too, as well as the debian packager to fix the debian packaging bug (2006/07/22), so hopefully the situation will improve soon&lt;br /&gt;
&lt;br /&gt;
You may have to run fglrxinfo as root to get this detail rather than a useless message.&lt;br /&gt;
&lt;br /&gt;
=== Softlink hell ===&lt;br /&gt;
The [[fglrx]] installer replaces the standard X.org OpenGL implementation (Mesa) with its own files, potentially causing collisions with the distribution's file and package management. It is best to install the driver via a package built for your distribution, which will typically include the necessary kludges to make things work. See the [[fglrx]] page for pointers.&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
If using {{cmduser|fglrxinfo}} after installing [[fglrx]] indicates that you are still using the mesa indirect software GL renderer, you likely have some misplaced softlinks.  It seems like it has to do with an apt-get upgrade that sometimes replaces these links.  Anyway, go to&lt;br /&gt;
:{{cmdroot|cd /usr/X11R6/lib}}&lt;br /&gt;
and list your GL libraries and links&lt;br /&gt;
:{{cmdroot|ls -la *GL*}}&lt;br /&gt;
You should see something like the following two lines amoung others:&lt;br /&gt;
:{{cmdresult|libGL.so -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
:{{cmdresult|libGL.so.1 -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
If you see a link to a mesa library (something like {{cmdresult|... -&amp;gt; libGL.mesa.1.2}}), then that's your problem!  Restore the softlink like this (use your actual library version, though):&lt;br /&gt;
:{{cmdroot|ln -s libGL.so.1.2 libGL.so.1}}&lt;br /&gt;
&lt;br /&gt;
For some reason, this link might &amp;quot;break&amp;quot; later, giving you the software rendering once more.  Even after renaming the mesa library to something like &amp;lt;tt&amp;gt;mesa.bkup&amp;lt;/tt&amp;gt;, the system might still find it and link to it despite the name change.  If you have to do this a lot, you could write a restoreGL script.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
{{Gentoo}} has built in tools for managing the OpenGL symlinks.  They seem to be replacing the old tool with a new one, so one of the following should work for you:&lt;br /&gt;
:{{cmdroot|opengl-update ati}} or&lt;br /&gt;
:{{cmdroot|eselect opengl set ati}}&lt;br /&gt;
Eselect is new, and still ~x86 (as of the end of 2005), so you may not have it yet.  &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; is the old tried-and-true method for managing the symlinks.  If &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; doesn't fix it for you, you should probably tell [http://bugs.gentoo.org Gentoo Bugzilla] (assuming they don't know yet).&lt;br /&gt;
&lt;br /&gt;
If {{cmdroot|ldd /usr/X11R6/bin/glxinfo}} shows that your system still uses the xorg-x11 mesa libs after trying one of the above commands, i.e. a line like this:&lt;br /&gt;
:{{cmdresult|1=libGL.so.1 =&amp;gt; /usr/lib/opengl/xorg-x11/lib/libGL.so.1 (0x400a8000)}}&lt;br /&gt;
you will also need to relink {{path|libGl.so.1.2}}:&lt;br /&gt;
:{{cmdroot|cd /usr/lib/opengl/xorg-x11/lib/}}&lt;br /&gt;
:{{cmdroot|mv libGL.so.1.2 libGL.so.1.2_backup}}&lt;br /&gt;
:{{cmdroot|ln -s /usr/lib/libGL.so.1.2 libGL.so.1.2}}&lt;br /&gt;
After another restart of X {{cmduser|fglrxinfo}} should show that it's using the right libs now.&lt;br /&gt;
&lt;br /&gt;
=====Debian=====&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|rm /usr/lib/libGL.so*}}&lt;br /&gt;
:{{cmdroot|rm /usr/X11R6/lib/libGL.so*}}&lt;br /&gt;
:{{cmdroot|cd /usr/X11R6/lib}}&lt;br /&gt;
:{{cmdroot|cp /usr/lib/fglrx/diversions/lib/libGL.so.1.2 .}}&lt;br /&gt;
:{{cmdroot|ln -s libGL.so.1.2 libGL.so.1}}&lt;br /&gt;
:{{cmdroot|ldconfig}}&lt;br /&gt;
&lt;br /&gt;
=== Troubles using software suspend ===&lt;br /&gt;
When the computer resumes from suspend, X only displays a garbled image and the computer is frozen.&lt;br /&gt;
The problem is acknowledged in ATI's release notes and in knowledge base entry &amp;lt;strike&amp;gt;[https://support.ati.com/ics/support/KBResult.asp?searchFor=Search+Words&amp;amp;search.x=0&amp;amp;search.y=0&amp;amp;searchOption=id&amp;amp;questionID=737-218+&amp;amp;task=knowledge&amp;amp;searchTime=-1&amp;amp;productID=&amp;amp;folderID=-1&amp;amp;resultLimit=50 737-218]&amp;lt;/strike&amp;gt; [https://support.ati.com/ics/support/KBAnswer.asp?questionID=218 737-218]. Driver version 8.19.10 has &amp;quot;initial support for Suspend and Resume&amp;quot; but is working very nicely for most people (verified on T43, T43p and T42) without vbetool.&lt;br /&gt;
&lt;br /&gt;
If you are using an older version of fglrx, using [http://www.srcf.ucam.org/~mjg59/vbetool/ vbetool] to save/restore the video card state before/after suspend worked for some people. If you use [[Software Suspend 2|Software Suspend 2 (suspend2)]] scripts, you can simply uncomment &amp;lt;tt&amp;gt;EnableVbetool yes&amp;lt;/tt&amp;gt; in {{path|/etc/hibernate/hibernate.conf}}. Be aware though that it breaks suspend/resume for drivers beginning with version 8.19.10, so remember to disable it again when upgrading.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ tested with the following configurations&lt;br /&gt;
!model!!distro||kernel!!fglrx!!PM!!success!!comments&lt;br /&gt;
|-&lt;br /&gt;
|{{T42}}||SUSE 9.3||2.6.11||8.14.13||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T41p}}||???||2.6.14||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T42p}}||Debian||2.6.10||Debian packaged||suspend2||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian sid||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 (but not earlier versions!)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian etch||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 and without vbetool&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Ubuntu Breezy||2.6.12-10||8.19.10||swsusp||yes||Perfect.  (Finally.)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.1||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch], requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.2||8.19.10||suspend2 2.2-rc11||yes||requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.19.10||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.20.8||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||FC6||2.6.20-1.2933||8.34.8||swsusp, STR||yes||DRI enabled, occasionally fails, reason unknown.&lt;br /&gt;
|-&lt;br /&gt;
|{{R50p}}||???||???||8.19.10||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14||8.19.10||Suspend to RAM||yes||without vbetool or UseDummyXServer, those two ''break'' the resume process here, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14.3||8.20.8||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R52}}||Debian sid||2.6.15-rc5||8.20.8||swsup||yes||both vbetool and UseDummyXServer disabled, DRI enabled, needs [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled - console is garbled until switching back from X&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||suspend2 2.2||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||SUSE 10.1||2.6.16||8.25.18||swsusp||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||SUSE 10.1||2.6.16||8.25.18||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T60}}||Gentoo 2006.1||2.6.19-suspend2||8.31.5||Suspend2||yes||Everything works: 3D, suspend-to-disk, suspend-to-ram, suspend in X.org, switching to VT's at any moment. Never needed to unload any modules manually, worked immediately. Fglrx driver 8.32.5 totally broke suspend for me, so i'm sticking with 8.31.5. T60 2008-B62 model.&lt;br /&gt;
|-&lt;br /&gt;
|{{T60p}}||Kubuntu 6.06||2.6.15||8.25.18||swsusp||no||Switching to VT to suspend: no resume, X restarts; Not switching: suspend works, garbled X display on resume, later X restarts&lt;br /&gt;
|-&lt;br /&gt;
|{{T60p}}||Kubuntu 6.06 Text Mode||2.6.15||---||swsusp||yes||suspend works in textmode after rmmod fglrx. &lt;br /&gt;
|-&lt;br /&gt;
|{{T60p}}||Debian/unstable/experimental||2.6.18||8.31.5-1 (from debian experimental)||susptoram hibernate debian packages||yes||suspend and resume works with X, 3D acc., Xv overlay... &lt;br /&gt;
|-&lt;br /&gt;
|{{Z61m}}||Debian Sid||2.6.20.7||8.35.5-1||Suspend to RAM||yes||works without any problems, justs needs the usual acpi_sleep hacks&lt;br /&gt;
|-&lt;br /&gt;
|{{Z61m}}||Debian Sid||2.6.20.7||8.35.5-1||Suspend to Disk (Software Suspend)||yes||works without any problems&lt;br /&gt;
|-&lt;br /&gt;
|{{Z61m}}||Debian Sid||2.6.21||8.35.5-1||Suspend to RAM||yes||fglrx module must not be loaded into the kernel, or it won't resume&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubles with large RAM ===&lt;br /&gt;
Version 8.14.13 (and probably earlier versions) of the driver does not seem to be able to cope with large amounts of RAM: with 512 MB it works, with 1.5 GB it crashes the machine as soon as X is started. The problem is present only if the &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; kernel module is loaded, but independently of whether {{kernelconf|CONFIG_HIGHMEM||||||}} is enabled. A workaround is to limit RAM by adding the {{bootparm|mem|864m}} kernel parameter.&lt;br /&gt;
&lt;br /&gt;
Version 8.16.20 fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===Display switching ===&lt;br /&gt;
The switching between internal and external display doesn't work with fglrx versions &amp;lt;= 8.24.8, because the driver blocks messing around with the chipset via ACPI. If you want to use this feature (i.e. during presentations), you should use the &amp;lt;tt&amp;gt;vesa&amp;lt;/tt&amp;gt; server instead (experienced with a R52, Kernel 2.6.11, xorg 6.8.2, fglrx 8.16.20). Or boot notebook with CRT connected, it will automatically detect it and display on both.&lt;br /&gt;
&lt;br /&gt;
===Composite Support===&lt;br /&gt;
ATI has not officially supported composite windowing (alpha channel) enabling hardware acclerated translucent windows (primarily for 'eye candy.')  Enabling Composite in KDE and the fglrx driver results in a very pretty desktop but unacceptably slow performance on a T43p with ATI's FireGL T2.  It is still unusable in its current state (as of driver 8.25.18).&lt;br /&gt;
&lt;br /&gt;
ATI promises support in the future when composite is officially supported by Xorg.  Discussion of current status of drivers can be found in the Rage3d forums' (http://rage3d.com/board) Linux area.&lt;br /&gt;
&lt;br /&gt;
Composite support is now supported with recent Mesa and Xorg &amp;gt; 7 with the open source 3d radeon drivers (if you run debian unstable, you should be all set.)  It works with the [[R300]] / FireGL T2 series as found on the T43p, but noticably slows down the system.  This has made rapid progress in speed with the latest few releases and kernel 2.6.18, and is finally usable with an R300 based card.  Expect drivers to improve in the future, but it seems that composite does require a very fast video card and system.&lt;br /&gt;
&lt;br /&gt;
===Hardlock on X logout===&lt;br /&gt;
Up from driver version 8.19.10 you will experience a system hard lock when logging out from X, if the session manager (kdm/gdm) is not properly configured. You have to tell the session manager to restart X.&lt;br /&gt;
&lt;br /&gt;
In the kdm config file (gentoo: {{path|/usr/kde/&amp;lt;VERSION&amp;gt;/share/config/kdm/kdmrc}}) you have to add following to the section &amp;lt;code&amp;gt;[X-:*-Core]&amp;lt;/code&amp;gt;: &lt;br /&gt;
 TerminateServer=true&lt;br /&gt;
&lt;br /&gt;
In the gdm config (/etc/gdm/gdm.conf) file add the following to the daemon-section:&lt;br /&gt;
 AlwaysRestartServer=true&lt;br /&gt;
&lt;br /&gt;
Information from the ATI bugtracker: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another reason of hardlock my be using the wrong AGP driver. Make sure that you have proper drivers for your motherboard loaded before fglrx: (gentoo: {{path|/etc/modules.autoload.d/kernel-2.6}}):&lt;br /&gt;
 intel-agp&lt;br /&gt;
 fglrx&lt;br /&gt;
&lt;br /&gt;
A common problem seems to be mistakenly using ATI Chipset drivers instead of Intel.&lt;br /&gt;
&lt;br /&gt;
Information from gentoo bugtracker: &amp;lt;s&amp;gt;[http://bugs.gentoo.org/show_bug.cgi?id=113685 113685]&amp;lt;/s&amp;gt;. Fixed in 8.25.18&lt;br /&gt;
&lt;br /&gt;
===Cannot switch to VT===&lt;br /&gt;
&lt;br /&gt;
With usplash boot enabled, it may not be possible to switch to a VT from X (Using Alt+Fn). Tested on T60p (Mobility Fire GLV5200) on Ubuntu 6.06 / 6.10 and fglrx 8.25.18 / 8.28.8.  Display may become garbled and system might freeze. Solution (testet on Ubuntu 6.10) is to either remove the &amp;quot;splash&amp;quot; kernel boot parameter or add &amp;quot;vga=791&amp;quot; parameter (&amp;quot;vga=794&amp;quot; can be used on 1400x1050 panel).&lt;br /&gt;
&lt;br /&gt;
http://ati.cchtml.com/show_bug.cgi?id=37 &amp;lt;br&amp;gt;&lt;br /&gt;
https://launchpad.net/distros/ubuntu/+source/usplash/+bug/63558&lt;br /&gt;
&lt;br /&gt;
===Flickering Display===&lt;br /&gt;
&lt;br /&gt;
Some people have reported problems with their display flickering when using ati-drivers newer than 8.14.13. The problem is unclear&lt;br /&gt;
(possibly associated with an incorrect modeline setting) and no known solution exists except to use the open source radeon drivers.&lt;br /&gt;
You can follow this problem here: http://ati.cchtml.com/show_bug.cgi?id=248&lt;br /&gt;
&lt;br /&gt;
===Error messages in system log===&lt;br /&gt;
&lt;br /&gt;
If you find something like the following in {{path|/var/log/messages}}:&lt;br /&gt;
&lt;br /&gt;
:{{cmdresult|kernel: mtrr: base(0xc0000000) is not aligned on a size(0x7ff0000) boundary}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_addmap] *ERROR* mtrr allocation failed (-22)}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_unlock] *ERROR* Process 5132 using kernel context 0}}&lt;br /&gt;
&lt;br /&gt;
try to execute the following line and reload the fglrx module:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|1=echo &amp;quot;base=0xd0000000 size=0x8000000 type=write-combining&amp;quot; &amp;gt; /proc/mtrr}}&lt;br /&gt;
&lt;br /&gt;
More detailed instructions can be found [http://ubuntuforums.org/showthread.php?t=115104 here].&lt;br /&gt;
&lt;br /&gt;
===Hang when logging out===&lt;br /&gt;
&lt;br /&gt;
A common problem is that when logging out from X, instead of gettign the KDM or GDM prompt, the system hangs.&lt;br /&gt;
&lt;br /&gt;
This is discussed, including workarounds here: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===No power saving when CRT in use===&lt;br /&gt;
&lt;br /&gt;
When both CRT and LCD are in use, power saving cannot be enabled.&lt;br /&gt;
&lt;br /&gt;
This is reported here: http://ati.cchtml.com/show_bug.cgi?id=304&lt;br /&gt;
&lt;br /&gt;
===WineX / Cedega Installs Software But Errors on Loading Games===&lt;br /&gt;
&lt;br /&gt;
Some users may experience problems with certain FIREGL cards (in my case an ibm t43p laptop with a v3200 ati firegl) whereby projects such as cedega and wine refuse to work with 3d graphics, but native binaries (e.g. quake 4) work fine. A possible workaround is to add the following line in the drivers section of your /etc/X11/xorg.conf &lt;br /&gt;
&lt;br /&gt;
 Option &amp;quot;UseFastTLS&amp;quot; &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This option used to be configured with the older ati drivers when you ran &amp;quot;fglrxconfig&amp;quot;. I have not yet found a way to get it to appear with &amp;quot;aticonfig&amp;quot;, hence the manual insertion. This option is good for several linux distros I have tried, fedora core 5, ubuntu dapper and suse 10.1. It does not appear to effect performance on natively run programs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Line Appears Below Mouse Cursor===&lt;br /&gt;
&lt;br /&gt;
Some users have reported seeing a line approximately 1 mouse height below the bottom edge of the cursor, which follows the mouse and appears to change color based on the image below the cursor.  This has been seen to happen using fglrx without the kernel module installed (in 2D mode) and additionally on external displays or multiple X servers.  To work around the problem, try disabling the DGA extension by making the following changes to your XFree86.conf or xorg.conf file.  Replace (or comment-out)&lt;br /&gt;
 Load &amp;quot;extmod&amp;quot;&lt;br /&gt;
with&lt;br /&gt;
 SubSection  &amp;quot;extmod&amp;quot;&lt;br /&gt;
  Option  &amp;quot;omit xfree86-dga&amp;quot;&lt;br /&gt;
 EndSubSection&lt;br /&gt;
&lt;br /&gt;
===Freeze while using OpenGL Apps===&lt;br /&gt;
&lt;br /&gt;
Some OpenGL applications such as screensavers or games (SecondLife) cause freezes.  The cursor still moves, but otherwise the machine is unresponsive.  This is the case with Xorg 7.1 and fglrx 8.29.6 using an x1400 and other cards.  The solution is to add the following options to the video Device section in xorg.conf:&lt;br /&gt;
 Option &amp;quot;Capabilities&amp;quot; &amp;quot;0x00000800&amp;quot;&lt;br /&gt;
 Option &amp;quot;KernelModuleParm&amp;quot; &amp;quot;locked-userpages=0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Patches ==&lt;br /&gt;
The following patches might be needed for certain versions of fglrx. Before you apply any of these, make sure that you really need them, as some distributions include all the necessary patches with the appropriate package (e.g. ati-drivers in gentoo).&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.35.5===&lt;br /&gt;
* [http://whoopie.gmxhome.de/linux/patches/2.6.20/fglrx-8.35.5-for-2.6.20.patch For kernel 2.6.20], part of the Fedora packaging scripts in the ATI installer&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.34.8===&lt;br /&gt;
* [http://whoopie.gmxhome.de/linux/patches/2.6.20/fglrx-8.34.8-for-2.6.20.patch For kernel 2.6.20]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.32.5===&lt;br /&gt;
* [http://whoopie.gmxhome.de/linux/patches/2.6.19/fglrx-8.32.5-for-2.6.19.patch For kernel 2.6.19]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.23.7===&lt;br /&gt;
* For kernel 2.6.16: [http://mirror.espri.arizona.edu/gentoo/rsync/x11-drivers/ati-drivers/files/ati-drivers-8.22.5-intermodule.patch &amp;lt;tt&amp;gt;intermodule&amp;lt;/tt&amp;gt; patch] and [http://mirror.espri.arizona.edu/gentoo/rsync/x11-drivers/ati-drivers/files/ati-drivers-8.23.7-noiommu.patch &amp;lt;tt&amp;gt;noiommu&amp;lt;/tt&amp;gt; patch]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.21.7===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.20.8===&lt;br /&gt;
&lt;br /&gt;
* [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 for kernel 2.6.15]&lt;br /&gt;
or&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx (problem met at least with version 8.18.8)===&lt;br /&gt;
* [http://lkml.org/lkml/2005/9/22/183 for kernel &amp;gt;= 2.6.13 ]  Missing verify_area bug&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.8.25 ===&lt;br /&gt;
* [http://www.rage3d.com/board/showthread.php?t=33798874 for kernels &amp;gt;= 2.6.10]&lt;br /&gt;
* [http://www.gehirn.org.uk/wiki/images/8.8.25-kernel-2.6.11+.patch For kernels &amp;gt;= 2.6.11-rc1]&lt;br /&gt;
&lt;br /&gt;
===Links ===&lt;br /&gt;
* [http://gentoo-wiki.com/HOWTO_ATI_Drivers Gentoo HOWTO ATI]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_X1400&amp;diff=29486</id>
		<title>ATI Mobility Radeon X1400</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=ATI_Mobility_Radeon_X1400&amp;diff=29486"/>
		<updated>2007-04-24T18:29:30Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: removed kernel 2.6.16 issues, added note about vesa-tng&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== ATI Mobility Radeon X1400 ===&lt;br /&gt;
This is an ATI video adapter.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: ATI M54&lt;br /&gt;
* PCI ID: 1002:7145&lt;br /&gt;
* PCI Express x16&lt;br /&gt;
* 128MB GDDR1 video memory&lt;br /&gt;
* Up to 512Mb HyperMemory - ATI's name for their GPUs that utilise shared and dedicated memory.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux X.Org driver ===&lt;br /&gt;
Not Supported&lt;br /&gt;
&lt;br /&gt;
==== ThinkPad LCD ====&lt;br /&gt;
Display on the internal LCD works as long as you set the monitor settings correct.&lt;br /&gt;
&lt;br /&gt;
==== External VGA port ====&lt;br /&gt;
({{Z61m}}): Works, but only if the X-server detects something plugged in here, eg. before X started or after a restart.&lt;br /&gt;
&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
=== Proprietary ATI driver ===&lt;br /&gt;
Proprietary [[fglrx]] driver version 8.24.8 adds support for the x1400 chipset (according to ATI changelog). It works, including dualhead, 3d and video (XV) acceleration, when using the fglrx kernel module. (Without it, you get screen corruption including underlined mouse pointers.)&lt;br /&gt;
&lt;br /&gt;
Sample &amp;quot;Device&amp;quot; section for xorg.conf:&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier  &amp;quot;ATI Graphics Adapter 0&amp;quot;&lt;br /&gt;
        Driver      &amp;quot;fglrx&amp;quot;&lt;br /&gt;
        Option      &amp;quot;ForceMonitors&amp;quot; &amp;quot;lvds,crt1&amp;quot;&lt;br /&gt;
        Option      &amp;quot;Centermode&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
        Option      &amp;quot;VideoOverlay&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
        Option      &amp;quot;OpenGLOverlay&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
        Option      &amp;quot;OverlayOnCRTC2&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
        Option      &amp;quot;PseudoColorVisuals&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
        Option      &amp;quot;HSync2&amp;quot; &amp;quot;31-64&amp;quot;&lt;br /&gt;
        Option      &amp;quot;VRefresh2&amp;quot; &amp;quot;56-75&amp;quot;&lt;br /&gt;
        Option      &amp;quot;UseFastTLS&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
        Option      &amp;quot;Mode2&amp;quot; &amp;quot;1280x1024,1024x768,800x600,640x480&amp;quot;&lt;br /&gt;
        BusID       &amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
XVideo support using the VideoOverlay option may not work with recent drivers. With version 8.29.6 of the fglrx driver, you can instead use&lt;br /&gt;
&lt;br /&gt;
        Option          &amp;quot;TexturedVideo&amp;quot; &amp;quot;on&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Use the '''xvinfo''' utility to verify if XVideo support is available.&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel Framebuffer driver ===&lt;br /&gt;
Works with the VESA driver at 1280x1024 (you have to append {{bootparm|vga|794}} to the kernel boot parameters). Does not work wirh vesa-tng at more than 1024x768 :(&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{T60}}&lt;br /&gt;
* {{Z61m}}&lt;br /&gt;
* {{R60}} - Lenovo R60 contains X1400 chipset&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Fglrx&amp;diff=29388</id>
		<title>Fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Fglrx&amp;diff=29388"/>
		<updated>2007-04-18T21:36:14Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: /* Status */ 8.36.5&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; |&lt;br /&gt;
== ATI fglrx driver ==&lt;br /&gt;
This is a proprietary Linux binary-only driver for ATI graphic chips with support for 3D acceleration.&lt;br /&gt;
&lt;br /&gt;
Also see [[R300|opensource driver]] with 3D support&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Availability / Project Homepage==&lt;br /&gt;
Home page: http://ati.amd.com/support/drivers/linux/linux-radeon.html&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
The ATI drivers have explicit permission for repackaging and redistribution of the Linux drivers.  Many distributions are supported within the installer, and many more repackaged by external developers.  Please visit the  [http://wiki.cchtml.com/index.php/Category:Distributions Distribution Page at the Unofficial ATI driver Wiki]&lt;br /&gt;
&lt;br /&gt;
*{{Debian}} packages: http://www.stanchina.net/~flavio/debian-official/fglrx-driver.html&lt;br /&gt;
** These packages have been added to Debian unstable as &amp;lt;tt&amp;gt;fglrx-driver&amp;lt;/tt&amp;gt;, so you can now apt-get them and use module-assistant to install.&lt;br /&gt;
** If you are on stable sarge with backport's kernel 2.6.15, download ATI's installer, let it build Debian packages and proceed as usual. There's a [http://jroller.com/page/erAck?entry=lot_day_6_2_fglrx detailed description] available.&lt;br /&gt;
*{{SUSE}} packages: http://www.suse.de/~sndirsch/ati-installer-HOWTO.html&lt;br /&gt;
*{{Gentoo}} {{cmdroot|emerge ati-drivers}}&lt;br /&gt;
*{{Fedora}} 4 packages: http://rpm.livna.org&lt;br /&gt;
** For stock Fedora kernels: {{cmdroot|yum install kernel-module-fglrx-$(uname -r) ati-fglrx }}&lt;br /&gt;
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]&lt;br /&gt;
*{{Fedora}} 5 packages: http://rpm.livna.org&lt;br /&gt;
** For stock Fedora kernels: {{cmdroot|yum install xorg-x11-drv-fglrx}}&lt;br /&gt;
** For custom-compiled kernels: see [[How to build custom packages for fglrx]]&lt;br /&gt;
*{{Arch Linux}}&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx}} (kernel module for 2.6.15-ARCH)&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx-archck}} (kernel module for 2.6.15-archck)&lt;br /&gt;
:{{cmdroot|pacman -S ati-fglrx-utils}} (xorg7 stuff and tools)&lt;br /&gt;
*{{Ubuntu}}&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Dapper_Installation_Guide Dapper Drake Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Breezy_Installation_Guide Breezy Badger Howto]&lt;br /&gt;
**[http://wiki.cchtml.com/index.php/Ubuntu_Edgy_Installation_Guide Edgy Eft Howto]&lt;br /&gt;
&lt;br /&gt;
== Building for Xorg 7.0==&lt;br /&gt;
To compile fglrx versions &amp;lt;= 8.24.8 for Xorg 7.0.0, fake Xorg 6.9.0 by &lt;br /&gt;
:{{cmdroot|1=export X_VERSION=x690; sh ati-driver-installer-8.24.8-x86.run}}&lt;br /&gt;
Next, move the various resulting libraries and modules from /usr/X11R6 to /usr/lib/xorg&lt;br /&gt;
&lt;br /&gt;
In {{path|/usr/src/ATI}} additional sources are installed for fireglcontrol and fgl_glxgears&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Current version: 8.36.5 (18th April 2007).&lt;br /&gt;
Major changes:&lt;br /&gt;
* 8.36.5: Kernel 2.6.20 support, CCC Beta 0.9 with localization&lt;br /&gt;
* 8.35.5: Beta AMD Catalyst Control Center, X-Server termination from console does not result in a blank screen. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.35.5|fglrx patches section]]).&lt;br /&gt;
* 8.34.8: Radeon Xpress 1250 support, X-Video on x86_64 fix, hibernation mode fix. Kernel 2.6.20 requires some patching (see [[Problems_with_fglrx#fglrx_8.34.8|fglrx patches section]]).&lt;br /&gt;
* 8.33.6: X.Org 7.2 support, kernel 2.6.19 support, some fixes in the installer, 2 more bugfixes. Resume from suspend works if you make sure you have set &amp;quot;VbetoolPost no&amp;quot; and &amp;quot;EnableVbetool no&amp;quot; in your suspend to ram hibernate conf (/etc/hibernate/ram.conf on ubuntu/debian).&lt;br /&gt;
* 8.32.5: support for X1650, X.Org 7.2 RC2 support, bugfixes. Suspend-to-ram is broken with specific cards, *no* 2.6.19 support (see [[Problems_with_fglrx#fglrx_8.32.5|fglrx patches section]]).&lt;br /&gt;
* 8.31.5: no new features, only bugfixes.  Of note, for some users, this version breaks suspend-to-ram and suspend-to-disk.&lt;br /&gt;
* 8.30.3: no new features, only bugfixes&lt;br /&gt;
* 8.29.6: Linux 2.6.18 support, dropped support for Radeon 8500/9000/9100/9200/9250 (both, mobile and normal versions)&lt;br /&gt;
* 8.28.8: Display Switching Support for ThinkPads, ATI Pairmode support, Retaining display device state between restarts, Support for Radeon Xpress 1200, 1250, and 1300&lt;br /&gt;
* 8.27.10: X.org 7.1 support, Fedora Core package support&lt;br /&gt;
* 8.26.18: support for dynamically attached DFPs and Thermal Event Power Management (both via daemon), minor bug fixes&lt;br /&gt;
* 8.25.18: Xorg 7.0 support, FireGLâ„¢V5xxx/V7xxx support, Dynamic Display Management, fixed a lot of critical bugs.&lt;br /&gt;
* 8.24.8: support for X1300, X1400, X1600, X1800 (generic and mobility) and 3D accelerated video playback on Avivo&lt;br /&gt;
* 8.23.7: support for X850 and X800, OpenGL 2.0 Enhancement, FSAA for some chips&lt;br /&gt;
* 8.22.5: added kernel 2.6.15 support -- patch no longer required&lt;br /&gt;
* 8.21.7: initial OpenGL 2.0 support&lt;br /&gt;
* 8.20.8: fixed resume issues, fixed compile problems with kernels 2.6.13 and 2.6.14&lt;br /&gt;
* 8.19.10: has added suspend / resume and dynamic GPU power management support.  Using vbetool no longer required.&lt;br /&gt;
&lt;br /&gt;
== Known problems and solutions ==&lt;br /&gt;
See [[Problems with fglrx]].&lt;br /&gt;
== User experience ==&lt;br /&gt;
=== Speed ===&lt;br /&gt;
How much is the speed gain versus the opensource drivers?&lt;br /&gt;
&lt;br /&gt;
Compared to the old drivers, approximately 40% speed gain have been noticed with fglrx. However, there are issues with freezing/garbage after suspend, garbage when resizing desktop (via {{key|ctrl}}{{key|alt}}{{key|plus}}, {{key|ctrl}}{{key|alt}}{{key|minus}}), and garbage while using VMware. The current 8.14.13 has shown 400% improvement over using the open source radeon driver: 1200 FPS for glxgears{{footnote|1}}!&lt;br /&gt;
However the situation seems to be changing today. With recent x11-drm-20060608 driver (gentoo) and thinkpad t42 (ati 9600) the speed is confirmed as 1900fps without any single crash so far.&lt;br /&gt;
&lt;br /&gt;
=== 3D acceleration ===&lt;br /&gt;
&lt;br /&gt;
According to [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] you need these options:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Module&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
    Load &amp;quot;GLcore&amp;quot;&lt;br /&gt;
    Load &amp;quot;glx&amp;quot;&lt;br /&gt;
    Load &amp;quot;dri&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
  # Of course you need to activate the driver&lt;br /&gt;
  Section &amp;quot;Device&amp;quot;&lt;br /&gt;
    ...&lt;br /&gt;
    Driver     &amp;quot;fglrx&amp;quot;&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
Don't forget to load the module &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; (&amp;lt;tt&amp;gt;modprobe fglrx&amp;lt;/tt&amp;gt;).  Under Debian the module can be placed in &amp;lt;tt&amp;gt;/etc/modules&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
With current fglrx drivers (as of 8.29.6) you must disable composite to get 3D DRI acceleration. To do this, add an extra Extensions section (if necessary) containing:&lt;br /&gt;
&lt;br /&gt;
  Section &amp;quot;Extensions&amp;quot;&lt;br /&gt;
     Option  &amp;quot;Composite&amp;quot; &amp;quot;Disable&amp;quot;  #make DRI work with fglrx.&lt;br /&gt;
  EndSection&lt;br /&gt;
&lt;br /&gt;
If you are unsure whether you have DRI running, issue &amp;lt;tt&amp;gt;glxinfo | grep -i direct&amp;lt;/tt&amp;gt; after disabling composite.  Note, this &lt;br /&gt;
&lt;br /&gt;
{{NOTE|1=Video overlay acceleration may be disabled when 3D acceleration is enabled. The following comment from the xorg.conf file bundled with the fglrx driver indicates that:&lt;br /&gt;
   # === OpenGL Overlay ===&lt;br /&gt;
   # Note: When OpenGL Overlay is enabled, Video Overlay&lt;br /&gt;
   #       will be disabled automatically&lt;br /&gt;
       Option &amp;quot;OpenGLOverlay&amp;quot;              &amp;quot;1&amp;quot;&lt;br /&gt;
However, you can use either regular Xv video overlay or make the video an opengl texture and let the OpenGL engine scale your video.  This has nothing to do with the acceleration of 2D drawing primitives.  Further, your mileage on performance may vary depending on what card you have.  The open source drivers don't support newer cards, while the ATI drivers don't support older cards.&lt;br /&gt;
&lt;br /&gt;
You may be able to preserve VideoOverlay acceleration if you explicitly remove the OpenGLOverlay using:&lt;br /&gt;
&lt;br /&gt;
Option &amp;quot;VideoOverlay&amp;quot;  &amp;quot;True&amp;quot; and Option &amp;quot;OpenGLOverlay&amp;quot; &amp;quot;False&amp;quot;.  See [http://xoomer.alice.it/flavio.stanchina/debian/fglrx-installer.html#configure Flavio's page] for detail.}}&lt;br /&gt;
&lt;br /&gt;
=== Power saving ===&lt;br /&gt;
Power saving is much better than with the &amp;lt;tt&amp;gt;radeon&amp;lt;/tt&amp;gt; driver, but doesn't work in dual-screen configuration (see [[How to make use of Graphics Chips Power Management features]]).&lt;br /&gt;
&lt;br /&gt;
=== Suspending with fglrx ===&lt;br /&gt;
&lt;br /&gt;
On a ThinkPad T42 with Kernel 2.6.19 with Software Suspend 2 and R60 with Kernel 2.6.18-suspend2-r1 (Gentoo) , the following addition to &amp;lt;tt&amp;gt;/etc/hibernate/suspend2.conf&amp;lt;/tt&amp;gt; is required:&lt;br /&gt;
&lt;br /&gt;
  # For fglrx&lt;br /&gt;
  ProcSetting extra_pages_allowance 20000&lt;br /&gt;
&lt;br /&gt;
=== Display Switching (Dynamic Display Management) ===&lt;br /&gt;
&lt;br /&gt;
Version 8.25.18 introduces a new feature: Dynamic Display Management. It allows display switching on-the-fly.&lt;br /&gt;
&lt;br /&gt;
To list all connected and enabled monitors:&lt;br /&gt;
:{{cmdroot|1=aticonfig --query-monitor}}&lt;br /&gt;
&lt;br /&gt;
To switch displays:&lt;br /&gt;
:{{cmdroot|1=aticonfig --enable-monitor=STRING,STRING}}, where STRING can be: none, lvds, crt1, crt2, tv, tdms1, tdms2&lt;br /&gt;
&lt;br /&gt;
Only 2 displays can be enabled at the same time. Any displays that are not on the list will be disabled.&lt;br /&gt;
&lt;br /&gt;
== Useful links == &lt;br /&gt;
* [http://www.ati.com/products/catalyst/linux.html ATI Linux Driver FAQ]&lt;br /&gt;
* [http://www.rage3d.com/content/articles/atilinuxhowto/ ATI Radeon Linux How-To]&lt;br /&gt;
* [http://www.rage3d.com/board/forumdisplay.php?f=61&amp;amp;daysprune=30&amp;amp;order=asc&amp;amp;sort=title Rage3D Linux Discussion Forum]&lt;br /&gt;
* [http://www.driverheaven.net/forumdisplay.php?f=103 Radeon Driver Forum at Driverheaven]&lt;br /&gt;
* [http://odin.prohosting.com/wedge01/gentoo-radeon-faq.html Gentoo ATI Radeon FAQ]&lt;br /&gt;
* [http://forums.gentoo.org/viewtopic-t-374745-highlight-t42+ati+dri.html Gentoo T42 ATI. DRI + xorg driver]&lt;br /&gt;
* [http://ati.cchtml.com/ Unofficial community ATI bugzilla] - tracks bugs in the driver. Might be monitored by ATI ([http://www.rage3d.com/board/showpost.php?p=1333438751&amp;amp;postcount=386], [http://www.rage3d.com/board/showpost.php?p=1333439009&amp;amp;postcount=390]).&lt;br /&gt;
&lt;br /&gt;
== ThinkPads that may be supported ==&lt;br /&gt;
Supported chips, as found in select IBM ThinkPads:&lt;br /&gt;
{{NOTE|fglrx version 8.29.6 discontinued support for Radeon 9200 and earlier.}}&lt;br /&gt;
* [[ATI Mobility FireGL 9000]]&lt;br /&gt;
** {{T40p}}&lt;br /&gt;
* [[ATI Mobility FireGL T2]]&lt;br /&gt;
** {{R50p}}&lt;br /&gt;
** {{T41p}}, {{T42p}}&lt;br /&gt;
* [[ATI Mobility FireGL V3200]]&lt;br /&gt;
** {{T43p}}&lt;br /&gt;
* [[ATI Mobility Radeon 9000]]&lt;br /&gt;
** {{R50}}, {{R51}}&lt;br /&gt;
** {{T40}}, {{T41}}, {{T42}}&lt;br /&gt;
* [[ATI Mobility Radeon 9600]]&lt;br /&gt;
** {{T42}}&lt;br /&gt;
* [[ATI Mobility Radeon X300]]&lt;br /&gt;
** {{R52}}&lt;br /&gt;
** {{T43}}&lt;br /&gt;
** {{Z60m}}&lt;br /&gt;
* [[ATI Mobility Radeon Xpress 200M]]&lt;br /&gt;
** {{R51e}}&lt;br /&gt;
* [[ATI Mobility Radeon X600]]&lt;br /&gt;
** {{Z60m}}&lt;br /&gt;
* [[ATI Mobility Radeon X1400]]&lt;br /&gt;
** {{T60}}, {{R60}}, {{Z61m}}&lt;br /&gt;
* [[ATI Mobility FireGL V5200]]&lt;br /&gt;
** {{T60p}}, {{Z61p}}&lt;br /&gt;
&lt;br /&gt;
== ThinkPads that are NOT supported by fglrx==&lt;br /&gt;
Unsupported chips, as found in select IBM ThinkPads:&lt;br /&gt;
* [[ATI Mobility Radeon 7500]]&lt;br /&gt;
** {{R40}}&lt;br /&gt;
** {{T30}}&lt;br /&gt;
** {{T42}}&lt;br /&gt;
&lt;br /&gt;
{{footnotes|&lt;br /&gt;
#Note that glxgears isn't a benchmark tool, it's so simple that its FPS values is without any meaning... you can only compare glxgears using the same drivers/machine, if you change any of then you can have higher/lower values and in real life programs/games happen to have the opposite effects. Think in terms of a car engines rpms: higher rpms in the same car usually means a faster car, change anything and it's meaningless, ie: gears, truck, wheel size, etc. make it useless.&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Drivers]]&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Automatically_reduce_brightness&amp;diff=29348</id>
		<title>Automatically reduce brightness</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Automatically_reduce_brightness&amp;diff=29348"/>
		<updated>2007-04-16T10:55:53Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The idea ==&lt;br /&gt;
When watching someone working with an iBook I noticed that the brightness automatically faded to the lowest level after a few seconds of inactivity. I think that this is a simple way to save power. I wrote a c-daemon which uses the XScreenSaver extension to check whether the user is active. If he is not, it lowers the brightness to a specific level. When he is active again, the brightness is reset to the previous level.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
A recent kernel with the [[ibm-acpi]] driver (You should have a directory called {{path|/sys/class/backlight/ibm/}}).&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
# Download the [http://pberndt.com/Programme/Linux/brightd/_download/brightd.tar.bz2 brightness control daemon]&lt;br /&gt;
# Unpack it and chdir into the {{path|brightd}} directory&lt;br /&gt;
# Call {{cmduser|make}}&lt;br /&gt;
# Move the {{path|brightd}} executable into a directory like {{path|/usr/local/bin}}&lt;br /&gt;
# Put {{cmduser|brightd -d}} into your {{path|~/.Xsession}} (or another distro-specific startup script)&lt;br /&gt;
# Change the permissions of {{path|/sys/class/backlight/ibm/brightness}} so that your user can write to that file&lt;br /&gt;
&lt;br /&gt;
See the README for more detailled instructions and command line parameters.&lt;br /&gt;
&lt;br /&gt;
== Example installation for Gentoo linux and XFCE4 ==&lt;br /&gt;
 $ wget -o /dev/null -O brightd-0.1.tar.bz2 &amp;quot;http://www.pberndt.com/Programme/Linux/brightd/_download/brightd-0.1.tar.bz2?ct=raw&amp;amp;sub=att&amp;quot;&lt;br /&gt;
 $ tar xjf brightd-0.1.tar.bz2&lt;br /&gt;
 $ cd brightd-0.1/&lt;br /&gt;
 $ make&lt;br /&gt;
 gcc -lX11 -lXss -o brightd brightd.c&lt;br /&gt;
 $ cp brightd /usr/local/bin/&lt;br /&gt;
 $ cd /etc/xdg/xfce4&lt;br /&gt;
 $ vi xinitrc&lt;br /&gt;
 73Gi&lt;br /&gt;
 /usr/local/bin/brightd -s 5 -w 2 -d&lt;br /&gt;
 &amp;lt;escape&amp;gt;:x &lt;br /&gt;
 $ cd /etc/init.d/&lt;br /&gt;
 $ cat &amp;gt; permissions&lt;br /&gt;
 start() {&lt;br /&gt;
         ebegin &amp;quot;Setting permissions on /sys&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         chmod g+w /sys/class/backlight/ibm/brightness&lt;br /&gt;
         chgrp wheel /sys/class/backlight/ibm/brightness&lt;br /&gt;
 &lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
 $ chmod a+x permissions&lt;br /&gt;
 $ rc-update add permissions boot&lt;br /&gt;
 $ ./permissions start&lt;br /&gt;
&lt;br /&gt;
Done. Restart X to see it working.&lt;br /&gt;
&lt;br /&gt;
== Example installation for Debian Sid ==&lt;br /&gt;
brightd isn't yet in the official Debian archives ([http://bugs.debian.org/419329 an ITP was filled]), but you can get precompiled binaries for unstable from [[User:Zhenech|Zhenech]]'s page.&lt;br /&gt;
&lt;br /&gt;
{{cmduser|wget http://debian.die-welt.net/pool/main/brightd/brightd_0.1-1_i386.deb}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i brightd_0.1-1_i386.deb}}&lt;br /&gt;
&lt;br /&gt;
Done. Relogin into your X session and brightd will be started. You can change this and other settings by editing {{path|/etc/default/brightd}}.&lt;br /&gt;
{{NOTE|Changing permissions is not needed, because the binary is installed suid-root.}}&lt;br /&gt;
&lt;br /&gt;
== Possible problems ==&lt;br /&gt;
=== brightd does not fade, screensaver deactivated ===&lt;br /&gt;
On my Debian Sid box, brightd can run for hours and just do nothing. This happens because it thinks the screensaver is deactivated and screen shouldn't be faded (useful while watching videos).&lt;br /&gt;
But in fact the screensaver isn't deactivated. To solve this problem, just execute the following command before starting bright:&lt;br /&gt;
&lt;br /&gt;
{{cmduser|xset s default}}&lt;br /&gt;
&lt;br /&gt;
=== brightd says it is fading, but does not ===&lt;br /&gt;
On my Z61m {{path|/sys/class/backlight/ibm/brightness}} is 0 after the laptop boots up. As long it is 0, brightd does nothing, because it thinks, brightness is already as low as possible, so I need to initialize the brightness-level before using brightd:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 7&amp;gt;/sys/class/backlight/ibm/brightness}}&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Automatically_reduce_brightness&amp;diff=29335</id>
		<title>Automatically reduce brightness</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Automatically_reduce_brightness&amp;diff=29335"/>
		<updated>2007-04-15T20:20:02Z</updated>

		<summary type="html">&lt;p&gt;Zhenech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The idea ==&lt;br /&gt;
When watching someone working with an iBook I noticed that the brightness automatically faded to the lowest level after a few seconds of inactivity. I think that this is a simple way to save power. I wrote a c-daemon which uses the XScreenSaver extension to check whether the user is active. If he is not, it lowers the brightness to a specific level. When he is active again, the brightness is reset to the previous level.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
A recent kernel with IBM ACPI extensions. (You should have a directory called {{path|/sys/class/backlight/ibm/}})&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
# Download the [http://pberndt.com/Programme/Linux/brightd/_download/brightd.tar.bz2 brightness control daemon]&lt;br /&gt;
# Unpack it and chdir into the {{path|brightd}} directory&lt;br /&gt;
# Call {{cmduser|make}}&lt;br /&gt;
# Move the {{path|brightd}} executable into a directory like {{path|/usr/local/bin}}&lt;br /&gt;
# Put {{cmduser|brightd -d}} into your {{path|~/.Xsession}} (or another distro-specific startup script)&lt;br /&gt;
# Change the permissions of {{path|/sys/class/backlight/ibm/brightness}} so that your user can write to that file&lt;br /&gt;
&lt;br /&gt;
See the README for more detailled instructions and command line parameters.&lt;br /&gt;
&lt;br /&gt;
== Example installation for Gentoo linux and XFCE4 ==&lt;br /&gt;
 $ wget -o /dev/null -O brightd-0.1.tar.bz2 &amp;quot;http://www.pberndt.com/Programme/Linux/brightd/_download/brightd-0.1.tar.bz2?ct=raw&amp;amp;sub=att&amp;quot;&lt;br /&gt;
 $ tar xjf brightd-0.1.tar.bz2&lt;br /&gt;
 $ cd brightd-0.1/&lt;br /&gt;
 $ make&lt;br /&gt;
 gcc -lX11 -lXss -o brightd brightd.c&lt;br /&gt;
 $ cp brightd /usr/local/bin/&lt;br /&gt;
 $ cd /etc/xdg/xfce4&lt;br /&gt;
 $ vi xinitrc&lt;br /&gt;
 73Gi&lt;br /&gt;
 /usr/local/bin/brightd -s 5 -w 2 -d&lt;br /&gt;
 &amp;lt;escape&amp;gt;:x &lt;br /&gt;
 $ cd /etc/init.d/&lt;br /&gt;
 $ cat &amp;gt; permissions&lt;br /&gt;
 start() {&lt;br /&gt;
         ebegin &amp;quot;Setting permissions on /sys&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         chmod g+w /sys/class/backlight/ibm/brightness&lt;br /&gt;
         chgrp wheel /sys/class/backlight/ibm/brightness&lt;br /&gt;
 &lt;br /&gt;
         eend $?&lt;br /&gt;
 }&lt;br /&gt;
 $ chmod a+x permissions&lt;br /&gt;
 $ rc-update add permissions boot&lt;br /&gt;
 $ ./permissions start&lt;br /&gt;
&lt;br /&gt;
Done. Restart X to see it working.&lt;br /&gt;
&lt;br /&gt;
== Example installation for Debian Sid ==&lt;br /&gt;
brightd isn't yet in the official Debian archives ([http://bugs.debian.org/419329 an ITP was filled]), but you can get precompiled binaries for unstable from [[User:Zhenech|Zhenech]]'s page.&lt;br /&gt;
&lt;br /&gt;
{{cmduser|wget http://debian.die-welt.net/pool/main/brightd/brightd_0.1-1_i386.deb}}&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|dpkg -i brightd_0.1-1_i386.deb}}&lt;br /&gt;
&lt;br /&gt;
Done. Relogin into your X session and brightd will be started. You can change this and other settings by editing {{path|/etc/default/brightd}}.&lt;br /&gt;
{{NOTE|Changing permissions is not needed, because the binary is installed suid-root.}}&lt;/div&gt;</summary>
		<author><name>Zhenech</name></author>
		
	</entry>
</feed>