Linux on the Lenovo ThinkPad X60 Tablet

Last updated: 2009.04.24

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 have installed kubuntu gutsy 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!

Recent updates:

04.24 Upgrade to Jaunty was a bit rough. Here is the summary:
  • Major graphics driver issues can be fixed by following these instructions. The instructions mention some MTRR fixes which were not necessary on my system. Graphics are nice and snappy after this fix; however, I recommend just waiting until the bug is fixed before upgrading.
  • If you install kernel 2.6.30 to fix the graphics issues, you might have trouble using ndiswrapper for wireless. However: the ath5k driver (which should be enabled by default) _seems_ to be working. We'll see.
  • Several people have reported issues with detecting screen swivel events in both intrepid and jaunty. I don't currently have a fix for these.
  • X has switched fully to using hal to configure its input devices instead of xorg.conf. This breaks my rotate script, and I haven't had time to address it yet.
09.26 orientation sensor is now much easier to get running
02.01 Bugfixes to rotate script. Thanks Dok and Jesse!
01.18 Rotate script with auto orientation is up. Thanks to Daniel Mendler for the original fork-and-moitor code!
Notes for users with b0rken pens
12.30 Added more information on getting HDAPS to work. New rotate script with orientation sensing coming soon..
12.04 Updated information on getting multiple screens to work (this is really easy in Gutsy)
11.30 Fixed rotate script to correctly detect xauth files in multiple distros and login managers (please let me know if yours doesn't work)
11.18 Updated some sections for Ubuntu Gutsy
Added fix for screen corruption on resume
10.30 Added note concerning a well-publicized ubuntu bug possibly causing hard disk damage
09.19 New information about i810 drivers
I'm currently working on getting Gutsy running, I'll have more information on that soonish.
09.08 Added support for xrandr 1.2 to rotate script (thanks Wouter)
09.04 (Back from long summer, sorry if I haven't responded to your e-mail yet!)
Added more notes about multitouch screens
Added some disclaimers on the rotation script
06.06 Added support for keyboard reconfiguration to rotate script (thanks to John Johansen)
06.02 Added tentative solution to suspend woes
05.30 Added fix for orientation sensor
Added fix for external VGA (thanks Peter)
Added notes about multitouch screens

Other Resources

Overview - what works, what doesn't. Click each item for more information.

Intel Core Duo (looks like 2 CPUs)
SATA Hard Drive
Sound
Display X.org + AIGLX acceleration
External VGA
Input Pen
Touch screen
Trackpoint
Special keys
Fingerprint Reader
Networking Wired ethernet
Wireless
Others
External Connections USB
Firewire
Secure Digital
PCMCIA
ACPI Power Management
Suspend and Hibernate
Extra Features 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 Hardware

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)
      

Hard Drive

Many people have reported frequent "clunking" sounds from their laptop hard drive under Ubuntu. This is caused by aggressive power management settings set by the manufacturer and frequent disk accesses in Ubuntu, and may cause shortened disk lifespan. See here for a lengthy discussion: https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695.

..and here for workarounds: https://wiki.ubuntu.com/DanielHahler/Bug59695

I also recommend disabling atime for your disk, as this will reduce disk usage and save power:

Display

Input Devices

TrackPoint
Wacom Pen
If you're running Gutsy or Feisty, there's a good chance your pen already works. Some people have reported trouble, though. You may need to make some minor changes to your xorg.conf, but the drivers and software should work. Note: See below for multitouch screens. See here for older instructions on manualling installing wacom drivers (for Edgy).

For those who have trouble with your tablet, I recommend reading through the linux-wacom project howto. Most of the instructions there do not apply to ubuntu users--kernel drivers and software installation are probably already taken care of. However, there is good information on how to troubleshoot your tablet so know where to look.
In particular, see:

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.

Known problems:

Touchscreen (multitouch) I do not have a multitouch screen to test, but there is some information about getting the x61 multitouch screen working on this forum: http://ubuntuforums.org/showthread.php?t=503233&page=2. There is a bug report here.

Special Keys

Many of the special function keys just work, while some must be configured in various ways. The first thing you want to do is make X configure your extra keys when you log in (note: this bit is kde specific): Run the script immediately or just log out and back in again and you will have a few more keys available to be mapped to commands using khotkeys.

Configuring keyboard shortcuts

Special/mappable keys:

Fingerprint Reader
There appear to be two ways to get the fingerpring reader working. I chose the simpler way, which unfortunately does not integrate with KDE. I'll try the long way at some point..
From http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger All this gets you is the ability to use the fingerprint reader when running sudo from a command line.

Networking

External Connections

Power Management

  • Suspend and Hibernate
  • In Gutsy, suspend works with almost no problems. There is a display driver bug (launchpad #91966) that causes a little screen corruption on resume. The fix is easy, just edit /etc/default/acpi-support and comment out the line that says "POST_VIDEO=true" (Add a "#" at the beginning of the line). Hibernate is probably fine too, but I have done various things to break it, so I can't test it.

    The story is different pre-Gutsy, though: By default the edgy/feisty system suspend scripts have some major problems on this machine:

    Please note that these problems are probably dependent on having the atheros wireless card and the SXGA resolution screen. If you don't have these, then there's a good chance suspend works just fine for you.. Otherwise, read on: My solution, which seems to be working so far, goes like this: Here's how you fix suspend in Feisty:
  • Battery
  • 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. You can improve battery life by using the ndiswrapper wireless driver and by enabling laptop mode in /etc/default/acpi-support.
  • 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
  • The hard drive is _capable_ of spinning down, but this must be enabled to work. Edit /etc/default/acpi-support and uncomment ENABLE_LAPTOP_MODE=true. (download my example). Laptop mode is enabled when the tablet is running on battery, so this is the only time you will notice the hard drive spin down on its own.
  • Fans
  • 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.

    Update:Using the ndiswrapper driver instead of the ath_pci driver (Atheros wireless cards only) reduces surface temperature significantly.

    Extra Features

    Setting up extra package repositories

    To enable the extra software repositories, edit your /etc/apt/sources.list file and uncomment the lines with "universe" in them. (see my sources.list for example). After that, run
    apt-get update
    to update your list of available software packages.

    Software

    Some software I have been using related to the tablet:

    Custom Scripts

    Rotate script - download here

    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

    Pen button switch - download here

    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)

    Contacting me

    If you have questions or would like to contribute information, contact me at
    lcampagn[you shouldn't see this]@ email. unc. edu