<?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=Papertiger</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=Papertiger"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Papertiger"/>
	<updated>2026-05-01T13:13:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Thermal_Sensors&amp;diff=53732</id>
		<title>Thermal Sensors</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Thermal_Sensors&amp;diff=53732"/>
		<updated>2012-08-20T23:19:18Z</updated>

		<summary type="html">&lt;p&gt;Papertiger: &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 summarizes known information about the locations and properties of thermal sensors on ThinkPad laptops. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accessing the sensors==&lt;br /&gt;
&lt;br /&gt;
===Basic ACPI system temperature sensors===&lt;br /&gt;
The primary means of accessing the thermal sensors is through the [[thinkpad-acpi]] module, up to 16 sensors are supported.  When the module is loaded, the sensors (some of which may be inactive) are shown through the standard sysfs hwmon interface used by the lm-sensors utilities, and also in {{path|/proc/acpi/ibm/thermal}} (which is deprecated and has been removed from the latest versions of the module).&lt;br /&gt;
&lt;br /&gt;
lm-sensors/libsensors uses the hwmon interface exposed through {{path|/sys/bus/platform/devices/thinkpad_hwmon/}} to read the temperatures, note that the sysfs interface returns normal open errors instead of weird values for sensors that are not active (which the simplistic '''sensors''' command ignore). lm-sensors/libsensors can be configured to give proper names to each sensor, which will be used by any properly written sensor applet.&lt;br /&gt;
&lt;br /&gt;
 {{cmdroot|sensors}}&lt;br /&gt;
 {{cmdresult|thinkpad-isa-0000&lt;br /&gt;
 Adapter: ISA adapter&lt;br /&gt;
 fan1:                3914 RPM&lt;br /&gt;
 CPU:                  +45.0°C&lt;br /&gt;
 LAN/Heatsink/HDAPS:   +44.0°C&lt;br /&gt;
 PC-CARD slot:         +35.0°C&lt;br /&gt;
 GPU:                  +48.0°C&lt;br /&gt;
 Main battery charger: +35.0°C&lt;br /&gt;
 ERROR: Can't get value of subfeature temp6_input: Can't read&lt;br /&gt;
 Bay battery charger:   +0.0°C&lt;br /&gt;
 Main battery cells:   +30.0°C&lt;br /&gt;
 ERROR: Can't get value of subfeature temp8_input: Can't read&lt;br /&gt;
 Bay battery cells:     +0.0°C&lt;br /&gt;
 MCH:                  +42.0°C&lt;br /&gt;
 PLL clock/ICH/WLAN:   +50.0°C&lt;br /&gt;
 Voltage regulator:    +43.0°C}}&lt;br /&gt;
&lt;br /&gt;
To have 'sensors' use describing labels like above, you can add the following section to /etc/sensors3.conf, if not already there. This is an example for the T43. Similar technique apply for the other models. Use the sensor location findings below.&lt;br /&gt;
&lt;br /&gt;
 chip &amp;quot;thinkpad-isa-0000&amp;quot;&lt;br /&gt;
   label fan1   &amp;quot;Fan&amp;quot;&lt;br /&gt;
   label temp1  &amp;quot;CPU&amp;quot;&lt;br /&gt;
   label temp2  &amp;quot;HDAPS&amp;quot;&lt;br /&gt;
   label temp3  &amp;quot;PCMCIA&amp;quot;&lt;br /&gt;
   label temp4  &amp;quot;GPU&amp;quot;&lt;br /&gt;
   label temp5  &amp;quot;System battery (front left, charging circuit)&amp;quot;&lt;br /&gt;
   label temp7  &amp;quot;System battery (rear right)&amp;quot;&lt;br /&gt;
   label temp9  &amp;quot;Bus between Northbridge and DRAM; Ethernet chip&amp;quot;&lt;br /&gt;
   label temp10 &amp;quot;Southbridge, WLAN and clock generator&amp;quot;&lt;br /&gt;
   label temp11 &amp;quot;Power circuitry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The old method to access the thermal readings is through the {{path|/proc}} interface:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cat /proc/acpi/ibm/thermal}}&lt;br /&gt;
