<?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=Wseltzer</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=Wseltzer"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Wseltzer"/>
	<updated>2026-05-11T04:29:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=User:Wseltzer&amp;diff=53505</id>
		<title>User:Wseltzer</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=User:Wseltzer&amp;diff=53505"/>
		<updated>2012-02-06T13:47:21Z</updated>

		<summary type="html">&lt;p&gt;Wseltzer: â†Created page with 'Longtime ThinkLinuxer.  Current models: X200t, X100e Computer museum contains: X61t, X60t, X40t'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Longtime ThinkLinuxer.&lt;br /&gt;
&lt;br /&gt;
Current models: X200t, X100e&lt;br /&gt;
Computer museum contains: X61t, X60t, X40t&lt;/div&gt;</summary>
		<author><name>Wseltzer</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Wacom_Serial_Tablet_PC_Stylus&amp;diff=53504</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=53504"/>
		<updated>2012-02-06T13:43:51Z</updated>

		<summary type="html">&lt;p&gt;Wseltzer: /* Troubleshooting */ fix for oneiric stylus&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;
==First 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;
===X-Server &amp;gt;= 1.8 (udev)===&lt;br /&gt;
since X-Server 1.8 udev is the default way to detect any wacom-tablet. on some distributions you have to add the file ''/etc/udev/rules.d/10-wacom.rules'' with following content:&lt;br /&gt;
&lt;br /&gt;
    ACTION!=&amp;quot;add|change&amp;quot;, GOTO=&amp;quot;wacom_end&amp;quot;&lt;br /&gt;
     # Match all wacom tablets with a serial ID starting with WACf or FUJ*&lt;br /&gt;
     ATTRS{id}==&amp;quot;WACf*&amp;quot; ENV{NAME}=&amp;quot;Serial Wacom Tablet&amp;quot;, ENV{ID_INPUT}=&amp;quot;1&amp;quot;, ENV{ID_INPUT_TABLET}=&amp;quot;1&amp;quot;&lt;br /&gt;
     ATTRS{id}==&amp;quot;FUJ*&amp;quot; ENV{NAME}=&amp;quot;Serial Wacom Tablet&amp;quot;, ENV{ID_INPUT}=&amp;quot;1&amp;quot;, ENV{ID_INPUT_TABLET}=&amp;quot;1&amp;quot;&lt;br /&gt;
    LABEL=&amp;quot;wacom_end&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and ''/usr/share/X11/xorg.conf.d/50-wacom'':&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;Wacom serial class identifiers&amp;quot;&lt;br /&gt;
        MatchProduct &amp;quot;WACf|WACf004|FUJ02e5|FUJ02e7&amp;quot;&lt;br /&gt;
        Driver &amp;quot;wacom&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
''thanks to the [https://wiki.archlinux.org/index.php/Wacom_Tablet#Tablet_PC_with_serial_Wacom_tablet_device_.28Xorg_.3E_1.8.29 Wacom Tablet - ArchWiki]page and [https://bbs.archlinux.org/viewtopic.php?pid=781004#p781004 this] Archlinux-Thread''&lt;br /&gt;
&lt;br /&gt;
===X-Server &amp;gt;=1.6? (hal)===&lt;br /&gt;
if HAL is configured as it should be, your wacom-tablet is working out of the box&lt;br /&gt;
&lt;br /&gt;
===older X-Server (static configuration)===&lt;br /&gt;
If you are sure, you don't want to update to a newer version, 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;
==Screen rotation for X41 and X61 tablets==&lt;br /&gt;
&lt;br /&gt;
[http://www.ziva-vatra.com/index.php?aid=56&amp;amp;id=U29mdHdhcmU= ROTgui - Python program for screen rotation].&lt;br /&gt;
&lt;br /&gt;
The above is a simple program that you bind to a key (I bound it to the &amp;quot;rotate&amp;quot; button on the screen) that will let you rotate the screen 4 ways (90, 180, 270 and 0 degrees).&lt;br /&gt;
&lt;br /&gt;
I prefer manually selecting when I want to rotate the screen because I don't want to accidentally rotate it while moving the laptop around. &lt;br /&gt;
&lt;br /&gt;
The site says it's for an X41, but I can confirm that it works on my X61 as well! (Only tried on Ubuntu, but being a Python program, it should work on other OS-es as well).&lt;br /&gt;
&lt;br /&gt;
The code also has a python module, that will allow you to script your own screen control, if you'd rather not use the GUI (or want to use keybindings/write your own interface on top of it). &lt;br /&gt;
&lt;br /&gt;
--[[User:Ogi|Ogi]] 10:05, 6 November 2010 (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;
&lt;br /&gt;
=== modified script ===&lt;br /&gt;
On my X200 Tablet i have a &amp;quot;invert&amp;quot; tablet button and a &amp;quot;flip&amp;quot; button, so i modified the the script for my needs. This scripts also works with xrandr program version 1.3.2 and xsetwacom 0.10.3 under Debian Testing (Squeeze). You can call the script with &amp;quot;./tablet.sh flip&amp;quot; or &amp;quot;./tablet.sh invert&amp;quot;. I mapped these two functions on the hardware buttons. The full Tutorial can be found on my blog: http://dominikschuermann.de/index.php/2010/05/thinkpad-x200-tablet-for-debian-testing/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# config&lt;br /&gt;
output=&amp;quot;LVDS1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# get current rotation&lt;br /&gt;
current=`xrandr --verbose | grep &amp;quot;$output&amp;quot; | sed &amp;quot;s/^[^ ]* [^ ]* [^ ]* ([^(]*) \([a-z]*\).*/\1/&amp;quot;`&lt;br /&gt;
case $current 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;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; == &amp;quot;invert&amp;quot; ] || [ &amp;quot;$1&amp;quot; == &amp;quot;flip&amp;quot; ];&lt;br /&gt;
then&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # based on current rotation set new rotation&lt;br /&gt;
  if [ &amp;quot;$1&amp;quot; == &amp;quot;invert&amp;quot; ];&lt;br /&gt;
  then&lt;br /&gt;
  &lt;br /&gt;
    # invert&lt;br /&gt;
    case $geom in&lt;br /&gt;
      0)  wacom=half; xrandr=inverted;;&lt;br /&gt;
      1)  wacom=cw; xrandr=right;;&lt;br /&gt;
      2)  wacom=none; xrandr=normal;;&lt;br /&gt;
      3)  wacom=ccw; xrandr=left;;&lt;br /&gt;
    esac&lt;br /&gt;
