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!
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
|
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)
I also recommend disabling atime for your disk, as this will reduce disk usage and save power:
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:
- 3.1 - Testing Tablet Detection
- 4.0 - Using wacdump (please heed warnings about running wacdump and X at the same time, this may crash your machine)
The correct wacdump command for these tablets is "wacdump -f tpc /dev/ttyS0"
- 6.0 - Using xidump
- 7.0 - Tablet PC
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:
- After an hour or two of the tablet being on, the pen will stop working properly :( I have reported this as a bug to the linuxwacom developers, although I'm not sure what the exact problem is. Update: this problem seems to occur much less frequently after doing a bios upgrade (?) hopefully it won't come back..
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
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
- Download latest thinkfinger from thinkfinger.sourceforge.net (I use 0.2.2)
- install some extra stuff:
# apt-get install libpam-dev libusb-dev
- Extract/build thinkfinger
$ tar -xzf thinkfinger-0.2.2.tar.gz
$ cd thinkfinger-0.2.2/
$ ./configure --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger
- Configure PAM:
/etc/pam.d/common-auth
auth sufficient pam_thinkfinger.so
auth required pam_unix.so nullok_secure try_first_pass
# mkdir /etc/pam_thinkfinger
# tf-tool --add-user username
All this gets you is the ability to use the fingerprint reader when running sudo from a command line.
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:
- The i810 video drivers included in ubuntu edgy/feisty contain a bug that causes an X lockup when you try to resume from suspend or hibernate. This problem exists in both edgy and feisty, and numerous bug reports have been filed. freedesktop.org #10798, Launchpad #28326
- i810 has another bug which causes artifacts to be drawn on the screen after resuming from suspend. I believe this bug only applies to the SXGA models. freedesktop.org #8395, Launchpad #91966
- Sometimes the system just hangs instead of suspending. I believe this is caused by a bug in the ndiswrapper driver. Launchpad #110825
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:
- Allow normal system scripts to handle suspend calls and run all suspend/resume scripts
- Use s2ram to handle saving/restoring video state and actually suspending the machine
- Leave the ndiswrapper in the kernel over suspend and remove/reinsert on resume
Here's how you fix suspend in
Feisty:
- Edit /etc/default/acpi-support to disable video state saving (SAVE_VBE_STATE, POST_VIDEO, SAVE_VIDEO_PCI_STATE) and to leave ndiswrapper in the kernel (MODULES_WHITELIST). You can look at my example for details. If you have the intel wireless card, you can skip anything here involving ndiswrapper.
- Edit a new file /etc/acpi/resume.d/50-reload-ndiswrapper.sh to reload the ndiswrapper driver after resume. Here's what mine looks like. Set this file to be executable:
# chmod 755 /etc/acpi/resume.d/50-reload-ndiswrapper.sh
- Edit /etc/acpi/sleep.sh (Note that future apt upgrades may overwrite this file!) to use s2ram to suspend by replacing this line:
echo -n $ACPI_SLEEP_MODE >/sys/power/state
..with this line:
/sbin/s2ram -f -a3
My example is here
- Install s2ram
# apt-get install uswsusp
- Make s2ram sudoable. Edit /etc/sudoers and add this line to the end:
%admin ALL=NOPASSWD: /sbin/s2ram
- 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.
- Orientation Sensor, Active Hard Drive Protection
A little work required to get the orientation sensor running:
- Load the module:
# modprobe hdaps_ec
- ..and edit /etc/modules to load the module at boot time. You can now
verify that the sensor works by running "cat /sys/devices/platform/hdaps/position"
- Calibrate the orientation sensor. Set the tablet on a horizontal surface and run:
# cat /sys/devices/platform/hdaps/position > /etc/hdaps.calibration
Then add a line to your /etc/rc.local to restore these settings at boot time:
cat /etc/hdaps.calibration > /sys/devices/platform/hdaps/calibrate
- Set the invert flag:
echo 3 > /sys/devices/platform/hdaps/invert
This value may be different for other machines. You can check it by running hdaps-gl (in the package hdaps-utils) and making sure that the laptop image tilts the same way as your tablet. If not, try running the same command with other numbers (0-7). Next set this value at boot by adding the same command to /etc/rc.local. See the README from the tp_smapi source for more information.
- Screen swivel detect
Getting your tablet to detect when the screen swivels is very easy. First, install my rotate script (just copy it into /usr/local/bin and make sure it is executable). Next, create two files in /etc/acpi/events: x60t-swivel-up and x60t-swivel-down. These files just tell the ACPI system to listen for certain events (the screen swivelling) and run the rotate script when they occur. You can easily rewrite these files to run any other command you want.
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:
- 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.
- Handwriting applications
- Journal applications
- Xournal - Journal application wihch I use mainly to annotate PDF files. Install from APT.
- gournal
- jarnal
- See for more tablet software:
Custom Scripts
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)
Contacting me
If you have questions or would like to contribute information, contact me at
lcampagn | [you shouldn't see this] | @ email | . unc | . edu |