Linux on the Lenovo ThinkPad X60 Tablet
Last updated: 2010.05.13
My intent here is to present the current state of Linux on the X60 tablet--what works, what doesn't, and how to get things working. I currently have installed kubuntu Lucid (10.04) on my tablet, so some of the information presented here will be kubuntu specific, and some will be specific to the hardware present in my tablet. Hopefully this will serve as a guide for people interested in running Linux on this machine. Please feel free to contact me if you have more information or questions relevant to the topic!
I've just put a clean installation of Kubuntu 10.04 (Lucid) on the tablet, and I'm pretty impressed--very few problems with this release. New instructions are now available! Old instructions for 9.10 (Karmic) users are still available here. Major changes are: 1) atheros wifi driver works perfectly; no more ndiswrapper. 2) rotate and switchPenButton scripts are updated to work in Lucid (thanks Jesse!)
Updated rotate script so that 'monitor' mode now checks for the screen's swivel state. This is a workaround
for bugs that prevent the ACPI system from executing the script when the screen is swiveled. To start
the monitor, just type "rotate monitor". To stop it, type "rotate normal".
Added information on fixing volume keys and trackpoint wheel (thanks Marion!)
Uploaded new rotate and switchPenButton scripts that work in karmic.
Upgrade to Karmic was pretty smooth. Lots of updates to the page and many things removed. If you would like to see the old instructions for installing Hardy, they are still available here.
Overview - what works, what doesn't. Click each item for more information.
|Intel Core Duo (looks like 2 CPUs)
|SATA Hard Drive
||X.org + hardware acceleration|
|Suspend and Hibernate
||Detect screen swivel|
|Detect tablet orientation|
|Active hard drive protection
|Works out of the box|
|Works, some effort required|
|Partly works, some problems|
|Does not work|
|I haven't checked yet|
My model number is 6365CTO. My screen is the SXGA (1400x1050) model, and the pen component is a wacom tablet described by /sys/bus/pnp/devices/00:0b/id as "WACf004". The CPU as indicated in /proc/cpuinfo is "Intel(R) Core(TM) Duo CPU L2500 @1.83GHz". The rest of the hardware is described by the output of lspci:
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
03:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b4)
15:00.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 09)
15:00.2 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 18)
As of Kubuntu 9.10, video (including acceleration and rotation) appears to work quite well out of the box. I expect we will still see a few small bugs with the intel video drivers for some time to come, though..
The intel driver supports rotation through xrandr. Getting the pen to automatically rotate with the screen requires a little more work:
- Download my rotate script and copy into /usr/local/bin/. Make executable with
chmod 775 /usr/local/bin/rotate
- Download wacom.fdi and copy to /etc/hal/fdi/policy/ (this fixes a bug that prevents wacom-tools from working. It is not fixed until both hal and the X server are restarted (and it's easier to just reboot the machine))
- At this point you should be able to rotate the screen and pen simultaneously by running any of:
- See the keyboard section to make the rotate button work.
- Add a line to your /etc/sudoers to allow the script to remap your arrow keys on rotate:
%admin ALL=NOPASSWD: /usr/bin/setkeycodes
- Trackpoint stick
Works on install.
- Trackpoint buttons
The three trackpoint buttons work, but some configuring is required to make the middle button + trackpoint behave as a wheel: Download 20-thinkpad.conf and copy the file to /usr/lib/X11/xorg.conf.d/.
The tablet pen works perfectly on install. Woohoo!
Setting up the pen button
The button on the side of the pen acts as a middle mouse click by default. You can change this to be a left click if you wish, but I personally found that I use left and middle clicks about equally so I needed a different solution. I decided to make use of the tiny little ctrl-alt-delete button below the screen by having it run a script which switches the pen button between middle and right clicking, and flashes the power LED to indicate which is currently selected.
I do not have a multitouch screen to test, but there is some information about getting the x61 multitouch screen working on this site: https://help.ubuntu.com/community/X61T
Works, no problems.
- Wireless (Atheros 5212)
There are two wireless options for this tablet. One is the intel wireless, which presumably uses the ipw2200 driver, and the other is the "thinkpad wireless", which is an Atheros card. I have the latter. I am happy to report that the atheros driver (ath5k) now works out-of-box so there is no longer any need to use ndiswrapper.
- USB No problems
- SD No problems
- Firewire No problems
Suspend and Hibernate
Suspend works most of the time in Lucid, although it occasionally fails to resume from suspend. I haven't tested hibernate yet..
The tablet detects the battery/AC state and battery charge properly. The battery (I have a 4-cell battery, not 8) lasts 2-3 hours (Edit: my battery is now showing its age and lasts 1 hour at most :(). There are a number of things you can do to improve power consumption. See my rc.local
for the full list. I recommend playing with powertop to get a sense for what things are using power in your system.
CPU frequency scaling
Works, no problems. By default both CPU cores are scaled back to 1GHz, and increase speed under heavy load.
Hard drive spindown
Hard drive spins down on its own when the tablet is unplugged.
Fans work, no problems. They turn on automatically and maintain the core at about 55C. I wasn't sure if they were working at first because they are so quiet :)
The tablet does get fairly hot for my liking, particularly under my right palm, but this seems to be a general feature of recent thinkpad models, so I'm not sure if there's anything to be done here. The (very quiet) fan is usually running, and seems to maintain the CPU around 50C. Typically the area under my right hand is about 40C, and the same area underneath the tablet is about 50C. You can knock off a few degrees by turning off the wireless power.
- Orientation Sensor, Active Hard Drive Protection
A little work required to get the orientation sensor running:
- Screen swivel detect
Swivel detection seems to be broken.. until there is a solution, you can use my rotation script in monitor mode ("rotate monitor") to poll the sreen position and respond.
Some software I have been using related to the tablet:
- CellWriter http://risujin.org/cellwriter/ - Excellent trainable, multilanguage handwriting recognition and onscreen keyboard. I wouldn't bother with any others, but I've listed a few here:
- Onscreen keyboards (all available in apt repositories):
- klavier - Onscreen keyboard with tray icon for KDE.
- gok - For Gnome, I haven't used it..
- onscreen - python-based, probably works in KDE and Gnome.
- Journal applications
- Xournal - Journal application wihch I use mainly to annotate PDF files. Install from APT.
- See for more tablet software:
This script can be used both for manually rotating the screen and for automatically rotating when the screen is swiveled. You can easily edit the script to set the modes that are chosen on manual or automatic rotation. See the display section for instructions on automatic rotation.
The script will use hdaps to rotate the screen when in tablet mode, please read the section on setting up and calibrating hdaps. If you wish to disable this, just change the value of "tabletMode" in the rotate script to your preferred tablet-mode orientation (something besides monitor).
The script also handles remapping the arrow keys on the front panel to match the rotation, but you will need to add a line to your /etc/sudoers file to enable this:
%admin ALL=NOPASSWD: /usr/bin/setkeycodes
This script just switches the behavior of the second button on the pen between being a right click and a middle click. It also flashes the power button to indicate whether right or middle is currently selected (note this requires write access to /proc/acpi/ibm/led. You can set this by adding "chmod a+w /proc/acpi/ibm/led" to /etc/rc.local)
If you have questions or would like to contribute information, contact me at
|lcampagn||[you shouldn't see this]||@ email||. unc||. edu|