&lt;br /&gt;
  else&lt;br /&gt;
    &lt;br /&gt;
    # flip&lt;br /&gt;
    case $geom in&lt;br /&gt;
      0)  wacom=cw; xrandr=right;;&lt;br /&gt;
      1)  wacom=half; xrandr=inverted;;&lt;br /&gt;
      2)  wacom=ccw; xrandr=left;;&lt;br /&gt;
      3)  wacom=none; xrandr=normal;;&lt;br /&gt;
    esac&lt;br /&gt;
&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
&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;
  # rotate display&lt;br /&gt;
  xrandr -o $xrandr&lt;br /&gt;
&lt;br /&gt;
  # rotate wacom&lt;br /&gt;
  xsetwacom set &amp;quot;stylus&amp;quot; Rotate $wacom&lt;br /&gt;
  xsetwacom set &amp;quot;eraser&amp;quot; Rotate $wacom&lt;br /&gt;
  xsetwacom set &amp;quot;touch&amp;quot; Rotate $wacom&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;possible parameters: flip, invert&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--[[User:Dominiks|Dominiks]] 18:47, 17 April 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== another modified script (X41) ===&lt;br /&gt;
I'm using this script to rotate the screen on my X41 (1866-WG4). The rotation is either absolute using the arguments ''normal'', ''inverted'', ''left'' and ''right'' or relative to the current orientation using ''cw'' or ''ccw''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  &lt;br /&gt;
  xrandr=normal&lt;br /&gt;
  wacom=NONE&lt;br /&gt;
  &lt;br /&gt;
  case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  	normal)&lt;br /&gt;
  		xrandr=normal&lt;br /&gt;
  		wacom=NONE&lt;br /&gt;
  		;;&lt;br /&gt;
  	inverted)&lt;br /&gt;
  		xrandr=inverted&lt;br /&gt;
  		wacom=HALF&lt;br /&gt;
  		;;&lt;br /&gt;
  	right)&lt;br /&gt;
  		xrandr=right&lt;br /&gt;
  		wacom=CW&lt;br /&gt;
  		;;&lt;br /&gt;
  	left)&lt;br /&gt;
  		xrandr=left&lt;br /&gt;
  		wacom=CCW&lt;br /&gt;
  		;;&lt;br /&gt;
  	cw|ccw)&lt;br /&gt;
  		case `xrandr --verbose -q -o normal --dryrun | grep &amp;quot;Current rotation&amp;quot; | sed &amp;quot;s/Current\ rotation\ \-\ //g&amp;quot;` in&lt;br /&gt;
  			normal)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=right&lt;br /&gt;
  					wacom=CW&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=left&lt;br /&gt;
  					wacom=CCW&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			left)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrand=normal&lt;br /&gt;
  					wacom=NONE&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=inverted&lt;br /&gt;
  					wacom=HALF&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			inverted)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=left&lt;br /&gt;
  					wacom=CCW&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=right&lt;br /&gt;
  					wacom=CW&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			right)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=inverted&lt;br /&gt;
  					wacom=HALF&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=normal&lt;br /&gt;
  					wacom=NONE&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  		esac&lt;br /&gt;
  		;;&lt;br /&gt;
  	*)&lt;br /&gt;
  		echo &amp;quot;Usage: $0 {normal|left|right|inverted|cw|ccw}&amp;quot;&lt;br /&gt;
  		exit 1&lt;br /&gt;
  		;;&lt;br /&gt;
  esac&lt;br /&gt;
   &lt;br /&gt;
  if xrandr --output LVDS1 --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
  	xsetwacom --set stylus0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set cursor0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set eraser0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	exit 0&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  exit 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will have to change lines 69 to 73 to suit your configuration. ''LVDS1'' is the laptop screen as returned by xrandr; ''stylus0'', ''cursor0'' and ''eraser0'' are what I have called the wacom devices in my xorg.conf.&lt;br /&gt;