:{{cmdresult|temperatures:   44 41 33 42 33 -128 30 -128}}&lt;br /&gt;
&lt;br /&gt;
A value of -128 (i.e., 0x80 hex) means the sensor is not connected. For example, above the two -128 values belong to the UltraBay battery, which is not plugged in.&lt;br /&gt;
&lt;br /&gt;
If the ThinkPad supports the extended sensor set, eight more values will be displayed:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cat /proc/acpi/ibm/thermal}}&lt;br /&gt;
:{{cmdresult|temperatures:   44 41 33 42 33 -128 30 -128 48 50 49 -128 -128 -128 -128 -128}}&lt;br /&gt;
&lt;br /&gt;
===HDAPS temperature sensor===&lt;br /&gt;
The [[Active Protection System]] firmware also reports a temperature, which is identical to one of the ACPI sensors. The corresponding sensor is actually not inside the HDAPS chip, and sometimes not even close to it.&lt;br /&gt;
:{{cmdroot|cat /sys/bus/platform/drivers/hdaps/hdaps/temp1}}&lt;br /&gt;
:{{cmdresult|41}}&lt;br /&gt;
&lt;br /&gt;
===Harddisks SMART temperature sensor===&lt;br /&gt;
The system hard disk temperature can be read through the disk's SMART interface:&lt;br /&gt;
:{{cmdroot|&amp;lt;nowiki&amp;gt;smartctl -A /dev/hda | grep Temperature&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:{{cmdresult|194 Temperature_Celsius     0x0022   145   097   000    Old_age   Always       -       31}}&lt;br /&gt;
&lt;br /&gt;
Or, for SATA-equipped models running a recent Linux kernel (see [[Problems with SATA and Linux]]):&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|&amp;lt;nowiki&amp;gt;smartctl -A -d ata /dev/sda | grep Temperature&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:{{cmdresult|194 Temperature_Celsius     0x0022   145   097   000    Old_age   Always       -       31}}&lt;br /&gt;
&lt;br /&gt;
When the [[UltraBay Slim HDD Adapter]] or [[UltraBay Slim SATA HDD Adapter]] are used, the second hard disk will typically provide another temperature readout via its SMART interface, analogously to the above.&lt;br /&gt;
&lt;br /&gt;
Reading this sensor will typically cause a drive spin-up and head unload.&lt;br /&gt;
&lt;br /&gt;
===Hitachi harddisks &amp;lt;tt&amp;gt;SENSE CONDITION&amp;lt;/tt&amp;gt; temperature sensor===&lt;br /&gt;
&lt;br /&gt;
Recent Hitachi disks provide a non-standard &amp;lt;tt&amp;gt;SENSE CONDITION&amp;lt;/tt&amp;gt; command which reads the disk temperature without causing a spin-up or head load. The reported value is the same as when using SMART. This can be invoked, e.g., using {{cmdroot|hdparm -H}}, or the relevant code in {{CodeRef|tp-fancontrol}}. When using the  &amp;lt;tt&amp;gt;libata&amp;lt;/tt&amp;gt; driver, this requires kernel &amp;gt;= 2.6.19-rc1.&lt;br /&gt;
&lt;br /&gt;
==Utilities for viewing temperatures==&lt;br /&gt;
&lt;br /&gt;
The following utilities display the ThinkPad-specific thermal sensor readouts:&lt;br /&gt;
* The above shell commands.&lt;br /&gt;
* The &amp;quot;Sensors&amp;quot; builtin of [[GKrellM]] can show 6 specific ACPI sensors (out of up to 11).&lt;br /&gt;
* [http://kima.sourceforge.net/ Kima] is a KDE applet that can display the 8 first ACPI sensors as well as the HDAPS sensor.&lt;br /&gt;
* [http://www.kraus.tk/projects/IBMDoK/ IBMDoK], another KDE applet. Shows 4 specific sensors (out of up to 11). So far only tested at the {{T60}}.&lt;br /&gt;
* There is an [http://munin.projects.linpro.no/wiki/plugin-ibm_acpi ibm_acpi plugin] for [http://munin.projects.linpro.no/ Munin].&lt;br /&gt;
* [http://sensors-applet.sourceforge.net/ GNOME Sensors Applet] supports ibm_acpi.&lt;br /&gt;
&lt;br /&gt;
==Sensor locations==&lt;br /&gt;
This information is model specific.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{A31}}===&lt;br /&gt;
Found by Milos Popovic using cooling spray to cool down components on a completely removed, running motherboard, to locate the sensors.  Also reported [http://forum.thinkpads.com/viewtopic.php?t=31837 here].&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    Battery        (this one heats up when on battery power)&lt;br /&gt;
 0x7A        3                    Power          (sensor near power diodes and CPU; heats up when high power consumption, has crosstalk from CPU)&lt;br /&gt;
 0x7B        4                    Ultrabay 2000 battery?&lt;br /&gt;
 0x7C        5                    Northbridge    (sensor next to Northbridge, also somewhat near GPU)&lt;br /&gt;
 0x7D        6                    PCMCIA/ambient (sensor is a National Semiconductor LM75 Digital Temperature Sensor/Thermal Watchdog chip&lt;br /&gt;
                                                  next to the 9-pin VGA connector; sits right under PCMCIA slots but doesn't touch)&lt;br /&gt;
 0x7E        7                    Battery        (this one stays near ambient temperature, even when on battery power)&lt;br /&gt;
 0x7F        8                    Ultrabay 2000 battery?&lt;br /&gt;
 0xC0        none                 zero&lt;br /&gt;
 0xC1        none                 zero&lt;br /&gt;
 0xC2        none                 zero&lt;br /&gt;
The following photos (resolution reduced for server space) show the locations found for the listed temperature sensors.&lt;br /&gt;
{{gallery_start}}&lt;br /&gt;
{{thumb|A31_2652M3U_systemboardtop_DSCN6105_tempsensors_lores.jpg|ThinkPad A31 sensor locations on top of motherboard.}}&lt;br /&gt;
{{thumb|A31_2652M3U_systemboardbottom_DSCN6105_tempsensors_lores.jpg|ThinkPad A31 sensor locations on bottom of motherboard.}}&lt;br /&gt;
{{gallery_end}}&lt;br /&gt;
On this A31 systemboard (FRU 26P8398), there is a [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2313 Maxim MAX1668] 5-channel remote/local temperature sensor (4 remote + 1 self temperature) on top of the systemboard, and a [http://www.national.com/pf/LM/LM75.html National Semiconductor LM75] single-channel &amp;quot;digital temperature sensor and thermal watchdog&amp;quot; chip.  It would appear that the LM75 has the ability to hard shutdown the processor (without software intervention) if its temperature exceeds a given threshold.  I'm not sure if it is wired for this, nor whether the Thinkpad changes the threshold temperature from the chip's power-up default of 80Â°C.  A software application with drivers on the LM75 webpage is available that claims to allow direct access to the thermal sensor chip (this hasn't been tried, but could be useful in other models to determine if this sensor is somewhere on the MB, and which register it corresponds to).  The MAX1668's self-temperature reading does not appear anywhere in the above temperature registers; it's not clear whether it is read at all, and whether it is to be found elsewhere in the EC memory.  These two chips (LM75 and MAX1668) account for some of the sensors.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{R51}}===&lt;br /&gt;
The [[thinkpad-acpi]] documentation includes the report by Thomas Gruber:&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    Mini-PCI&lt;br /&gt;
 0x7A        3                    HDD&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    System battery&lt;br /&gt;
 0x7D        6                    UltraBay battery&lt;br /&gt;
 0x7E        7                    System battery&lt;br /&gt;
 0x7F        8                    UltraBay battery&lt;br /&gt;
 0xC0        none                 ?&lt;br /&gt;
 0xC1        none                 ?&lt;br /&gt;
 0xC2        none                 ?&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T40}}===&lt;br /&gt;
The location of one of the sensors is identified [http://forum.thinkpads.com/viewtopic.php?t=11574 here].&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    System board under rear left corner of Mini-PCI module&lt;br /&gt;
 0x7A        3                    ?&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    Battery&lt;br /&gt;
 0x7D        6                    n/a&lt;br /&gt;
 0x7E        7                    Battery&lt;br /&gt;
 0x7F        8                    n/a&lt;br /&gt;
 0xC0        none                 n/a&lt;br /&gt;
 0xC1        none                 n/a&lt;br /&gt;
 0xC2        none                 n/a&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T43}}, {{T43p}}===&lt;br /&gt;
Found by Shmidoax using cooling spray to cool down components and observe the effect on the sensors.&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    Between PCMCIA slot and CPU (same as HDAPS module)&lt;br /&gt;
 0x7A        3                    PCMCIA slot&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    System battery (front left = charging circuit)&lt;br /&gt;
 0x7D        6                    UltraBay battery&lt;br /&gt;
 0x7E        7                    System battery (rear right)&lt;br /&gt;
 0x7F        8                    UltraBay battery&lt;br /&gt;
 0xC0        9                    Bus between Northbridge and DRAM; Ethernet chip&lt;br /&gt;
 0xC1        10                   Southbridge, WLAN and clock generator (under Mini-PCI card, under touchpad)&lt;br /&gt;
 0xC2        11                   Power circuitry, on underside of system board under F2 key&lt;br /&gt;
{{gallery_start}}&lt;br /&gt;
{{thumb|T43-thermal-sensors.jpg|ThinkPad T43 sensor locations}}&lt;br /&gt;
{{thumb|T43-2668-thermal-sensors-zoom.jpg|ThinkPad T43 sensor locations detail}}&lt;br /&gt;
{{thumb|T43p-H8S2161.jpg|ThinkPad T43/p 26xx Embedded Controller Renesas H8S/2161BV}}&lt;br /&gt;
{{gallery_end}}&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T60}}===&lt;br /&gt;
Found by Marco Kraus for use in [http://www.kraus.tk/projects/IBMDoK/ IBMDok].&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    APS&lt;br /&gt;
 0x7A        3                    PCM&lt;br /&gt;
 0x7B        4                    GPU&lt;br /&gt;
 0x7C        5                    BAT&lt;br /&gt;
 0x7D        6                    n/a&lt;br /&gt;
 0x7E        7                    BAT&lt;br /&gt;
 0x7F        8                    n/a&lt;br /&gt;
 0xC0        9                    n/a&lt;br /&gt;
 0xC1        10                   n/a&lt;br /&gt;
 0xC2        11                   n/a&lt;br /&gt;
 0xC3        12                   n/a&lt;br /&gt;
 0xC4        13                   n/a&lt;br /&gt;
 0xC5        14                   n/a&lt;br /&gt;
 0xC6        15                   n/a&lt;br /&gt;
 0xC7        16                   n/a&lt;br /&gt;
&lt;br /&gt;
/etc/sensors.d/tpsensors&lt;br /&gt;
 chip &amp;quot;acpitz-virtual-0&amp;quot;&lt;br /&gt;
   label temp1 &amp;quot;CPU_0&amp;quot;&lt;br /&gt;
   label temp2 &amp;quot;CPU_1&amp;quot;&lt;br /&gt;
 chip &amp;quot;thinkpad-isa-0000&amp;quot;&lt;br /&gt;
   label fan1   &amp;quot;FAN&amp;quot;&lt;br /&gt;
   label temp1  &amp;quot;CPU&amp;quot;&lt;br /&gt;
   label temp2  &amp;quot;APS&amp;quot;&lt;br /&gt;
   label temp3  &amp;quot;PCM&amp;quot;&lt;br /&gt;
   label temp4  &amp;quot;GPU&amp;quot;&lt;br /&gt;
   label temp5  &amp;quot;BAT&amp;quot;&lt;br /&gt;
   ignore temp6  &amp;quot;n/a&amp;quot;&lt;br /&gt;
   label temp7  &amp;quot;BAT&amp;quot;&lt;br /&gt;
   ignore temp8  &amp;quot;n/a&amp;quot;&lt;br /&gt;
   label temp9  &amp;quot;BUS&amp;quot;&lt;br /&gt;
   label temp10 &amp;quot;PCI&amp;quot;&lt;br /&gt;
   label temp11 &amp;quot;PWR&amp;quot;&lt;br /&gt;
   ignore temp12  &amp;quot;n/a&amp;quot;&lt;br /&gt;
   ignore temp13  &amp;quot;n/a&amp;quot;&lt;br /&gt;
   ignore temp14  &amp;quot;n/a&amp;quot;&lt;br /&gt;
   ignore temp15  &amp;quot;n/a&amp;quot;&lt;br /&gt;
   ignore temp16  &amp;quot;n/a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The CPU thermal sensors seem to be exposed in both {{path|/proc/acpi/thermal_zone/THM0/temperature}} and {{path|/proc/acpi/thermal_zone/THM1/temperature}}, though the latter curiously seems to exist only in this file and nowhere in {{path|/proc/acpi/ibm/ecdump}}.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T61}}===&lt;br /&gt;
&lt;br /&gt;
'''Sensor numbering correlated with {{path|/sys/devices/platform/thinkpad_hwmon/temp*_input}}'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Thermal ID !! Location/Related Hardware !! Confirmed !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1 || CPU || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
| 2 || North-bridge || {{Cpart}} || &lt;br /&gt;
|-&lt;br /&gt;
| 3 || Cardbus/ExpressCard Bay || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
| 4 || GPU || {{Cyes}} || seperate from GPU's integrated sensor&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 9-Cell Battery - Secondary || {{Cyes}} || static @ 50C on 6-cell&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ultrabay - Secondary || {{Cyes}} || Available only when device present&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 6/9-Cell Battery - Primary || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || UltraBay - Primary || {{Cyes}} || Available only when device present&lt;br /&gt;
|-&lt;br /&gt;
| 9 || RAM || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Right of RAM, Under Touchpad || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Mini-PCI Area || {{Cpart}} ||&lt;br /&gt;
|}&lt;br /&gt;
{{Todo|determine sensor 6 and 8 relavence for other UltraBay accessories}}&lt;br /&gt;
{{Todo|confirm sensor 11}}&lt;br /&gt;
&lt;br /&gt;
'''Contributors:''' ''Daniel Castro, [[User:Lunatico|Lunatico]], [[User:andrewcbates|Andrew C Bates]]''&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T61p}}===&lt;br /&gt;
&lt;br /&gt;
'''Sensor numbering correlated with {{path|/sys/devices/platform/thinkpad_hwmon/temp*_input}}'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Thermal ID !! Location/Related Hardware !! Confirmed !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| 1 || CPU || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
| 2 || North-bridge || {{Cpart}} || &lt;br /&gt;
|-&lt;br /&gt;
| 3 || Cardbus/ExpressCard Bay || {{Cyes}} || &lt;br /&gt;
|-&lt;br /&gt;
| 4 || GPU || {{Cyes}} || seperate from GPU's integrated sensor&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 9-Cell Battery - Secondary || {{Cyes}} || static @ 50C on 6-cell&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Ultrabay - Secondary || {{Cyes}} || Available only when device present&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 6/9-Cell Battery - Primary || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || UltraBay - Primary || {{Cyes}} || Available only when device present&lt;br /&gt;
|-&lt;br /&gt;
| 9 || RAM || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Right of RAM, Under Touchpad || {{Cyes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Mini-PCI Area || {{Cpart}} ||&lt;br /&gt;
|}&lt;br /&gt;
{{Todo|determine sensor 6 and 8 relavence for other UltraBay accessories}}&lt;br /&gt;
{{Todo|confirm sensor 11}}&lt;br /&gt;
&lt;br /&gt;
'''Contributors:''' ''[[User:andrewcbates|Andrew C Bates]]''&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T400}}===&lt;br /&gt;
Experimenting with a hair dryer, fgl_glxgears, grep and tools like that I ([[User:Dummyaccount|Dummyaccount]]) came to the following conclusions for the sensor-index mapping. More comments are provided at [http://www.cosy.sbg.ac.at/~shuber/misc-t400.php#temp_sensors].&lt;br /&gt;
&lt;br /&gt;
 Index in &amp;quot;thermal&amp;quot;   Location&lt;br /&gt;
 1                    CPU neighbourhood (also via ACPI THM0)&lt;br /&gt;
 2                    Ultrabay&lt;br /&gt;
 3                    Express card&lt;br /&gt;
 4                    ATI graphics module&lt;br /&gt;
 5                    Main battery (always around 50°C)&lt;br /&gt;
 6                    n/a (probably ultrabay battery)&lt;br /&gt;
 7                    Main Battery (fits about the value reported by smapi)&lt;br /&gt;
 8                    n/a (probably ultrabay battery)&lt;br /&gt;
 9                    Hard disc&lt;br /&gt;
 10                   Intel graphics module&lt;br /&gt;
 11                   Heatsink?&lt;br /&gt;
 12                   n/a&lt;br /&gt;
 13                   n/a&lt;br /&gt;
 14                   n/a&lt;br /&gt;
 15                   n/a&lt;br /&gt;
 16                   n/a&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T400s}}===&lt;br /&gt;
&lt;br /&gt;
 Index in &amp;quot;thermal&amp;quot;   Location&lt;br /&gt;
 1                    CPU neighbourhood (same as ACPI THM0)&lt;br /&gt;
 2                    ?&lt;br /&gt;
 3                    ?&lt;br /&gt;
 4                    n/a&lt;br /&gt;
 5                    Main battery&lt;br /&gt;
 6                    Ultrabay battery&lt;br /&gt;
 7                    Main Battery&lt;br /&gt;
 8                    Ultrabay battery&lt;br /&gt;
 9                    ?&lt;br /&gt;
 10                   n/a&lt;br /&gt;
 11                   ?&lt;br /&gt;
 12                   n/a&lt;br /&gt;
 13                   n/a&lt;br /&gt;
 14                   n/a&lt;br /&gt;
 15                   n/a&lt;br /&gt;
 16                   n/a&lt;br /&gt;
&lt;br /&gt;
None of the these matches ACPI THM1, which (judging by the dramatic response to CPU load) is probably the CPU's on-die thermal sensor.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{T500}}===&lt;br /&gt;
According to [http://forum.thinkpads.com/viewtopic.php?f=45&amp;amp;t=75032], the sensors in the T500 &amp;quot;may be identical to those reported for the [[#ThinkPad T61|T61]]&amp;quot;, with the possibility that #11 may be the CPU heatsink. &amp;quot;It is very closely correlated to cpu load but shows a lot more inertia than sensor 1 which changes almost instantaneously with cpu load.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I ([[User:Nandhp]]) experimented with running glxgears, this produces a spike in #9, which does not occur under regular CPU load. #5 and #7 both belong to the main battery, for they disappear when it is removed. [http://www.kernel.org/doc/Documentation/laptops/thinkpad-acpi.txt] suggests #6 and #8 should be for the UltraBay battery. It also implies that #4 should be for the GPU, however, my model (which has an integrated GPU) does not have a #4 sensor. --[[User:Nandhp|Nandhp]] 19:27, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
 Index in &amp;quot;thermal&amp;quot;   Location&lt;br /&gt;
 1                    CPU (also via ACPI THM0)&lt;br /&gt;
 2                    ? (very similar to HDD smart temp)&lt;br /&gt;
 3                    ? (also via ACPI THM1)&lt;br /&gt;
 4                    n/a&lt;br /&gt;
 5                    Main Battery A&lt;br /&gt;
 6                    n/a (probably Second Battery A)&lt;br /&gt;
 7                    Main Battery B&lt;br /&gt;
 8                    n/a (probably Second Battery B)&lt;br /&gt;
 9                    ? (possibly (integrated) GPU)&lt;br /&gt;
 10                   ?&lt;br /&gt;
 11                   ? (possibly heatsink)&lt;br /&gt;
 12                   n/a&lt;br /&gt;
 13                   n/a&lt;br /&gt;
 14                   n/a&lt;br /&gt;
 15                   n/a&lt;br /&gt;
 16                   n/a&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{X22}} {{X23}} {{X24}}===&lt;br /&gt;
There is a chip very close to the CPU, which monitors the processor and its own temperature, reports as temperatures 1 and 2 respectively.  In X22, this sensor is ADM1023ARQ.  In X24, the chip is NE1618.  I think the sensor for temperature 3 is on the underside.  Temperature 3 is high while charging battery.&lt;br /&gt;
&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    just in front of CPU&lt;br /&gt;
 0x7A        3                    ? gets hot when charging battery&lt;br /&gt;
&lt;br /&gt;
{{gallery_start}}&lt;br /&gt;
{{thumb|X22_heatsink.JPG|location of CPU thermal monitor}}&lt;br /&gt;
{{gallery_end}}&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{X31}}===&lt;br /&gt;
I figured these out by myself ([[User:BDKMPSS|BDKMPSS]]), as there are just a few available, this wasn't a huge problem. I verified my presumptions with a contactless thermometer.&lt;br /&gt;
 EC offset   Index in &amp;quot;thermal&amp;quot;   Location (estimated)&lt;br /&gt;
 0x78        1                    CPU&lt;br /&gt;
 0x79        2                    n/a&lt;br /&gt;
 0x7A        3                    GPU?&lt;br /&gt;
 0x7B        4                    near or the ICH4M Southbrige, on the back of the Motherboard&lt;br /&gt;
 0x7C        5                    Battery&lt;br /&gt;
 0x7D        6                    Extended-Life-Battery; may also UltraBay battery&lt;br /&gt;
 0x7E        7                    Battery&lt;br /&gt;
 0x7F        8                    Extended-Life-Battery; may also UltraBay battery&lt;br /&gt;
 0xC0        none                 n/a&lt;br /&gt;
 0xC1        none                 n/a&lt;br /&gt;
 0xC2        none                 n/a&lt;br /&gt;
&lt;br /&gt;
0x7A &amp;quot;GPU?&amp;quot; is pretty hot and seems like the GPU, but as the Chipset and the GPU are cooled with the same heatsink it is difficult to separate them without roasting the machine. However the left and GPU side of the heatsink is much closer to the shown value than the right Chipset side.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{X61}}===&lt;br /&gt;
[[User:Jdthood|I]] have started to figure out which sensors are which.&lt;br /&gt;
&lt;br /&gt;
 Index     Location  How known?&lt;br /&gt;
  1        CPU       Increases immediately on computationally intensive task&lt;br /&gt;
  2        HDAPS     Always the same value as /sys/bus/platform/drivers/hdaps/hdaps/temp1&lt;br /&gt;
  3&lt;br /&gt;
  4&lt;br /&gt;
  5        Battery   Disappears if battery removed&lt;br /&gt;
  7        Battery   Disappears if battery removed&lt;br /&gt;
  9&lt;br /&gt;
 10&lt;br /&gt;
