Differences

This shows you the differences between two versions of the page.

Link to this comparison view

doc:x60t [2012/08/26 19:22] (current)
Line 1: Line 1:
 +====== Debian Installation on ThinkPad X60 Tablet ======
  
 +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.
 +
 +
 +<​html>​
 +<a href="​http://​tuxmobil.org/​ibm.html">​
 +<img src="​http://​tuxmobil.org/​pics/​tuxmobil_sticker.png"​ width="​88"​ height="​31"​ border="​0" ​
 +alt="​TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones">​
 +</a>
 +</​html>​
 +
 +TODO: 
 +  * [[http://​www.thinkwiki.org/​wiki/​How_to_reduce_power_consumption|how to reduce power consumption]]
 +  * active-rotate
 +  * rotate button+change nav orientation:​ xbindkeys?
 +  * emulate wheel for middle trackpoint button
 +  * event pen "​plug-unplug":​ trackpoint-fdi.hal?​
 +  * info lspci and lsusb
 +  * [[http://​lii-enac.fr/​en/​projects/​shareit/​multitouch.html|multitouch support on linux-2.6.30]]
 +
 +===== Hardware =====
 +
 +^ 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 [[http://​www.intellinuxwireless.org/?​n=Downloads|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 | - |
 +
 +===== Features =====
 +^ Feature ^ Status ^ Notes ^
 +| Display | OK | max 1024x768; 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_protect((this is something that control and protect your harddisk from shock)) 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 |
 +
 +===== Programs =====
 +
 +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:
 +
 +==== Desktop Environment ====
 +I use KDE3, so I remove GNOME.
 +
 +==== Development ====
 +  * ganttproject
 +
 +==== Graphics ====
 +  * Aqsis
 +  * Dia
 +  * Blender
 +  * Gwenview
 +  * Inkscape
 +  * The Gimp
 +  * Xfig
 +
 +==== Internet ====
 +  * KDEBluetooth
 +  * KMail
 +  * Pidgin
 +
 +==== Multimedia ====
 +  * Amarok
 +  * K3b
 +  * Kaffeine
 +  * MPlayer
 +
 +==== Networking ====
 +  * Apache2+PHP5
 +  * OpenSSH server
 +  * PPP and pppconfig
 +
 +==== Office ====
 +  * amora-server +bluetooth config
 +  * freemind
 +  * impressive
 +  * Kivio
 +  * OpenOffice.org 3.0
 +
 +==== System ====
 +  * Compiz Fusion along with fusion-icon ;-)
 +  * CUPS & foomatic-db
 +  * GDM
 +  * Kpowersave
 +  * Synaptic
 +  * Yakuake
 +  * acpi, acpi-support
 +  * fortune-min and kernelnewbies-fortune-data<​code>​$ tar zxvf kernelnewbies-fortunes.tar.gz
 +$ cd kernelnewbies-fortunes/​
 +$ sudo mv kernelnewbies* /​usr/​share/​games/​fortunes/</​code>​
 +  * kde-guidance
 +  * **laptop-mode-tools**
 +  * networkmanager and networkmanager-kde
 +  * readahead
 +  * smartmontools
 +  * sudo<​code>#​ visudo</​code>​Add line<​code>​stwn ​   ALL=(ALL) ALL</​code>​or whatever priviledges you want to add to the user.
 +  * xscreensaver. Don't forget to switch off KDE screensaver if you want to use it.
 +
 +==== Utilities ====
 +  * Basket
 +  * **Cellwriter**
 +  * Grandr
 +  * Kate
 +  * KNotes
 +  * Speedcrunch
 +  * Synergy
 +  * wacom-tools
 +  * **Xournal**
 +
 +===== Tweak and Configuration =====
 +
 +==== Bluetooth ====
 +FIXME
 +
 +==== Fingerprint ====
 +=== Installation ===
 +  * Add experimental debian repository or get libthinkfinger0,​ libpam-thinkfinger,​ thinkfinger-tools packages [[ftp://​mirrors.kernel.org/​debian/​pool/​main/​t/​thinkfinger/​|individually]] ;-)
 +  * Install libthinkfinger0 libpam-thinkfinger thinkfinger-tools<​code>#​ 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</​code>​
 +
 +=== Testing ===
 +  * Record your fingerprint<​code>​$ 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.
 +</​code>​If you got an error message<​code>​Initializing...Could not claim USB device.</​code>​Run tf-tool with sudo.
 +
 +=== Configuration ===
 +  * We must configure pam to use libthinkfinger if it available<​code>​auth sufficient pam_thinkfinger.so
 +auth required pam_unix.so nullok_secure try_first_pass</​code>​
 +  * Add uinput module to /​etc/​modules,​ so it will be loaded when debian boot<​code>#​ vim /​etc/​modules</​code>​
 +  * Generate initramfs<​code>#​ update-initramfs -u</​code>​
 +
 +==== HDAPS ====
 +
 +=== Installation ===
 +
 +  * Install tp-smapi-modules for your linux kernel version, hdapsd and hdaps-utils packages<​code>#​ apt-get install tp-smapi-modules hdapsd hdaps-utils</​code>​
 +
 +=== Configuration ===
 +
 +  * Load tp_smapi and hdaps module<​code>#​ modprobe tp-smapi
 +# modprobe hdaps</​code>​
 +  * Edit /​etc/​modules and generate initramfs if you want to load those modules on boot<​code>#​ vim /​etc/​modules</​code>​Add this lines and save<​code>​hdaps
 +tp-smapi</​code>​
 +  * Run update-initramfs<​code>#​ update-initramfs -u</​code>​
 +
 +=== Testing ===
 +  * Run hdaps-gl and you will find it displays the position of your thinkpad.<​code>​$ hdaps-gl</​code>​Just tilt right, left, up, and down. You got the idea.
 +
 +=== Notes ===
 +  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.
 +
 +=== 2.6.31 ===
 +  * get 2.6.31, hdapsd, and tp-smapi-source from unstable
 +  * m-a a-i tp-smapi-source
 +  * test with moving your notebook, you should hear your headdisk is parking
 +
 +==== Internet ====
 +FIXME
 +
 +=== Bluetooth ===
 +=== Mini USB ===
 +
 +
 +==== Tablet ====
 +=== Stylus and Eraser ===
 +  * Add this lines into /​etc/​X11/​xorg.conf<​code>​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</​code>​
 +
 +  * Add this lines to **Section "​Serverlayout"​** in /​etc/​X11/​xorg.conf<​code> ​       InputDevice ​   "​Cursor"​ "​SendCoreEvents"​
 +        InputDevice ​   "​Stylus"​ "​SendCoreEvents"​
 +        InputDevice ​   "​Eraser"​ "​SendCoreEvents"​
 +        InputDevice ​   "​Touch"​ "​SendCoreEvents"</​code>​
 +
 +=== Multitouch ===
 +  * First, make sure you bought X60t which has Multitouch support.
 +  * Comment Stylus and Eraser configuration from /​etc/​X11/​xorg.conf. Just use '#'​ character in front of the lines to comment them, or stop X server<​code>/​etc/​init.d/​gdm stop</​code>​or<​code>/​etc/​init.d/​kdm stop</​code>​
 +  * Remove Wacom input driver and wacom-tools<​code>​sudo apt-get remove --purge wacom-tools xserver-xorg-input-wacom</​code>​You also want to remove xserver-xorg-input-all meta-package,​ since it depends on xserver-xorg-input-wacom.
 +  * Install build-essential,​ xorg-dev, libncurses5-dev,​ libx11-dev, tcl8.4-dev, tk8.4-dev<​code>​apt-get install build-essential,​ xorg-dev, libncurses5-dev,​ libx11-dev, tcl8.4-dev, tk8.4-dev</​code>​
 +  * Download linuxwacom from [[http://​linuxwacom.sourceforge.net/​index.php/​dl|The Linux Wacom Project site]]. As this article is being written, linuxwacom version is 0.8.2-2.
 +  * Extract linuxwacom-0.8.2-2.tar.bz2<​code>​tar jxvf linuxwacom-0.8.2-2.tar.bz2</​code>​
 +  * Change directory to linuxwacom-0.8.2-2/<​code>​cd linuxwacom-0.8.2-2</​code>​
 +  * Run three usual commands ;​-)<​code>​./​configure
 +make
 +make install</​code>​
 +  * Uncomment Stylus and Eraser configuration in /​etc/​X11/​xorg.conf and/or start gdm or kdm
 +  * Use wacomcpl to calibrate your touch. If you got an error message something like wacomcpl lost its libraries, do ldconfig first<​code>​ldconfig
 +wacomcpl</​code>​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.
 +  * Program wacomcpl generates configuration in .xinitrc in home directory, just open it with an editor like vim<​code>​vim ~/​.xinitrc</​code>​
 +  * Add Options in Section "​InputDevice"​ for "​Option"​ "​Type"​ "​touch"​ in /​etc/​X11/​xorg.conf<​code>​Option ​     "​TopY"​ "​48"​
 +Option ​     "​TopX"​ "​22"​
 +Option ​     "​BottomY"​ "​980"​
 +Option ​     "​BottomX"​ "​950"</​code>​The values are from ~/.xinitrc.
 +  * Congrats! you have a multitouch feature in your X60t calibrated and works!
 +
 +=== Auto Rotate ===
 +  * You need acpid and acpi-support packages installed
 +  * Change directory to /​etc/​acpi/​events/<​code>#​ cd /​etc/​acpi/​events/</​code>​
 +  * Create two files which represent two states of mode, ex: thinkpad-up that contains<​code>​event=ibm/​hotkey HKEY 00000080 0000500a
 +action=/​etc/​acpi/​thinkpad-up</​code>​and thinkpad-down contains<​code>​event=ibm/​hotkey HKEY 00000080 00005009
 +action=/​etc/​acpi/​thinkpad-down</​code>​I got the swivel event keys by looking at [[http://​luke.no-ip.org/​x60tablet/​examples/​x60t-swivel-up|x60t-swivel-up]] and [[http://​luke.no-ip.org/​x60tablet/​examples/​x60t-swivel-down|x60t-swivel-down]]. Use acpi_listen to see event key managed by ACPI.
 +  * Change directory to /​etc/​acpi/<​code>#​ cd ..</​code>​
 +  * Copy rotatescreen.sh to thinkpad-up and thinkpad-down,​ whatever you want to name them ;​)<​code>#​ cp rotatescreen.sh thinkpad-up
 +# cp rotatescreen.sh thinkpad-up</​code>​
 +  * Edit thinkpad-up script<​code>#​ vim thinkpad-up</​code>​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:<​code>​. /​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</​code>​
 +  * Edit thinkpad-down script<​code>#​ vim thinkpad-down</​code>​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:<​code>​. /​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</​code>​
 +  * Try to swivel-up and -down the LCD, make sure the screen orientation,​ Stylus, touch, and arrow keys are set suit to the mode.
 +
 +==== Wireless Card ====
 +  * Download ucode from [[http://​www.intellinuxwireless.org/?​n=Downloads|intellinuxwireless.org]]
 +  * Extract iwlwifi-3945-ucode-15.28.2.8.tgz<​code>​tar zxvf iwlwifi-3945-ucode-15.28.2.8.tgz</​code>​
 +  * Change directory to iwlwifi-3945-ucode-15.28.2.8/<​code>​cd iwlwifi-3945-ucode-15.28.2.8/</​code>​
 +  * Copy or move the content of the directory to /​lib/​firmware/<​code>​sudo mv * /​lib/​firmware/</​code>​
 +  * Change directory to /​lib/​firmware/<​code>​cd /​lib/​firmware/</​code>​
 +  * Make symlink from new ucode to iwlwifi-3945-1.ucode<​code>​sudo ln -s iwlwifi-3945-2.ucode iwlwifi-3945-1.ucode</​code>​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/​.
 +  * Reboot your X60t or try to unload and reload iwl3945 module<​code>​sudo rmmod iwl3945
 +sudo modprobe iwl3945</​code>​
 +  * Your wireless card should be working and the indicator start to lit/blink.
 +
 +===== Notes =====
 +  * If you couldn'​t run compiz fusion or it has run with your applications all window-less,​ maybe you forgot to install **libgl1-mesa-dri** package. Since X60t uses Intel graphic card, we use AIGLX that depends on DRI to do direct-rendering acceleration (CMIIW). No DRI support, No AIGLX. No AIGLX, No Compiz Fusion. The error message of Xorg from /​var/​log/​Xorg.0.log<​code>​(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</​code>​Another error message is come from compiz fusion itself. This message appeared when I run fusion icon and activated Compiz window manager:<​code>​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</​code>​If we run glxgears to test GLX, we just got ~240.000 frames per second<​code>​$ 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</​code>​It should be around 1240.000 in my machine<​code>​$ 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</​code>​
 +  * You have installed networkmanager,​ and networkmanager-kde told you that it couldn'​t find network devices on your pc. The solution is add your username to **netdev** group by editing /​etc/​group<​code>​sudo vim /​etc/​group</​code>​
 +  * When you found an error message out from CUPS via "web control panel"<​code>"​Filter "​foomatic-rip"​ for printer "​BJC-265"​ not available: No such file or directory"</​code>​Install foomatic-db
 +  * Tablet-related commands:<​code>​xsetwacom list dev</​code>​
 +
 +===== Reading List =====
 +  * [[http://​www.thinkwiki.org/​wiki/​How_to_enable_the_fingerprint_reader_with_ThinkFinger|How to enable the fingerprint reader with ThinkFinger]]
 +  * [[http://​www.thinkwiki.org/​wiki/​How_to_install_MultiTouch_from_source|How to install MultiTouch from source]]
 +  * [[http://​wiki.archlinux.org/​index.php/​Lenovo_Thinkpad_X60_Tablet|Lenovo Thinkpad X60 Tablet]]
 +  * [[http://​www.tabletpcreview.com/​default.asp?​newsID=632|Lenovo ThinkPad X60 Tablet PC Review]]
 +  * [[http://​luke.no-ip.org/​x60tablet/​|Linux on the Lenovo ThinkPad X60 Tablet]]
 
doc/x60t.txt ยท Last modified: 2012/08/26 19:22 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki