This documentation describes Debian GNU/Linux 5.0 aka Lenny installation on Thinkpad X60 Tablet.
I bought this used tablet on January 31, 2009 from someone who generous enough to give all bonuses along with it.
If you have some comments or suggestions, please contact stwn.
TODO:
Hardware | Status | Notes |
---|---|---|
Processor: Intel Core Duo 1.83 GHz | OK | dual core processor detected, type cat /proc/cpuinfo to see the info |
RAM: DDR2 PC-5300 2048 GB | OK | - |
HDD: SATA 80 GB 5400 RPM | OK | - |
Video Card: Intel GMA 950 | OK | driver: i810, xorg 7.3 runs without xorg.conf configuration |
LCD: Lenovo 12“ Multitouch | OK | needs to activate wacom multitouch, see Tweak and Configuration |
Sound Card: Intel 82801G HD | OK | - |
Bluetooth: Broadcom BCM2045B | OK | my bluetooth indicator start to lit and blink :) |
Infrared | Untested | - |
SDCard Slot | OK | - |
Ethernet: Intel 82573L Gigabit | OK | driver: e1000e, watchout if you want to use Linux kernel 2.6.27. lenny provides 2.6.26 as its default kernel |
Wireless Card: Intel PRO/Wireless 3945ABG | OK | needs iwl3945 ucode, see Tweak and Configuration |
Fingerprint: SGS Thomson Microelectronics | OK | see Tweak and Configuration |
Cardbus PCMCIA Type II with ExpressCard/34 | Untested | linux-2.6.26 detects it |
Firewire | Untested | linux-2.6.26 detects it as “Ricoh R5C552” |
Modem | Untested | - |
Feature | Status | Notes |
---|---|---|
Display | OK | max 1024×768; need some configuration for desktop effect |
VGA out | OK | use xrandr or its front-end like grandr, KRandRTray |
Suspend | OK | to-ram and to-disk works |
Hotkeys | OK | Fn-FX |
Tablet Buttons | - | works for some buttons |
Auto Rotate | OK | see Tweak and Configuration |
Multitouch | OK | see Tweak and Configuration |
Fingerprint | OK | see Tweak and Configuration |
CPU scalling | OK | install cpufreq* if you want cpu scalling support in userspace |
APS | - | the good news: it works for detecting motion and it can be a joystick or “lightsaber”. the (relatively) bad news: hdaps_protect1) isn't merged yet in Linux kernel 2.6.26. you may try to recompile 2.6.26 with the patch or use 2.6.28 instead |
I installed some programs that is not included in default installation of Debian 5.0, at least in disk #1. This the list of my “additional” programs:
I use KDE3, so I remove GNOME.
$ tar zxvf kernelnewbies-fortunes.tar.gz $ cd kernelnewbies-fortunes/ $ sudo mv kernelnewbies* /usr/share/games/fortunes/
# visudo
Add line
stwn ALL=(ALL) ALL
or whatever priviledges you want to add to the user.
# dpkg -i libpam-thinkfinger_0.3+rev118.2-4_i386.deb # dpkg -i libthinkfinger0_0.3+rev118.2-4_i386.deb # dpkg -i thinkfinger-tools_0.3+rev118.2-4_i386.deb
$ sudo tf-tool --acquire ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/) Copyright (C) 2006, 2007 Timo Hoenig <thoenig@suse.de> Initializing... done. Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done. Storing data (/home/user/.thinkfinger.bir)... done.
If you got an error message
Initializing...Could not claim USB device.
Run tf-tool with sudo.
auth sufficient pam_thinkfinger.so auth required pam_unix.so nullok_secure try_first_pass
# vim /etc/modules
# update-initramfs -u
# apt-get install tp-smapi-modules hdapsd hdaps-utils
# modprobe tp-smapi # modprobe hdaps
# vim /etc/modules
Add this lines and save
hdaps tp-smapi
# update-initramfs -u
$ hdaps-gl
Just tilt right, left, up, and down. You got the idea.
Those steps above are not make your Debian has an APS feature that will protect your harddisk when it falling by parks its head. It just detect acceleration values through HDAPS interface. If you want the feature, patch your kernel and recompile or use Linux kernel 2.6.28, AFAIK this version includes the hdaps_protect patch.
Section "InputDevice" Identifier "Stylus" Driver "wacom" Option "Device" "/dev/ttyS0" Option "Type" "stylus" Option "ForceDevice" "ISDV4" Option "Button2" "3" EndSection Section "InputDevice" Identifier "Eraser" Driver "wacom" Option "Device" "/dev/ttyS0" Option "Type" "eraser" Option "ForceDevice" "ISDV4" Option "Button3" "2" EndSection Section "InputDevice" Identifier "Touch" Driver "wacom" Option "Device" "/dev/ttyS0" Option "Type" "touch" Option "ForceDevice" "ISDV4" Option "TopY" "48" Option "TopX" "22" Option "BottomY" "980" Option "BottomX" "950" EndSection Section "InputDevice" Identifier "Cursor" Driver "wacom" Option "Device" "/dev/ttyS0" Option "Type" "cursor" Option "ForceDevice" "ISDV4" EndSection
InputDevice "Cursor" "SendCoreEvents" InputDevice "Stylus" "SendCoreEvents" InputDevice "Eraser" "SendCoreEvents" InputDevice "Touch" "SendCoreEvents"
/etc/init.d/gdm stop
or
/etc/init.d/kdm stop
sudo apt-get remove --purge wacom-tools xserver-xorg-input-wacom
You also want to remove xserver-xorg-input-all meta-package, since it depends on xserver-xorg-input-wacom.
apt-get install build-essential, xorg-dev, libncurses5-dev, libx11-dev, tcl8.4-dev, tk8.4-dev
tar jxvf linuxwacom-0.8.2-2.tar.bz2
cd linuxwacom-0.8.2-2
./configure make make install
ldconfig wacomcpl
Choose touch Device and Calibration. Calibrate your touch by touching crosshair inside pink rectangle until it changes its color to black and do the same for the other pink rectangle.
vim ~/.xinitrc
Option "TopY" "48" Option "TopX" "22" Option "BottomY" "980" Option "BottomX" "950"
The values are from ~/.xinitrc.
# cd /etc/acpi/events/
event=ibm/hotkey HKEY 00000080 0000500a action=/etc/acpi/thinkpad-up
and thinkpad-down contains
event=ibm/hotkey HKEY 00000080 00005009 action=/etc/acpi/thinkpad-down
I got the swivel event keys by looking at x60t-swivel-up and x60t-swivel-down. Use acpi_listen to see event key managed by ACPI.
# cd ..
# cp rotatescreen.sh thinkpad-up # cp rotatescreen.sh thinkpad-up
# vim thinkpad-up
Add $NEW_ORIENTATION, $ORIENT variables, set Stylus, Touch, and arrow tablet keys to suit to laptop mode. This is the modified version of thinkpad-up:
. /usr/share/acpi-support/power-funcs NEW_ROTATION="normal" ORIENT="0" for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXconsole; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" /usr/bin/xrandr -o $NEW_ROTATION && echo $NEW_ROTATION > /var/lib/acpi-support/screen-rotation /usr/local/bin/xsetwacom set Stylus Rotate $ORIENT /usr/local/bin/xsetwacom set touch Rotate $ORIENT xmodmap -e 'keycode 98 = Up';xmodmap -e 'keycode 100 = Left';xmodmap -e 'keycode 102 = Right';xmodmap -e 'keycode 104 = Down' fi done
# vim thinkpad-down
Add $NEW_ORIENTATION, $ORIENT variables, set Stylus, Touch, and arrow tablet keys to suit to slate mode. This is the modified version of thinkpad-down:
. /usr/share/acpi-support/power-funcs NEW_ROTATION="right" ORIENT="1" for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXconsole; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" /usr/bin/xrandr -o $NEW_ROTATION && echo $NEW_ROTATION > /var/lib/acpi-support/screen-rotation /usr/local/bin/xsetwacom set Stylus Rotate $ORIENT /usr/local/bin/xsetwacom set touch Rotate $ORIENT xmodmap -e 'keycode 98 = Left';xmodmap -e 'keycode 100 = Down';xmodmap -e 'keycode 102 = Up';xmodmap -e 'keycode 104 = Right' fi done
tar zxvf iwlwifi-3945-ucode-15.28.2.8.tgz
cd iwlwifi-3945-ucode-15.28.2.8/
sudo mv * /lib/firmware/
cd /lib/firmware/
sudo ln -s iwlwifi-3945-2.ucode iwlwifi-3945-1.ucode
Why we need to do this step? because iwl3945 module in the linux-2.6.26 will try to search “iwlwifi-3945-1.ucode” in /lib/firmware/.
sudo rmmod iwl3945 sudo modprobe iwl3945
(EE) AIGLX error: dlopen of /usr/lib/dri/i915_dri.so failed (/usr/lib/dri/i915_dri.so: cannot open shared object file: No such file or directory) (EE) AIGLX: reverting to software rendering
Another error message is come from compiz fusion itself. This message appeared when I run fusion icon and activated Compiz window manager:
fusion-icon * Detected Session: kde * Searching for installed applications... Backend : ini Integration : true Profile : default Adding plugin decoration (decoration) Initializing decoration options...done * Using the GTK Interface * KWin is already running * Setting window manager to Compiz ... executing: compiz.real --replace --sm-disable --ignore-desktop-hints ccp --indirect-rendering compiz.real (core) - Fatal: No GLXFBConfig for default depth, this isn't going to work. compiz.real (core) - Error: Failed to manage screen: 0 compiz.real (core) - Fatal: No manageable screens found on display :0
If we run glxgears to test GLX, we just got ~240.000 frames per second
$ glxgears 1244 frames in 5.0 seconds = 247.030 FPS 940 frames in 5.1 seconds = 185.979 FPS 1200 frames in 5.0 seconds = 238.331 FPS
It should be around 1240.000 in my machine
$ glxgears 6234 frames in 5.0 seconds = 1246.726 FPS 6213 frames in 5.0 seconds = 1242.486 FPS 6270 frames in 5.0 seconds = 1253.926 FPS 6230 frames in 5.0 seconds = 1245.942 FPS
sudo vim /etc/group
"Filter "foomatic-rip" for printer "BJC-265" not available: No such file or directory"
Install foomatic-db
xsetwacom list dev