&lt;br /&gt;
===ThinkPad {{X200 Tablet}}===&lt;br /&gt;
That's what [[User:Jdthood|I]] found out so far. Hope the guys in the german tp-forum have some more details. [http://thinkpad-forum.de/threads/143790-Temperatursensoren-im-X200-Tablet thread]&lt;br /&gt;
&lt;br /&gt;
 Sensors   Location  How known?&lt;br /&gt;
 temp1     CPU       Increases immediately on computationally intensive task&lt;br /&gt;
 temp5     Battery   Disappears if battery removed &lt;br /&gt;
 temp7     Battery   Disappears if battery removed&lt;br /&gt;
 &lt;br /&gt;
===ThinkPad {{X220}}===&lt;br /&gt;
On [[User:Jdthood|my]] X220 there is only one sensor, named &amp;lt;tt&amp;gt;fan1&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sensors&lt;br /&gt;
acpitz-virtual-0&lt;br /&gt;
Adapter: Virtual device&lt;br /&gt;
temp1:       +49.0°C  (crit = +99.0°C)                  &lt;br /&gt;
&lt;br /&gt;
thinkpad-isa-0000&lt;br /&gt;
Adapter: ISA adapter&lt;br /&gt;
fan1:       1954 RPM&lt;br /&gt;
$ lsmod | grep '^t[hp]'&lt;br /&gt;
thinkpad_acpi          81587  0 &lt;br /&gt;
tpm_tis                18537  1 &lt;br /&gt;
tpm                    22267  1 tpm_tis&lt;br /&gt;
tpm_bios               13684  1 tpm&lt;br /&gt;
tp_smapi               28471  0 &lt;br /&gt;
thinkpad_ec            14450  2 hdaps,tp_smapi&lt;br /&gt;
$ modinfo thinkpad-acpi|grep vers&lt;br /&gt;
filename:       /lib/modules/2.6.38-11-generic/kernel/drivers/platform/x86/thinkpad_acpi.ko&lt;br /&gt;
version:        0.24&lt;br /&gt;
srcversion:     0B6457473BB90551EE1D20F&lt;br /&gt;
vermagic:       2.6.38-11-generic SMP mod_unload modversions &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Papertiger</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Extending_battery_life_on_X200&amp;diff=53695</id>
		<title>Extending battery life on X200</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Extending_battery_life_on_X200&amp;diff=53695"/>
		<updated>2012-05-19T13:46:22Z</updated>

		<summary type="html">&lt;p&gt;Papertiger: Changed markup for external urls to the correct one&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