The software I'm using on my X41 is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $ xrandr -v&lt;br /&gt;
  xrandr program version       1.3.3&lt;br /&gt;
  Server reports RandR version 1.3&lt;br /&gt;
  &lt;br /&gt;
  $ xsetwacom -V&lt;br /&gt;
  0.10.5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I am using the ''intel'' driver for the graphics adapter; unfortunately, display rotation is &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; possible with the kernel's intel framebuffer driver and Xorg's ''fbdev''. Both xrandr and xsetwacom were installed from debian sid repositories, xsetwacom came with the ''xserver-xorg-input-wacom'' package, &amp;lt;u&amp;gt;not ''wacom-tools''&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
--[[User:mk|mk]] 16.51, 6 August 2010 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== X41 tablet with UBUNTU 10.10 ===&lt;br /&gt;
&lt;br /&gt;
On my thinkpad X41 tablet with Ubuntu 10.10 i got this message with the previous script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cannot find device 'stylus0'.&lt;br /&gt;
Cannot find device 'cursor0'.&lt;br /&gt;
Cannot find device 'eraser0'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to get it work I had to change this script a little bit (I didn't need to change or create an &amp;quot;xorg.conf&amp;quot; or anything else, I only used this script):&lt;br /&gt;
&lt;br /&gt;
1. Type in a terminal: 'xinput --list':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
maxi@maxi-ThinkPad-X41-Tablet:~$ xinput --list&lt;br /&gt;
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]&lt;br /&gt;
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]&lt;br /&gt;
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=10	[slave  pointer  (2)]&lt;br /&gt;
⎜   ↳ Serial Wacom Tablet eraser              	id=12	[slave  pointer  (2)]&lt;br /&gt;
⎜   ↳ Serial Wacom Tablet stylus              	id=13	[slave  pointer  (2)]&lt;br /&gt;
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]&lt;br /&gt;
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]&lt;br /&gt;
    ↳ Power Button                            	id=6	[slave  keyboard (3)]&lt;br /&gt;
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]&lt;br /&gt;
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]&lt;br /&gt;
    ↳ AT Translated Set 2 keyboard            	id=9	[slave  keyboard (3)]&lt;br /&gt;
    ↳ ThinkPad Extra Buttons                  	id=11	[slave  keyboard (3)]&lt;br /&gt;
maxi@maxi-ThinkPad-X41-Tablet:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So you know the id numbers of your Eraser (12) and Stylus (13)&lt;br /&gt;
&lt;br /&gt;
2. Modify the script given in this article: Instead of &amp;quot;Eraser&amp;quot; and &amp;quot;Stylus&amp;quot; use your id-numbers:&lt;br /&gt;
Change&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  if xrandr --output LVDS1 --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
  	xsetwacom --set stylus0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set cursor0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set eraser0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	exit 0&lt;br /&gt;
  fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
into&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  if xrandr --output LVDS1 --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
  	xsetwacom --set 13 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
#  	xsetwacom --set cursor0 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set 12 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	exit 0&lt;br /&gt;
  fi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So in total, you should have the following script saved in a file (for example xrandr in your homefolder /home/&amp;quot;username&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
  &lt;br /&gt;
  xrandr=normal&lt;br /&gt;
  wacom=NONE&lt;br /&gt;
  &lt;br /&gt;
  case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  	normal)&lt;br /&gt;
  		xrandr=normal&lt;br /&gt;
  		wacom=NONE&lt;br /&gt;
  		;;&lt;br /&gt;
  	inverted)&lt;br /&gt;
  		xrandr=inverted&lt;br /&gt;
  		wacom=HALF&lt;br /&gt;
  		;;&lt;br /&gt;
  	right)&lt;br /&gt;
  		xrandr=right&lt;br /&gt;
  		wacom=CW&lt;br /&gt;
  		;;&lt;br /&gt;
  	left)&lt;br /&gt;
  		xrandr=left&lt;br /&gt;
  		wacom=CCW&lt;br /&gt;
  		;;&lt;br /&gt;
  	cw|ccw)&lt;br /&gt;
  		case `xrandr --verbose -q -o normal --dryrun | grep &amp;quot;Current rotation&amp;quot; | sed &amp;quot;s/Current\ rotation\ \-\ //g&amp;quot;` in&lt;br /&gt;
  			normal)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=right&lt;br /&gt;
  					wacom=CW&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=left&lt;br /&gt;
  					wacom=CCW&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			left)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrand=normal&lt;br /&gt;
  					wacom=NONE&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=inverted&lt;br /&gt;
  					wacom=HALF&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			inverted)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=left&lt;br /&gt;
  					wacom=CCW&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=right&lt;br /&gt;
  					wacom=CW&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			right)&lt;br /&gt;
  				if [ &amp;quot;$1&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=inverted&lt;br /&gt;
  					wacom=HALF&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=normal&lt;br /&gt;
  					wacom=NONE&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  		esac&lt;br /&gt;
  		;;&lt;br /&gt;
  	*)&lt;br /&gt;
  		echo &amp;quot;Usage: $0 {normal|left|right|inverted|cw|ccw}&amp;quot;&lt;br /&gt;
  		exit 1&lt;br /&gt;
  		;;&lt;br /&gt;
  esac&lt;br /&gt;
   &lt;br /&gt;
  if xrandr --output LVDS1 --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
  	xsetwacom --set 13 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