I own the beautiful Lenovo X200 and run Ubuntu Intrepid on the machine. Its battery life is significantly lower than that under Windows and many users have reported that it runs hotter than under Windows. &lt;br /&gt;
&lt;br /&gt;
With the changes below and a 9 cell battery I get over 9 hours on an idle system with backlight at the lowest level and wireless radios off. Before the changes I was only getting 5 hours. &lt;br /&gt;
&lt;br /&gt;
The system also runs a lot cooler and I do not need tpfan (sw fan control for the ThinkPad available [[Fan_control_scripts|here]]), the built-in hw controller falls back to the lower speeds shortly after a CPU load subsides.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
&lt;br /&gt;
The changes fall into 3 categories:&lt;br /&gt;
* '''Removing packages that create unnecessarily frequent wake up interrupts.'''&lt;br /&gt;
**These interrupts wake up the CPU, preventing it from staying in its most energy efficient state.&lt;br /&gt;
**I used Powertop from [http://www.lesswatts.org www.lesswatts.org] for this task.&lt;br /&gt;
* '''Lowering the voltage supplied to the CPU.''' &lt;br /&gt;
** Lowering CPU voltage does ''not'' impact performance since the clock frequency is unaffected&lt;br /&gt;
**I used phc patches and phctools available at [http://www.linux-phc.org www.linux-phc.org] for this task.&lt;br /&gt;
*'''Turning off radios that are not needed''&lt;br /&gt;
**My X200 has 3 wireless radios: Wifi, Bluetooth, Broadband wireless&lt;br /&gt;
&lt;br /&gt;
== Finding and removing high interrupt packages ==&lt;br /&gt;
Install PowerTOP from [http://www.lesswatts.org/projects/powertop/download.php here].&lt;br /&gt;
&lt;br /&gt;
Run PowerTOP as root (sudo powertop) and look for the packages that come up on top of the interrupt frequency list. These are the packages that wake up the CPU most frequently.&lt;br /&gt;
&lt;br /&gt;
In my case the majority of the ''easily'' ''preventable'' interrupts were from 3 packages:&lt;br /&gt;
*i915, the intel graphics driver&lt;br /&gt;
*SCIM&lt;br /&gt;
*Gnome Power Manager&lt;br /&gt;
&lt;br /&gt;
With the first one accounting for the bulk of the battery life improvement. &lt;br /&gt;
&lt;br /&gt;
The %'s in PowerTOP give you an indication of what to focus on, no need to worry about a 1% problem (unless it is easy to prevent that it), it will not have much impact on your battery life.&lt;br /&gt;
&lt;br /&gt;
Remember that over time these packages will improve  and will not need to be removed.&lt;br /&gt;
=== Turning off DRI ===&lt;br /&gt;
Just insert:  Option &amp;quot;NoDRI&amp;quot;&lt;br /&gt;
to the &amp;quot;Device&amp;quot; section in /etc/X11/xorg.conf. This turns off all 3D, so no compiz or other fancy effect. Worth it for me because the impact on battery life is substantial.&lt;br /&gt;
===Turning off SCIM===&lt;br /&gt;
I had my system set to accept foreign characters. Going to System &amp;gt; Language Support &amp;gt; Disable support to enter complex characters does the trick.&lt;br /&gt;
===Turning off Gnome Power Manager===&lt;br /&gt;
You may decide you cannot live without it, but on my system I disabled Gnome Power Manager from the startup list: System &amp;gt; Sessions &amp;gt; Power Management daemon. &lt;br /&gt;
&lt;br /&gt;
I replaced it with the ''Gnome Panel'' Battery Charge Monitor (Add to Panel...) which works well enough for me.&lt;br /&gt;
&lt;br /&gt;
== Reducing CPU voltage ==&lt;br /&gt;
===Installing phc module patches===&lt;br /&gt;
The phc module patches are available [http://www.ubuntuforums.org/showthread.php?t=786402 here], make sure you get the version that matches you kernel version. You can easily check by typing uname -r in a console.&lt;br /&gt;
&lt;br /&gt;
You need not compile your own module, check the thread, users have posted already compiled versions of the acpi-cpufreg.ko module for most kernel versions.&lt;br /&gt;
&lt;br /&gt;
Once you have the apci-cpufreq.ko module, back up the old module:&lt;br /&gt;
 sudo cp /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq/acpi_cpufreq.ko&lt;br /&gt;
 /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq/acpi_cpufreq.ko.bak&lt;br /&gt;
&lt;br /&gt;
Then copy the new module to the right place:&lt;br /&gt;
 sudo cp acpi_cpufreq.ko    /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq&lt;br /&gt;
&lt;br /&gt;
Restart your system and check that you now have voltage controls by typing:&lt;br /&gt;
more /sys/devices/system/cpu/cpu0/cpufreq/phc_vids&lt;br /&gt;
&lt;br /&gt;
You should see something like: &lt;br /&gt;
 38 29 23 13 (your values may be different)&lt;br /&gt;
These are the voltage index values for the 4 frequencies available on your CPU. They are directly related to the actual voltages, phctools does the computation for you as explained below.&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
*If you check phc_fids you will see values that do not make sense&lt;br /&gt;
 more /sys/devices/system/cpu/cpu0/cpufreq/phc_fids&lt;br /&gt;
These are supposed to be the available frequency indexes, which are the ratios of CPU frequency to FSB frequency, sometimes called multipliers. There is a bug in the phc patches which affects how the multiplers are reported. This bug does not affect undervolting your CPU.&lt;br /&gt;
&lt;br /&gt;
===Intalling phctools===&lt;br /&gt;
Download them [http://www.linux-phc.org/ here]. &lt;br /&gt;
&lt;br /&gt;
Unpack the package in a directory where you can conveniently access it. Use the install script (install.sh) to enable pctools to run without requiring a password.&lt;br /&gt;
&lt;br /&gt;
Also download [http://www.linux-phc.org/viewtopic.php?f=9&amp;amp;t=16 here] the update which supports the Core2Duo CPU.&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and copy the file to&amp;quot;inc/libs&amp;quot; within the PHCTool directory (replace the old one).&lt;br /&gt;
&lt;br /&gt;
Lastly made sure the module msr is loaded. PhcTool works without it, but having it loaded allows it to display the actual votage fed into your CPU.&lt;br /&gt;
 sudo modprobe msr&lt;br /&gt;
&lt;br /&gt;
You can make this module load automatically by adding it to the file /etc/modules&lt;br /&gt;
&lt;br /&gt;
Also install the burnMMX application, it is designed to put a heavy load on your system and is necessary to make sure the voltages you choose will work under load:&lt;br /&gt;
 sudo apt-get install burnMMX&lt;br /&gt;
&lt;br /&gt;
===Experimenting with lower voltages===&lt;br /&gt;
This is the scary part: you will have to crash your system on purpose. I found it to be harmless, but be forewarned that some users have reported that it could damage your system. &lt;br /&gt;
&lt;br /&gt;
DO NOT RUN THIS TEST WITH A CUSTOM PROGRAM TO CONTROL THE FAN, YOU COULD FRY YOUR SYSTEM. FIRST REVERT TO HW CONTROLLED FAN IF YOU MADE ANY CHANGES TO FAN CONTROL.&lt;br /&gt;
&lt;br /&gt;
Check that you are using &amp;quot;ondemand&amp;quot; as the frequency scaling governor. This governor delivers the lowest power consumption according to Intel. An easy way to do this is to use Frequency Scaling Monitor Gnome panel applet.&lt;br /&gt;
&lt;br /&gt;
Another way is to check:&lt;br /&gt;
 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;br /&gt;
which returns the currently active governor. You can echo a new value as root, it takes effect immediately.&lt;br /&gt;
&lt;br /&gt;
Start phctools:&lt;br /&gt;
 phctools.sh&lt;br /&gt;
&lt;br /&gt;
On the Info tab, you will see your CPU identified and the available frequencies for this CPU:&lt;br /&gt;
 2267Mhz 2266Mhz 1600Mhz 800Mhz&lt;br /&gt;
&lt;br /&gt;
On the Voltage tab you will see the VID and corresponding voltage for each frequency as well as the difference from the default values. &lt;br /&gt;
&lt;br /&gt;
The phc patches prevent you from using a value higher than the highest defaults voltage or a value lower than the lowest default voltage even though phctools will let you enter higher and lower values. They will have no effect, so stay within the range defined by the highest and lowest VID value.&lt;br /&gt;
&lt;br /&gt;
The default values are also reloaded each time you restart the system. Do NOT set phctools to &amp;quot;restore VID on load&amp;quot; at this time.&lt;br /&gt;
&lt;br /&gt;
Now the fun begins...&lt;br /&gt;
#Start burnMMX in a terminal window. WARNING this puts a lot of stress on your sys&lt;br /&gt;
#Lower the first VID value, 25 should work to get started. Do this for both CPU's (tab on the left for CPU0 and CPU1&lt;br /&gt;
#Save values&lt;br /&gt;
#Use your system for a bit and see if it is stable&lt;br /&gt;
#Lower the first VID value until your system crashes (or stop before if you do not dare).&lt;br /&gt;
&lt;br /&gt;
My threshold was 15, at this VID my system crashes after less than a minute. At this point reboot your system, restart phctools and set the VID for 2267Mhz to the value that crashed '''+ 2'''. Do this for both CPU's.&lt;br /&gt;
&lt;br /&gt;
Restart and work on the other frequencies, using the Frequency Scaling Monitor applet to force the CPU to the frequency you want to test.&lt;br /&gt;
&lt;br /&gt;
On my system the safe values were:&lt;br /&gt;
 17 15 13 13&lt;br /&gt;
&lt;br /&gt;
===Making the voltages stick===&lt;br /&gt;
One you have found the lowest VID's that your system can safely run with, enter them on phctools Voltages for both CPU0 and CPU1, then go to settings and click &amp;quot;restore VID's on load&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
All that is left is to make phctools restore your VID's each time you boot. Add the command:&lt;br /&gt;
 yourphcdirectory/phctools.sh background&lt;br /&gt;
to your startup applications in System &amp;gt; Sessions. It will automatically start phctools, make it restore your VID's and quit.&lt;br /&gt;
&lt;br /&gt;
Note that if you do nothing, the original VID's are automatically reloaded each time you reboot the system.&lt;br /&gt;
&lt;br /&gt;
==Turning off the wireless radios==&lt;br /&gt;
The X200 has a great feature: a button on the left side to disable all radios. Use it when you do not need wireless.&lt;br /&gt;
When you need wireless, use FN + F5 to turn on/off Wifi and Blutooth. &lt;br /&gt;
&lt;br /&gt;
The hidden power hog is the 3G broadband modem (Ericsson F3507g), even when the 3G led is off. To completely shut down power to the modem:&lt;br /&gt;
 sudo echo 0 &amp;gt; /sys/devices/platform/thinkpad_acpi/wwan_enable&lt;br /&gt;
&lt;br /&gt;
There are scripts to do this automatically [[Ericsson_F3507g_Mobile_Broadband_Module | here]].&lt;br /&gt;
&lt;br /&gt;
[[Category:X200]]&lt;br /&gt;
[[Category:HOWTOs]]&lt;/div&gt;</summary>
		<author><name>Papertiger</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Wacom_Serial_Tablet_PC_Stylus&amp;diff=47722</id>
		<title>Wacom Serial Tablet PC Stylus</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Wacom_Serial_Tablet_PC_Stylus&amp;diff=47722"/>
		<updated>2010-03-12T22:24:10Z</updated>

		<summary type="html">&lt;p&gt;Papertiger: changed rotation of cursor keys from static to variable keycodes&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; |[[Image:Logo_wacom.gif|Wacom Logo]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== Wacom Serial Tablet PC Stylus ===&lt;br /&gt;
This is a stylus made for tablet PCs by Wacom.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: Wacom&lt;br /&gt;
* Serial: irq 5 port 0x0200&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
The pen is supported by the XFree/Xorg Wacom driver. New tablets also have the [[MultiTouch]] capability. [[MultiTouch]] is experimentally supported presently by the Linux wacom project. The pen works regardless of [[MultiTouch]] support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fist steps==&lt;br /&gt;
Get the [http://linuxwacom.sourceforge.net/index.php/dl linux wacom driver] and install it on your system.&lt;br /&gt;
&lt;br /&gt;
The pen uses serial and appears on some {{path|/dev/ttySnn}} device where &amp;lt;tt&amp;gt;nn&amp;lt;/tt&amp;gt; is a number. An easy way to find it is to map {{path|/dev/ttyS0}} to the pen's port and irq. The values can be found under the windows driver properties. Using values from an {{X41T}} 1869-5CU, the command is: {{cmdroot|setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig}} (you need to run this after every suspend/resume cycle).&lt;br /&gt;
&lt;br /&gt;
This may be inserted into startup scripts in {{path|/etc/rc.d/}} or {{path|/etc/rc.local}}&lt;br /&gt;
&lt;br /&gt;
After mapping the pen, you can check its output with {{cmdroot|wacdump -f tpc /dev/ttyS0}}. This will list raw information about the pens position an click status. Hit Ctrl+C to exit wacdump.&lt;br /&gt;
&lt;br /&gt;
==Setting up your Xorg.conf==&lt;br /&gt;
Now that you see the pen working correctly you should configure your Xserver to use the stylus. Add the following sections to your xorg.conf:&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
      Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
      Identifier    &amp;quot;cursor&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Type&amp;quot;          &amp;quot;cursor&amp;quot;&lt;br /&gt;
      Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;     &lt;br /&gt;
      Option        &amp;quot;Mode&amp;quot;          &amp;quot;Absolute&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
    &lt;br /&gt;
    Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
      Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
      Identifier    &amp;quot;stylus&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Type&amp;quot;          &amp;quot;stylus&amp;quot;&lt;br /&gt;
      Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
    &lt;br /&gt;
    Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
      Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
      Identifier    &amp;quot;eraser&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Type&amp;quot;          &amp;quot;eraser&amp;quot;&lt;br /&gt;
      Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
    # support for &amp;quot;touch&amp;quot; (with finger, available on x200t and some x61t)&lt;br /&gt;
   Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
     Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
     Identifier    &amp;quot;touch&amp;quot;&lt;br /&gt;
     Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;          # SERIAL ONLY&lt;br /&gt;
     Option        &amp;quot;Type&amp;quot;          &amp;quot;touch&amp;quot;&lt;br /&gt;
     Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;               # Serial Tablet PC ONLY&lt;br /&gt;
   EndSection&lt;br /&gt;
&lt;br /&gt;
   Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
     Identifier     &amp;quot;Default Layout&amp;quot;&lt;br /&gt;
     Screen 0 &amp;quot;Default Screen&amp;quot;   0 0&lt;br /&gt;
     InputDevice    &amp;quot;Configured Mouse&amp;quot;    &amp;quot;CorePointer&amp;quot;&lt;br /&gt;
     InputDevice    &amp;quot;cursor&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
     InputDevice    &amp;quot;stylus&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;touch&amp;quot;  &amp;quot;SendCoreEvents&amp;quot; #Uncomment if you have this feature.&lt;br /&gt;
   EndSection&lt;br /&gt;
&lt;br /&gt;
Check the wacom driver man page and [http://linuxwacom.sf.net/ website] for other options.&lt;br /&gt;
&lt;br /&gt;
For handwriting recognition using pen you can use [[CellWriter]].&lt;br /&gt;
&lt;br /&gt;
To get the right mouse button to map to the stylus button use this script and run it through .bashrc&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    xsetwacom set stylus Button1 1&lt;br /&gt;
    xsetwacom set stylus Button2 3&lt;br /&gt;
    xsetwacom set stylus Button3 3&lt;br /&gt;
&lt;br /&gt;
==Wacomcpl==&lt;br /&gt;
I found it useful to create a .desktop file for launching the wacomcpl program which is used for many user options for the tablet pen.&lt;br /&gt;
&lt;br /&gt;
    [Desktop Entry]&lt;br /&gt;
    Type=Application&lt;br /&gt;
    Encoding=UTF-8&lt;br /&gt;
    Name=wacomcpl&lt;br /&gt;
    GenericName=linux wacom config&lt;br /&gt;
    Comment=linux wacom configuration tool&lt;br /&gt;
    TryExec=wacomcpl&lt;br /&gt;
    Exec=wacomcpl&lt;br /&gt;
    Terminal=false&lt;br /&gt;
    Categories=System;&lt;br /&gt;
    Icon=wacomcpl.png&lt;br /&gt;
&lt;br /&gt;
To have your settings restore after logout/suspend/restart you will need to edit {{path|/home/yourusername/.xinitrc}}.&lt;br /&gt;
Go to the last line and change &lt;br /&gt;
&lt;br /&gt;
    . /etc/X11/xinit/xinitrc&lt;br /&gt;
&lt;br /&gt;
to read as&lt;br /&gt;
&lt;br /&gt;
    # . /etc/X11/xinit/xinitrc&lt;br /&gt;
&lt;br /&gt;
Next you need to create a new sessions preference to load the user file.&lt;br /&gt;
&lt;br /&gt;
For Debian [lenny] go to System &amp;gt; Preferences &amp;gt; Sessions.&lt;br /&gt;
Add a new startup program and add the command &lt;br /&gt;
    sh /home/yourusername/.xinitrc&lt;br /&gt;
click ok.&lt;br /&gt;
&lt;br /&gt;
For Ubuntu use System &amp;gt; Preferences &amp;gt; Startup Applications.&lt;br /&gt;
add the same startup program as above.&lt;br /&gt;
&lt;br /&gt;
--[[User:Jeremy!|Jeremy!]] 14:49, 29 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==xrandr Rotation==&lt;br /&gt;
&lt;br /&gt;
There is work underway to create a [https://code.edge.launchpad.net/~karl.hegbloom/tabuntu/tablet-screen-rotation-support Tablet Screen Rotation Support] package for Ubuntu. Because I can afford only one tablet computer, and since this is relatively new and not many others have put any work into it yet, so far it mainly supports the Lenovo Thinkpad X61 Tablet. The next phase of development involves refactoring in such a way that it can easily be expanded to support other brands and models of tablet computer. The planned mechanism is similar to that used by the scripts in the Debian acpi-support package.&lt;br /&gt;
&lt;br /&gt;
So far, it supports auto-rotation on conversion from laptop to tablet mode, including rebinding the navpad keys and turning the logical orientation of the Wacom tablet to match. It is done as an event called when the X Server has changed it's xRandR orientation. The actual work is carried out by a quick set of shell scripts that can easily be adapted and extended. The idea is that no matter what piece of software actually caused the X Server to rotate, the same things need to happen whenever it does. So the best place to hook in the support event is on an event handler for the RandR Rotate event. The programs and packaging are simple, and the source is available at the URL above. I encourage you to get a copy and learn from it while helping make it work for a new kind of tablet no other developer has created support for yet! If you can write an essay, you can write the necessary program.&lt;br /&gt;
&lt;br /&gt;
Because this ThinkWiki page is one of the sources I drew from when I initially created tablet-screen-rotation-support. The following scripts by Gtx, radix, and Papertiger probably contain some elements in common.  --[[User:KarlHegbloom|KarlHegbloom]] 21:55, 9 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== xrotate support scripts ===&lt;br /&gt;
&lt;br /&gt;
linuxwacom is very buggy. I needed some time to get the tablet work with &amp;quot;xrandr -r&amp;quot;. I use the script below to do screen rotation. copy the source an put it in /usr/local/bin/xrotate. You may change output and devices to fit to you're system (the default values work fine for an x41 tablet)&lt;br /&gt;
&lt;br /&gt;
you can use &amp;quot;xrotate +&amp;quot; to rotate the screen CCW or &amp;quot;xrotate -&amp;quot; to rotate clockwise. use &amp;quot;xrotate x&amp;quot; where x is&lt;br /&gt;
* 0 to set rotation to normal&lt;br /&gt;
* 1 to set rotation to left&lt;br /&gt;
* 2 to set rotation to inverted&lt;br /&gt;
* 3 to set rotation to right&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  &lt;br /&gt;
  output=LVDS&lt;br /&gt;
  if [ &amp;quot;$XROT_OUTPUT&amp;quot; ]&lt;br /&gt;
  then    &lt;br /&gt;
          output=$XROT_OUTPUT;&lt;br /&gt;
  fi&lt;br /&gt;
  devices=&amp;quot;stylus cursor&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  geomnbr=0&lt;br /&gt;
  xrandr=normal&lt;br /&gt;
  wacom=normal&lt;br /&gt;
  if [ &amp;quot;$1&amp;quot; == &amp;quot;-&amp;quot; ] || [ &amp;quot;$1&amp;quot; == &amp;quot;+&amp;quot; ] || ! [ &amp;quot;$1&amp;quot; ];&lt;br /&gt;
  then    &lt;br /&gt;
          operator=&amp;quot;$1&amp;quot;;&lt;br /&gt;
          [ &amp;quot;$1&amp;quot; ] || operator='+';&lt;br /&gt;
          case `xrandr --verbose | grep &amp;quot;^$output &amp;quot; | sed &amp;quot;s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/&amp;quot;` in&lt;br /&gt;
                  normal)         geom=0;;&lt;br /&gt;
                  left)           geom=1;;&lt;br /&gt;
                  inverted)       geom=2;;&lt;br /&gt;
                  right)          geom=3;;&lt;br /&gt;
          esac&lt;br /&gt;
          let geom=${geom}${operator}1+4&lt;br /&gt;
          let geom=${geom}%4&lt;br /&gt;
  else    &lt;br /&gt;
          geom=&amp;quot;$1&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  case $geom in&lt;br /&gt;
          1)      wacom=2; xrandr=left ;;&lt;br /&gt;
          2)      wacom=3; xrandr=inverted ;;&lt;br /&gt;
          3)      wacom=1; xrandr=right ;;&lt;br /&gt;
          *)      wacom=0; xrandr=normal ;;&lt;br /&gt;
  esac&lt;br /&gt;
  &lt;br /&gt;
  echo &amp;quot;xrandr to $xrandr, xsetwacom to $wacom&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
  &lt;br /&gt;
  if xrandr --output &amp;quot;$output&amp;quot; --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
          for d in $devices&lt;br /&gt;
          do      &lt;br /&gt;
                  xsetwacom set &amp;quot;$device&amp;quot; Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
          done&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  #workaround for linuxwacom bug&lt;br /&gt;
  if [ &amp;quot;`xsetwacom get stylus Mode`&amp;quot; == '1' ]; then&lt;br /&gt;
          for d in $devices&lt;br /&gt;
          do      &lt;br /&gt;
                  xsetwacom set stylus CoreEvent &amp;quot;off&amp;quot;&lt;br /&gt;
                  xsetwacom set stylus Mode &amp;quot;off&amp;quot;&lt;br /&gt;
          done&lt;br /&gt;
          { sleep 1;&lt;br /&gt;
          for d in $devices&lt;br /&gt;
          do      &lt;br /&gt;
                  xsetwacom set stylus Mode &amp;quot;on&amp;quot;&lt;br /&gt;
                  xsetwacom set stylus CoreEvent &amp;quot;on&amp;quot;&lt;br /&gt;
          done; } &amp;amp;&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
--[[User:Gtx|Gtx]] 13:34, 22 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
modified script for linuxwacom 0.8.1-1.&lt;br /&gt;
 &lt;br /&gt;
   #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 output=&amp;quot;(normal left inverted right)&amp;quot; #LVDS&lt;br /&gt;
  # if [ &amp;quot;$XROT_OUTPUT&amp;quot; ]&lt;br /&gt;
  # then     &lt;br /&gt;
  #         output=$XROT_OUTPUT;&lt;br /&gt;
  # fi&lt;br /&gt;
 devices=&amp;quot;stylus cursor&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 geomnbr=0&lt;br /&gt;
 xrandr=normal&lt;br /&gt;
 wacom=normal&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; == &amp;quot;-&amp;quot; ] || [ &amp;quot;$1&amp;quot; == &amp;quot;+&amp;quot; ] || ! [ &amp;quot;$1&amp;quot; ];&lt;br /&gt;
 then    &lt;br /&gt;
         operator=&amp;quot;$1&amp;quot;;&lt;br /&gt;
         [ &amp;quot;$1&amp;quot; ] || operator='+';&lt;br /&gt;
         case `xrandr --verbose | grep &amp;quot;$output&amp;quot; | sed &amp;quot;s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/&amp;quot;` in&lt;br /&gt;
                 normal)         geom=0;;&lt;br /&gt;
                 left)          geom=1;;&lt;br /&gt;
                 inverted)       geom=2;;&lt;br /&gt;
                 right)          geom=3;;&lt;br /&gt;
         esac&lt;br /&gt;
         let geom=${geom}${operator}1+4&lt;br /&gt;
         let geom=${geom}%4	&lt;br /&gt;
 else    &lt;br /&gt;
         geom=&amp;quot;$1&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 case $geom in&lt;br /&gt;
         1)      wacom=2; xrandr=left ;;&lt;br /&gt;
         2)      wacom=3; xrandr=inverted ;;&lt;br /&gt;
         3)      wacom=1; xrandr=right ;;&lt;br /&gt;
         *)      wacom=0; xrandr=normal ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;xrandr to $xrandr, xsetwacom to $wacom&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 &lt;br /&gt;
 if xrandr -o &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
         for d in $devices&lt;br /&gt;
         do      &lt;br /&gt;
                 xsetwacom set &amp;quot;stylus&amp;quot; Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
         done&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #workaround for linuxwacom bug&lt;br /&gt;
 if [ &amp;quot;`xsetwacom get stylus Mode`&amp;quot; == '1' ]; then&lt;br /&gt;
         for d in $devices&lt;br /&gt;
         do      &lt;br /&gt;
                 xsetwacom set stylus CoreEvent &amp;quot;off&amp;quot;&lt;br /&gt;
                 xsetwacom set stylus Mode &amp;quot;off&amp;quot;&lt;br /&gt;
         done&lt;br /&gt;
         { sleep 1;&lt;br /&gt;
         for d in $devices&lt;br /&gt;
         do      &lt;br /&gt;
                 xsetwacom set stylus Mode &amp;quot;on&amp;quot;&lt;br /&gt;
                 xsetwacom set stylus CoreEvent &amp;quot;on&amp;quot;&lt;br /&gt;
         done; } &amp;amp;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:radix|radix]] 13:15, 28 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Additional code for rotating the 4 navigation keys on the display frame.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 key_up=111&lt;br /&gt;
 key_down=116&lt;br /&gt;
 key_left=113&lt;br /&gt;
 key_right=114&lt;br /&gt;
&lt;br /&gt;
 case $geom in&lt;br /&gt;
         1)      xmodmap -e &amp;quot;keycode $key_up = Right&amp;quot;;xmodmap -e &amp;quot;keycode $key_left = Up&amp;quot;;xmodmap -e &amp;quot;keycode $key_right = Down&amp;quot;;xmodmap -e &amp;quot;keycode $key_down = Left&amp;quot;;;&lt;br /&gt;
         2)      xmodmap -e &amp;quot;keycode $key_up = Down&amp;quot;;xmodmap -e &amp;quot;keycode $key_left = Right&amp;quot;;xmodmap -e &amp;quot;keycode $key_right = Left&amp;quot;;xmodmap -e &amp;quot;keycode $key_down = Up&amp;quot;;;&lt;br /&gt;
         3)      xmodmap -e &amp;quot;keycode $key_up = Left&amp;quot;;xmodmap -e &amp;quot;keycode $key_left = Down&amp;quot;;xmodmap -e &amp;quot;keycode $key_right = Up&amp;quot;;xmodmap -e &amp;quot;keycode $key_down = Right&amp;quot;;;&lt;br /&gt;
         *)      xmodmap -e &amp;quot;keycode $key_up = Up&amp;quot;;xmodmap -e &amp;quot;keycode $key_left = Left&amp;quot;;xmodmap -e &amp;quot;keycode $key_right = Right&amp;quot;;xmodmap -e &amp;quot;keycode $key_down = Down&amp;quot;;;&lt;br /&gt;
 esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--[[User:Papertiger|Papertiger]] 22:24, 12 March 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
If the stylus still doesn't work try to reset the bios. This fixed it for me. --[[User:Gtx|Gtx]] 08:22, 21 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Device==&lt;br /&gt;
*ThinkPad {{X41_Tablet}}&lt;br /&gt;
*ThinkPad {{X60_Tablet}}&lt;br /&gt;
*ThinkPad {{X61_Tablet}}&lt;br /&gt;
*ThinkPad {{X200_Tablet}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Papertiger</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Wacom_Serial_Tablet_PC_Stylus&amp;diff=40623</id>
		<title>Wacom Serial Tablet PC Stylus</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Wacom_Serial_Tablet_PC_Stylus&amp;diff=40623"/>
		<updated>2009-01-16T02:05:51Z</updated>

		<summary type="html">&lt;p&gt;Papertiger: &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; |[[Image:Logo_wacom.gif|Wacom Logo]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
=== Wacom Serial Tablet PC Stylus ===&lt;br /&gt;
This is a stylus made for tablet PCs by Wacom.&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: Wacom&lt;br /&gt;
* Serial: irq 5 port 0x0200&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Linux Support==&lt;br /&gt;
The pen is supported by the XFree/Xorg Wacom driver. New tablets also have the [[MultiTouch]] capability. [[MultiTouch]] is experimentally supported presently by the Linux wacom project. The pen works regardless of [[MultiTouch]] support.&lt;br /&gt;
&lt;br /&gt;
The pen uses serial and appears on some {{path|/dev/ttySnn}} device where &amp;lt;tt&amp;gt;nn&amp;lt;/tt&amp;gt; is a number. An easy way to find it is to map {{path|/dev/ttyS0}} to the pen's port and irq. The values can be found under the windows driver properties. Using values from an {{X41T}} 1869-5CU, the command is: {{cmdroot|setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig}} (you need to run this after every suspend/resume cycle).&lt;br /&gt;
&lt;br /&gt;
This may be inserted into startup scripts in {{path|/etc/rc.d/}}&lt;br /&gt;
&lt;br /&gt;
The X config file needs to be changed to use the stylus. Add the following sections to your xorg.conf:&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
      Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
      Identifier    &amp;quot;cursor&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Type&amp;quot;          &amp;quot;cursor&amp;quot;&lt;br /&gt;
      Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;     &lt;br /&gt;
      Option        &amp;quot;Mode&amp;quot;          &amp;quot;Absolute&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
    &lt;br /&gt;
    Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
      Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
      Identifier    &amp;quot;stylus&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Type&amp;quot;          &amp;quot;stylus&amp;quot;&lt;br /&gt;
      Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
    &lt;br /&gt;
    Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
      Driver        &amp;quot;wacom&amp;quot;&lt;br /&gt;
      Identifier    &amp;quot;eraser&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Device&amp;quot;        &amp;quot;/dev/ttyS0&amp;quot;&lt;br /&gt;
      Option        &amp;quot;Type&amp;quot;          &amp;quot;eraser&amp;quot;&lt;br /&gt;
      Option        &amp;quot;ForceDevice&amp;quot;   &amp;quot;ISDV4&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the following lines to the ServerLayout section:&lt;br /&gt;
&lt;br /&gt;
    InputDevice    &amp;quot;cursor&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
    InputDevice    &amp;quot;stylus&amp;quot; &amp;quot;SendCoreEvents&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Check the wacom driver man page and [http://linuxwacom.sf.net/ website] for other options.&lt;br /&gt;
&lt;br /&gt;
For handwriting recognition using pen you can use [[CellWriter]].&lt;br /&gt;
&lt;br /&gt;
To get the right mouse button to map to the stylus button use this script and run it through .bashrc&lt;br /&gt;
&lt;br /&gt;
    #!/bin/bash&lt;br /&gt;
    xsetwacom set stylus Button1 &amp;quot;button 1&amp;quot;&lt;br /&gt;
    xsetwacom set stylus Button2 &amp;quot;button 3&amp;quot;&lt;br /&gt;
    xsetwacom set stylus Button3 &amp;quot;button 3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==xrandr Rotation==&lt;br /&gt;
&lt;br /&gt;
linuxwacom is very buggy. I needed some time to get the tablet work with &amp;quot;xrandr -r&amp;quot;. I use the script below to do screen rotation. copy the source an put it in /usr/local/bin/xrotate. You may change output and devices to fit to you're system (the default values work fine for my x41 tablet)&lt;br /&gt;
&lt;br /&gt;
you can use &amp;quot;xrotate +&amp;quot; to rotate the screen CCW or &amp;quot;xrotate -&amp;quot; to rotate clockwise. use &amp;quot;xrotate x&amp;quot; where x is&lt;br /&gt;
* 0 to set rotation to normal&lt;br /&gt;
* 1 to set rotation to left&lt;br /&gt;
* 2 to set rotation to inverted&lt;br /&gt;
* 3 to set rotation to right&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  &lt;br /&gt;
  output=LVDS&lt;br /&gt;
  if [ &amp;quot;$XROT_OUTPUT&amp;quot; ]&lt;br /&gt;
  then    &lt;br /&gt;
          output=$XROT_OUTPUT;&lt;br /&gt;
  fi&lt;br /&gt;
  devices=&amp;quot;stylus cursor&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  geomnbr=0&lt;br /&gt;
  xrandr=normal&lt;br /&gt;
  wacom=normal&lt;br /&gt;
  if [ &amp;quot;$1&amp;quot; == &amp;quot;-&amp;quot; ] || [ &amp;quot;$1&amp;quot; == &amp;quot;+&amp;quot; ] || ! [ &amp;quot;$1&amp;quot; ];&lt;br /&gt;
  then    &lt;br /&gt;
          operator=&amp;quot;$1&amp;quot;;&lt;br /&gt;
          [ &amp;quot;$1&amp;quot; ] || operator='+';&lt;br /&gt;
          case `xrandr --verbose | grep &amp;quot;^$output &amp;quot; | sed &amp;quot;s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/&amp;quot;` in&lt;br /&gt;
                  normal)         geom=0;;&lt;br /&gt;
                  left)           geom=1;;&lt;br /&gt;
                  inverted)       geom=2;;&lt;br /&gt;
                  right)          geom=3;;&lt;br /&gt;
          esac&lt;br /&gt;
          let geom=${geom}${operator}1+4&lt;br /&gt;
          let geom=${geom}%4&lt;br /&gt;
  else    &lt;br /&gt;
          geom=&amp;quot;$1&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  case $geom in&lt;br /&gt;
          1)      wacom=2; xrandr=left ;;&lt;br /&gt;
          2)      wacom=3; xrandr=inverted ;;&lt;br /&gt;
          3)      wacom=1; xrandr=right ;;&lt;br /&gt;
          *)      wacom=0; xrandr=normal ;;&lt;br /&gt;
  esac&lt;br /&gt;
  &lt;br /&gt;
  echo &amp;quot;xrandr to $xrandr, xsetwacom to $wacom&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
  &lt;br /&gt;
  if xrandr --output &amp;quot;$output&amp;quot; --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
          for d in $devices&lt;br /&gt;
          do      &lt;br /&gt;
                  xsetwacom set &amp;quot;stylus&amp;quot; Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
          done&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  #workaround for linuxwacom bug&lt;br /&gt;
  if [ &amp;quot;`xsetwacom get stylus Mode`&amp;quot; == '1' ]; then&lt;br /&gt;
          for d in $devices&lt;br /&gt;
          do      &lt;br /&gt;
                  xsetwacom set stylus CoreEvent &amp;quot;off&amp;quot;&lt;br /&gt;
                  xsetwacom set stylus Mode &amp;quot;off&amp;quot;&lt;br /&gt;
          done&lt;br /&gt;
          { sleep 1;&lt;br /&gt;
          for d in $devices&lt;br /&gt;
          do      &lt;br /&gt;
                  xsetwacom set stylus Mode &amp;quot;on&amp;quot;&lt;br /&gt;
                  xsetwacom set stylus CoreEvent &amp;quot;on&amp;quot;&lt;br /&gt;
          done; } &amp;amp;&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
--[[User:Gtx|Gtx]] 13:34, 22 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
modified script for linuxwacom 0.8.1-1.&lt;br /&gt;
 &lt;br /&gt;
   #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 output=&amp;quot;(normal left inverted right)&amp;quot; #LVDS&lt;br /&gt;
  # if [ &amp;quot;$XROT_OUTPUT&amp;quot; ]&lt;br /&gt;
  # then     &lt;br /&gt;
  #         output=$XROT_OUTPUT;&lt;br /&gt;
  # fi&lt;br /&gt;
 devices=&amp;quot;stylus cursor&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 geomnbr=0&lt;br /&gt;
 xrandr=normal&lt;br /&gt;
 wacom=normal&lt;br /&gt;
 if [ &amp;quot;$1&amp;quot; == &amp;quot;-&amp;quot; ] || [ &amp;quot;$1&amp;quot; == &amp;quot;+&amp;quot; ] || ! [ &amp;quot;$1&amp;quot; ];&lt;br /&gt;
 then    &lt;br /&gt;
         operator=&amp;quot;$1&amp;quot;;&lt;br /&gt;
         [ &amp;quot;$1&amp;quot; ] || operator='+';&lt;br /&gt;
         case `xrandr --verbose | grep &amp;quot;$output&amp;quot; | sed &amp;quot;s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/&amp;quot;` in&lt;br /&gt;
                 normal)         geom=0;;&lt;br /&gt;
                 left)          geom=1;;&lt;br /&gt;
                 inverted)       geom=2;;&lt;br /&gt;
                 right)          geom=3;;&lt;br /&gt;
         esac&lt;br /&gt;
         let geom=${geom}${operator}1+4&lt;br /&gt;
         let geom=${geom}%4	&lt;br /&gt;
 else    &lt;br /&gt;
         geom=&amp;quot;$1&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 case $geom in&lt;br /&gt;
         1)      wacom=2; xrandr=left ;;&lt;br /&gt;
         2)      wacom=3; xrandr=inverted ;;&lt;br /&gt;
         3)      wacom=1; xrandr=right ;;&lt;br /&gt;
         *)      wacom=0; xrandr=normal ;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;xrandr to $xrandr, xsetwacom to $wacom&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
 &lt;br /&gt;
 if xrandr -o &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
         for d in $devices&lt;br /&gt;
         do      &lt;br /&gt;
                 xsetwacom set &amp;quot;stylus&amp;quot; Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
         done&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 #workaround for linuxwacom bug&lt;br /&gt;
 if [ &amp;quot;`xsetwacom get stylus Mode`&amp;quot; == '1' ]; then&lt;br /&gt;
         for d in $devices&lt;br /&gt;
         do      &lt;br /&gt;
                 xsetwacom set stylus CoreEvent &amp;quot;off&amp;quot;&lt;br /&gt;
                 xsetwacom set stylus Mode &amp;quot;off&amp;quot;&lt;br /&gt;
         done&lt;br /&gt;
         { sleep 1;&lt;br /&gt;
         for d in $devices&lt;br /&gt;
         do      &lt;br /&gt;
                 xsetwacom set stylus Mode &amp;quot;on&amp;quot;&lt;br /&gt;
                 xsetwacom set stylus CoreEvent &amp;quot;on&amp;quot;&lt;br /&gt;
         done; } &amp;amp;&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:radix|radix]] 13:15, 28 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Additional code for rotating the 4 navigation keys on the display frame.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 case $geom in&lt;br /&gt;
         1)      xmodmap -e 'keycode 98 = Right';xmodmap -e 'keycode 100 = Up';xmodmap -e 'keycode 102 = Down';xmodmap -e 'keycode 104 = Left';;&lt;br /&gt;
         2)      xmodmap -e 'keycode 98 = Down';xmodmap -e 'keycode 100 = Right';xmodmap -e 'keycode 102 = Left';xmodmap -e 'keycode 104 = Up';;&lt;br /&gt;
         3)      xmodmap -e 'keycode 98 = Left';xmodmap -e 'keycode 100 = Down';xmodmap -e 'keycode 102 = Up';xmodmap -e 'keycode 104 = Right';;&lt;br /&gt;
         *)      xmodmap -e 'keycode 98 = Up';xmodmap -e 'keycode 100 = Left';xmodmap -e 'keycode 102 = Right';xmodmap -e 'keycode 104 = Down';;&lt;br /&gt;
 esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:Papertiger|Papertiger]] 02:05, 16 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
If the stylus still doesn't work try to reset the bios. This fixed it for me. --[[User:Gtx|Gtx]] 08:22, 21 April 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Models featuring this Device==&lt;br /&gt;
*ThinkPad {{X41_Tablet}}&lt;br /&gt;
*ThinkPad {{X60_Tablet}}&lt;br /&gt;
*ThinkPad {{X61_Tablet}}&lt;br /&gt;
*ThinkPad {{X200_Tablet}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Papertiger</name></author>
		
	</entry>
</feed>