#  	xsetwacom --set cursor Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set 12 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	exit 0&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  exit 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you saved it as &amp;quot;xrandr&amp;quot;, open a terminal, go to the folder, in which you saved &amp;quot;xrandr&amp;quot;, and type&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chmod +x xrandr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
in order to be able to use this script with typing in an terminal&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./xrandr right&lt;br /&gt;
./xrandr normal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--[[User:klob]] 11.40, 24 October 2010 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to easily switch between two orientations, you can use the following script. You can assign this script to the corresponding button on the tablet. It os working on my Thinkpad X61 tablet. If you remove the &amp;quot;yes&amp;quot; after flipflop= the script works as the script above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# wether to run in flipflop-Mode. Leave blank if not.&lt;br /&gt;
# In flipflop mode you can easily switch between two preferred orientations.&lt;br /&gt;
#&lt;br /&gt;
flipflop=yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
par=$1&lt;br /&gt;
semaphore=/tmp/rotate.sem&lt;br /&gt;
if [ -n &amp;quot;$flipflop&amp;quot; ]; then&lt;br /&gt;
  # only if variable $flipflop is set&lt;br /&gt;
  if [ -f $semaphore ]; then &lt;br /&gt;
    # semaphore exists&lt;br /&gt;
    rm $semaphore&lt;br /&gt;
    par=normal&lt;br /&gt;
  else&lt;br /&gt;
    # semaphore dont exist -&amp;gt; create it&lt;br /&gt;
    touch $semaphore&lt;br /&gt;
    par=right&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  xrandr=normal&lt;br /&gt;
  wacom=NONE&lt;br /&gt;
  &lt;br /&gt;
  case &amp;quot;$par&amp;quot; in&lt;br /&gt;
  	normal)&lt;br /&gt;
  		xrandr=normal&lt;br /&gt;
  		wacom=NONE&lt;br /&gt;
  		;;&lt;br /&gt;
  	inverted)&lt;br /&gt;
  		xrandr=inverted&lt;br /&gt;
  		wacom=HALF&lt;br /&gt;
  		;;&lt;br /&gt;
  	right)&lt;br /&gt;
  		xrandr=right&lt;br /&gt;
  		wacom=CW&lt;br /&gt;
  		;;&lt;br /&gt;
  	left)&lt;br /&gt;
  		xrandr=left&lt;br /&gt;
  		wacom=CCW&lt;br /&gt;
  		;;&lt;br /&gt;
  	cw|ccw)&lt;br /&gt;
  		case `xrandr --verbose -q -o normal --dryrun | grep &amp;quot;Current rotation&amp;quot; | sed &amp;quot;s/Current\ rotation\ \-\ //g&amp;quot;` in&lt;br /&gt;
  			normal)&lt;br /&gt;
  				if [ &amp;quot;$par&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=right&lt;br /&gt;
  					wacom=CW&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=left&lt;br /&gt;
  					wacom=CCW&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			left)&lt;br /&gt;
  				if [ &amp;quot;$par&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrand=normal&lt;br /&gt;
  					wacom=NONE&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=inverted&lt;br /&gt;
  					wacom=HALF&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			inverted)&lt;br /&gt;
  				if [ &amp;quot;$par&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=left&lt;br /&gt;
  					wacom=CCW&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=right&lt;br /&gt;
  					wacom=CW&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  			right)&lt;br /&gt;
  				if [ &amp;quot;$par&amp;quot; = &amp;quot;cw&amp;quot; ]; then&lt;br /&gt;
  					xrandr=inverted&lt;br /&gt;
  					wacom=HALF&lt;br /&gt;
  				else&lt;br /&gt;
  					xrandr=normal&lt;br /&gt;
  					wacom=NONE&lt;br /&gt;
  				fi&lt;br /&gt;
  				;;&lt;br /&gt;
  		esac&lt;br /&gt;
  		;;&lt;br /&gt;
  	*)&lt;br /&gt;
  		echo $flipflop&lt;br /&gt;
  		if [ -z $flipflop ]; then&lt;br /&gt;
  			# only if variable flipflop is not set&lt;br /&gt;
	  		echo &amp;quot;Usage: $0 {normal|left|right|inverted|cw|ccw}&amp;quot;&lt;br /&gt;
  			exit 1&lt;br /&gt;
  		fi&lt;br /&gt;
  		;;&lt;br /&gt;
  esac&lt;br /&gt;
   &lt;br /&gt;
  if xrandr --output LVDS1 --rotate &amp;quot;$xrandr&amp;quot;; then&lt;br /&gt;
  	xsetwacom --set 13 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
#  	xsetwacom --set cursor Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	xsetwacom --set 12 Rotate &amp;quot;$wacom&amp;quot;&lt;br /&gt;
  	exit 0&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  exit 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--[[User:dcjfm]] 10.20, 23 November 2010 (CEST):&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;
Ubuntu 11.10 (Oneiric Ocelot): &lt;br /&gt;
Per the thread at [http://ubuntuforums.org/showthread.php?t=1862595 Ubuntuforums], comment out or remove /lib/udev/rules.d/40-inputattach.rules to get the stylus functioning.&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/magick-rotation Magick-Rotation] is useful for auto-rotating the screen  but may require switching the cw / ccw notations to match the stylus orientation to that of the screen ([https://answers.launchpad.net/magick-rotation/+question/174153 bug]). --[[User:wseltzer|wseltzer]]&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>Wseltzer</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Intel_Graphics_Media_Accelerator_950&amp;diff=30055</id>
		<title>Intel Graphics Media Accelerator 950</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Intel_Graphics_Media_Accelerator_950&amp;diff=30055"/>
		<updated>2007-05-24T20:05:40Z</updated>

		<summary type="html">&lt;p&gt;Wseltzer: /* ThinkPads this chip may be found in */&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;
=== Intel Graphics Media Accelerator 950 ===&lt;br /&gt;
This is an Intel video adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Integrated into the following chipsets:&lt;br /&gt;
** [[Intel 945GM]]&lt;br /&gt;
* PCI ID: 8086:27a2&lt;br /&gt;
* Uses up to 224MB of main memory for video usage&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;
Supported by Xorg http://www.xfree86.org/current/i810.4.html. The driver supports hardware accelerated 3D via the Direct Rendering Infrastructure (DRI), but only in depths 16 and 24.&lt;br /&gt;
&lt;br /&gt;
=== Linux Intel driver ===&lt;br /&gt;
There is a Graphics driver for the Mobile IntelÂ® 945GM Express Chipset Family at [http://downloadfinder.intel.com/scripts-df-external/filter_results.aspx?strTypes=all&amp;amp;ProductID=2301&amp;amp;OSFullName=Linux*&amp;amp;lang=eng&amp;amp;strOSs=39&amp;amp;submit=Go%21 Intels Support Site]. This driver is just a snapshot of the Xorg/XFree86 driver.&lt;br /&gt;
&lt;br /&gt;
In my case, the i810 driver recommended by multiple sources for this graphics card did not work, leaving a message of &amp;quot;No device found.&amp;quot; Running against the generic vesa drivers solves that problem, but does not allow use of the external VGA port.&lt;br /&gt;
&lt;br /&gt;
In Fedora Core 5 at least, the correct i810 driver can be obtained from the updates (in updates-testing as of Aug 15, 2006). With that, the i810 driver seems to work.&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;
Works.  Dualhead is supported.  &lt;br /&gt;
&lt;br /&gt;
There are two options for running the external VGA port - either as a copy of the LCD (clone) or as a separate workspace. Here is an example for the separate workspace mode for xorg.conf for the X60s:&lt;br /&gt;
    Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;Intel Corporation Mobile Integrated Graphics Controller&amp;quot;&lt;br /&gt;
        Driver          &amp;quot;i810&amp;quot;&lt;br /&gt;
        BusID           &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
        Option &amp;quot;MonitorLayout&amp;quot; &amp;quot;CRT,LFP&amp;quot;&lt;br /&gt;
        Option &amp;quot;DevicePresence&amp;quot; &amp;quot;true&amp;quot; &lt;br /&gt;
        Screen 1&lt;br /&gt;
    EndSection&lt;br /&gt;
    Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;Intel Corporation Mobile Integrated Graphics Controller External CRT&amp;quot;&lt;br /&gt;
        Driver          &amp;quot;i810&amp;quot;&lt;br /&gt;
        BusID           &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
        Screen 0&lt;br /&gt;
    EndSection&lt;br /&gt;
    Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;LCD&amp;quot;&lt;br /&gt;
        Option          &amp;quot;DPMS&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;External CRT&amp;quot;&lt;br /&gt;
        Option          &amp;quot;DPMS&amp;quot;&lt;br /&gt;
        HorizSync 28-75&lt;br /&gt;
        VertRefresh 43-100&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier      &amp;quot;External Screen&amp;quot;&lt;br /&gt;
        Device          &amp;quot;Intel Corporation Mobile Integrated Graphics Controller External CRT&amp;quot;&lt;br /&gt;
        Monitor         &amp;quot;External CRT&amp;quot;&lt;br /&gt;
        DefaultDepth    24&lt;br /&gt;
        SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
                Depth           24&lt;br /&gt;
                Modes           &amp;quot;1280x1024&amp;quot;&lt;br /&gt;
        EndSubSection&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;Intel Corporation Mobile Integrated Graphics Controller&amp;quot;&lt;br /&gt;
        Monitor         &amp;quot;LCD&amp;quot;&lt;br /&gt;
        DefaultDepth    24&lt;br /&gt;
        SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
                Depth           1&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;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;
        Screen          1 &amp;quot;External Screen&amp;quot; RightOf &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;
Did not work for me (FC6, x60s) but this one did:&lt;br /&gt;
(as the x-server crashes at startup if the external port is the primary display you need to change the bios option BIOS&amp;gt;Config&amp;gt;Display&amp;gt;Boot Display Device to &amp;quot;ThinkPad LCD&amp;quot;)&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;
  Option         &amp;quot;Xinerama&amp;quot;&lt;br /&gt;
  Screen      0  &amp;quot;Screen0&amp;quot; 0 0&lt;br /&gt;
  Screen      1  &amp;quot;Screen1&amp;quot; LeftOf &amp;quot;Screen0&amp;quot;&lt;br /&gt;
  InputDevice    &amp;quot;Keyboard0&amp;quot; &amp;quot;CoreKeyboard&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;InputDevice&amp;quot;&lt;br /&gt;
  Identifier  &amp;quot;Keyboard0&amp;quot;&lt;br /&gt;
  Driver      &amp;quot;kbd&amp;quot;&lt;br /&gt;
  Option	    &amp;quot;XkbModel&amp;quot; &amp;quot;pc105&amp;quot;&lt;br /&gt;
  Option	    &amp;quot;XkbLayout&amp;quot; &amp;quot;de&amp;quot;&lt;br /&gt;
  Option	    &amp;quot;XkbVariant&amp;quot; &amp;quot;nodeadkeys&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
  Identifier   &amp;quot;Monitor2&amp;quot;&lt;br /&gt;
  ModelName    &amp;quot;Belinea 1905 G1&amp;quot;&lt;br /&gt;
  HorizSync    30.0 - 83.0&lt;br /&gt;
  VertRefresh  50.0 - 76.0&lt;br /&gt;
  Option	    &amp;quot;dpms&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
  Identifier  &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
  Driver      &amp;quot;i810&amp;quot;&lt;br /&gt;
  BusID       &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
  Option      &amp;quot;MonitorLayout&amp;quot; &amp;quot;CRT,LFP&amp;quot;&lt;br /&gt;
  Option      &amp;quot;DevicePresence&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
  Screen      0&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;Screen0&amp;quot;&lt;br /&gt;
  Device     &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
  DefaultDepth     24&lt;br /&gt;
  SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
   Viewport   0 0&lt;br /&gt;
   Depth     24&lt;br /&gt;
   Modes    &amp;quot;1024x768&amp;quot; &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&lt;br /&gt;
  EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
  Identifier  &amp;quot;Videocard1&amp;quot;&lt;br /&gt;
  Driver      &amp;quot;i810&amp;quot;&lt;br /&gt;
  BusID       &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
  Option      &amp;quot;MonitorLayout&amp;quot; &amp;quot;CRT,LFP&amp;quot;&lt;br /&gt;
  Option      &amp;quot;DevicePresence&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
  Screen      1&lt;br /&gt;
 EndSection&lt;br /&gt;
 &lt;br /&gt;
 Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
  Identifier &amp;quot;Screen1&amp;quot;&lt;br /&gt;
  Device     &amp;quot;Videocard1&amp;quot;&lt;br /&gt;
  DefaultDepth     24&lt;br /&gt;
  SubSection &amp;quot;Display&amp;quot;&lt;br /&gt;
   Viewport   0 0&lt;br /&gt;
   Depth     24&lt;br /&gt;
   Modes    &amp;quot;1280x1024&amp;quot; &amp;quot;1024x768&amp;quot; &amp;quot;800x600&amp;quot; &amp;quot;640x480&amp;quot;&lt;br /&gt;
  EndSubSection&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
Here is the relevant text for running the VGA port as a true clone (so even things like Xine video playback appears on both screens) of the internal LCD display:&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Device&amp;quot;&lt;br /&gt;
         Identifier &amp;quot;Videocard0&amp;quot;&lt;br /&gt;
         Driver &amp;quot;i810&amp;quot;&lt;br /&gt;
         BusID &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
         Option &amp;quot;MonitorLayout&amp;quot; &amp;quot;NONE,LFP+CRT&amp;quot;&lt;br /&gt;
         Option &amp;quot;DevicePresence&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
         Option &amp;quot;CheckLid&amp;quot; &amp;quot;false&amp;quot;&lt;br /&gt;
         VendorName &amp;quot;Lenovo&amp;quot;&lt;br /&gt;
         BoardName &amp;quot;Intel Corporation Mobile Integrated Graphics Controller&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
== comment ==&lt;br /&gt;
&lt;br /&gt;
I had to disable dri and glx because of X11 crashes with programs using 3D.&lt;br /&gt;
see http://ubuntuforums.org/showthread.php?t=289763&lt;br /&gt;
&lt;br /&gt;
==== Unsupported video modes ====&lt;br /&gt;
Largest video resolution, supported by VESA for T60 is 1280x1024. You can set that for console in grub or lilo by adding vga=794 option.&lt;br /&gt;
&lt;br /&gt;
Default video modes does not support resolution 1400x1050. You can use [http://www.geocities.com/stomljen/ 915resolution] to change that.&lt;br /&gt;
&lt;br /&gt;
 # To show supported video modes:&lt;br /&gt;
 915resolution -l&lt;br /&gt;
 &lt;br /&gt;
 # To add 1400x1050 support:&lt;br /&gt;
 915resolution 5a 1400 1050&lt;br /&gt;
 &lt;br /&gt;
 # You may need to specify 24-bit color:&lt;br /&gt;
 915resolution 38 1400 1050 24&lt;br /&gt;
&lt;br /&gt;
Xorg will be able to use this resolution after that.&lt;br /&gt;
&lt;br /&gt;
==== SVideo port ====&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
==== DVI port ====&lt;br /&gt;
DVI passthrough is only supported on the T60.&lt;br /&gt;
&lt;br /&gt;
Linux support status is unknown&lt;br /&gt;
&lt;br /&gt;
==== Suspend behaviour ====&lt;br /&gt;
* Required kernel parameters for suspend to ram: none&lt;br /&gt;
* Additional notes: &lt;br /&gt;
** switch to/from X11 to reinitialize display properly (stays black)&lt;br /&gt;
** DO NOT use vbetool to save/restore the video mode, this breakes resume!&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this chip may be found in ===&lt;br /&gt;
* {{R60}}&lt;br /&gt;
* {{T60}}&lt;br /&gt;
* {{X60}}, {{X60s}}, {{X60t}}&lt;br /&gt;
* {{Z61t}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Wseltzer</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Ipw3945&amp;diff=30054</id>
		<title>Ipw3945</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Ipw3945&amp;diff=30054"/>
		<updated>2007-05-24T20:00:31Z</updated>

		<summary type="html">&lt;p&gt;Wseltzer: /* ThinkPads this card may be found in */&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;
=== Intel PRO/Wireless 3945ABG Mini-PCI Express Adapter ===&lt;br /&gt;
This is a Mini-PCI Express WiFi Adapter&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Chipset: Intel WM3945AG&lt;br /&gt;
* IEEE Standards: 802.11a, 802.11b, 802.11g&lt;br /&gt;
* PCI ID: 8086:4227&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
[[image:3945abg.jpg|Mini-PCI WiFi Adapter]]&lt;br /&gt;
|}&lt;br /&gt;
=== IBM Partnumbers ===&lt;br /&gt;
41A4068 (From [http://www.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-62764 Wireless &amp;amp; networking accessories - ThinkPad T60/p])&lt;br /&gt;
&lt;br /&gt;
{{NOTE| Only the IBM Parts will work, any other parts will give an 1802 error on Post because the sub-vendor PCI ID is different, see [[Problem with unauthorized MiniPCI network card]] for more details}}&lt;br /&gt;
&lt;br /&gt;
=== Also known (in IBM literature) as.... ===&lt;br /&gt;
* From [http://www.ibm.com/common/ssi/rep_ca/8/897/ENUS106-068/ENUS106-068.PDF announcement letter 106-068], 'Intel PRO/Wireless 3945ABG8 wireless connection'&lt;br /&gt;
&lt;br /&gt;
=== Hardware switch ===&lt;br /&gt;
&lt;br /&gt;
Some ThinkPads have a hardware switch that must be in the '''on''' position for the radio to work, regardless of driver state:&lt;br /&gt;
&lt;br /&gt;
[[Image:Wireless-switch.png|(ThinkPad R60 radio switch in the ON position)]]&lt;br /&gt;
&lt;br /&gt;
=== Packages ===&lt;br /&gt;
*{{Fedora}} &lt;br /&gt;
** Packages: http://www.atrpms.net/dist/fc5/ipw3945&lt;br /&gt;
** Helpful Thread: http://www.linuxquestions.org/questions/showthread.php?t=436357&lt;br /&gt;
** ATrpms yum repo rpm: http://atrpms.net/dist/common/atrpms/atrpms-67-1.at.noarch.rpm.html&lt;br /&gt;
** '''NOTE:''' The T60p uses the smp kernel which the ipw3945 yum install does not provide.  You will need the smp kernel for your architecture found at http://www.atrpms.net/dist/fc5/ipw3945.  Remove the non-smp kernel and replace it with the appropriate smp kernel.  Wireless works great for me... --[[User:Herlo|Herlo]] 18:06, 22 June 2006 (CEST)&lt;br /&gt;
*{{Mandriva}} &lt;br /&gt;
** Mandriva's kernel comes with the ipw3945 module (since at least 2006.0 Update One)&lt;br /&gt;
** dkms package (dkms-ipw3945) can be found in contrib (currenlty cooker only, thus will probably be in 2007.0)&lt;br /&gt;
** Additional Packages: ipw3945d and ipw3945-ucode, both either available in the commercial distribution (or club) or from http://plf.zarb.org/&lt;br /&gt;
*{{Gentoo}}&lt;br /&gt;
** The net-wireless/ipw3945 package contains everything you need&lt;br /&gt;
*{{Debian}}&lt;br /&gt;
** The ipw3945 microcode is available in the [http://packages.debian.org/testing/admin/firmware-ipw3945 firmware-ipw3945] package (currently in testing and unstable (same versions)).&lt;br /&gt;
** The ipw3945 regulatory daemon is available in the [http://packages.debian.org/testing/net/ipw3945d ipw3945d] package (currently in testing and unstable (same versions)).&lt;br /&gt;
** The ipw3945 module source is available in the [http://packages.debian.org/testing/net/ipw3945-source ipw3945-source] package (currently in testing and unstable (same versions)).&lt;br /&gt;
** '''DEPRECIATED:''' Unofficial packages are available from [http://ace-host.stuart.id.au/russell/files/debian/sarge/ipw3945/ Russell Stuart], [http://kanotix.com/files/debian/pool/contrib/i/ Stefan Lippers-Hollmann], and [http://www.joachim-reichel.de/debian/sid/ Joachim Reichel].&lt;br /&gt;
* [[OpenBSD]]&lt;br /&gt;
** Supported with the [http://www.openbsd.org/cgi-bin/man.cgi?query=wpi wpi] driver in 4.0.&lt;br /&gt;
* [[Ubuntu]] &lt;br /&gt;
** Works out of the box in edgy. Requires ''restricted'' repository.&lt;br /&gt;
&lt;br /&gt;
=== Linux WiFi driver ===&lt;br /&gt;
The most recent revision of the Intel Centrino platform utilizes a new generation of wireless networking device connected to the system via '''PCI-E''', and not PCI (like the [[ipw2200]]-line used to do). Therefore, a new driver must be used. A sourceforge-project supporting the new cards is available at [http://ipw3945.sourceforge.net/ http://ipw3945.sourceforge.net/]. However, as of today, the project's code ([http://downloadfinder.intel.com/scripts-df-external/detail_desc.aspx?ProductID=2259&amp;amp;DwnldID=10315&amp;amp;agr=Y Stable Release 1.2.0]) depends on a '''binary-only, proprietary''' user-space-daemon communicating with the driver via sysfs. It is '''not possible''' to operate this device with Free Software exclusively at the moment. The license-terms the daemon is released under prohibit reverse-engineering of the communication-protocol; this will hopefully not hold developers outside the US, where clauses like this one are not enforceable, from re-implementing a free variant of some sort.&lt;br /&gt;
==== External Discussion ====&lt;br /&gt;
This issue already sparked discussions on the [http://lkml.org/ Linux Kernel Mailing List], accessible via [http://lkml.org/lkml/2006/2/24/266 http://lkml.org/lkml/2006/2/24/266].&lt;br /&gt;
&lt;br /&gt;
There is also a very revealing [http://kerneltrap.org/node/6650 interview] with the author of the OpenBSD driver for the 3945, in which it comes out that Intel has lied (at least by omission) about the purpose of the &amp;quot;regulatory daemon&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Current State ====&lt;br /&gt;
The [[ipw2200]]-drivers in kernel 2.6.15 (and possibly later) do '''not''' work with this adapter. There is '''no mainline-kernel support''' at the moment, and without a change in the license of the required user-space-daemon, or mechanics of the code itself, '''probably''' will never be any.&lt;br /&gt;
&lt;br /&gt;
==== Some comments ====&lt;br /&gt;
ipw3945 works with [http://ipw3945.sourceforge.net/ http://ipw3945.sourceforge.net/] drivers. &lt;br /&gt;
A Spanish summary, but easy to understand about how to install:&lt;br /&gt;
[http://www.esdebian.org/forum/viewtopic.php?forum=18&amp;amp;showtopic=69543 esDebian Forum], maxim_o message (longer)&lt;br /&gt;
&lt;br /&gt;
Thinkpad topic: on ThinkPads like the Z60 that have one. remember to put the wireless switch in the on state! But you will not be able to enable the Wireless LED with Fn+F5, it is not a problem.&lt;br /&gt;
&lt;br /&gt;
One more comment: if you want monitor mode (e.g for use with Kismet or other network sniffers), you need to uncomment CONFIG_IPW3945_MONITOR=y line from ipw3945-1.1.0 Makefile.&lt;br /&gt;
&lt;br /&gt;
=== ThinkPads this card may be found in ===&lt;br /&gt;
* {{T43}}, {{T43p}} as an external ExpressCard&lt;br /&gt;
* {{R60}}&lt;br /&gt;
* {{T60}}, {{T60p}}&lt;br /&gt;
* {{X60}}, {{X60s}}, {{X60t}}&lt;br /&gt;
* {{Z61e}}, {{Z61m}}, {{Z61t}}, {{Z61p}}&lt;br /&gt;
* Lenovo 300 {{N100}}&lt;br /&gt;
[[Category:Components]]&lt;/div&gt;</summary>
		<author><name>Wseltzer</name></author>
		
	</entry>
</feed>