Installing Fedora 8 on a ThinkPad X41 Tablet

From ThinkWiki
Revision as of 19:50, 4 November 2007 by LuisVilla (Talk | contribs) (Tablet Buttons: - clarify link)
Jump to: navigation, search

Page May Not Be Accurate!

This page may not be completely accurate; it was originally copied from Installing Fedora 7 on a ThinkPad X41 Tablet and may still be a work in progress.

Success Chart

Item Working Notes
Installation Network Installation Yes
USB Installation Yes (DVD)
Display Laptop Screen Yes
CRT / Projector Yes
Screen Rotation Yes Resizes display, but not workspace properly.
Stylus Yes Requires configuration changes.
Power Management Software Suspend (hibernate) Yes
Suspend to Memory (ACPI sleep) Yes (mostly)
Audio Yes
Wireless 802.11b/g Yes
Bluetooth Not Tested (should work) See Bluetooth on Fedora Core 4
Infrared Yes irda, /etc/modprobe.conf
Extra Buttons Keyboard Section Yes thinkpad-acpi driver
Tablet buttons Yes setkeycodes
Fingerprint Scanner Yes bioapi
Harddisk Active Protection Yes kernel 2.6.16, hdapsd

Just Works

The following things Just Work - with no tweaking required - after a default F8 installation:

Installation

You can use the generic install instructions here.

X Server

Basic X server functionality works out of the box.

Wireless

Wireless drivers work out of the box.

volume control and on-screen display

Hardware keys for volume up/volume down/mute work by default, including on-screen display of volume.

Sleep and Suspend

Sleep and suspend work out of the box.

Can Be Made To Work

These things require some tweaking after a default install, but after tweaking should work. Information in this section has been tested and verified using Fedora 8.

Configuration

Desktop Effects

'Desktop Effects' work but are not enabled by default; to enable them run 'desktop-effects' and click 'enable desktop effects'. Note that as of this writing these conflict with working rotation- you get either desktop effects or tablet rotation; not both. See bug 365951 for details.

Network Manager

Network Manager is installed by default, but may not be enabled by default depending on your mode of installation. To turn it on, do as root:

# chkconfig NetworkManager on

Fingerprint Reader

The fingerprint reader is supported by the thinkfinger package.

To install thinkfinger execute:

# yum install thinkfinger

Tablet Software

Xournal

Xournal is a gnome-based journaling tool for tablets; it is now packaged in Fedora, so you can install it with 'yum install xournal' or by using the 'Add/Remove Software' tool.

Untested on Fedora 8

Information below this line is merely copied from the Fedora 5 and 7 guides and has not been tested on Fedora 8.

Infrared

The infrared subsystem supports NSC Fast IR (FIR), which transmits at speeds of up to 4 Mbps.

First things first: Go to your BIOS and enable the infrared and manually set up IO to be 0x2f8 and IRQ to be 3. Typically, the default manual config is this so you probably don't need to edit it. Then go ahead an grab any irda-related packages from YUM.

Then I copied the section on Infrared for the T60:

Edit /etc/modprobe.conf, add the following two lines:

alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x09

Edit /etc/sysconfig/irda:

IRDA=yes
DEVICE=irda0
DISCOVERY=yes

Start IRDA

# service irda start

If You want IRDA to be enabled during system boot, turn it on like this:

# chkconfig irda on

That should set you up. You can then set up things like remote controls that operate through the LIRC daemon, which Fedora has a package and a kernel module for. This can useful for xmms, which has a plugin to allow you to change songs with the remote and other nifty features. You can define the controls as well. The choice is yours.

For more information, see Linux Infrared Remote Control Project

Tablet Buttons

Activate mappings for the tablet buttons by adding the following lines to /etc/rc.d/rc.local:

# Map tablet hardware buttons
setkeycodes 6e 109 6d 104 69 28 6b 1 6c 120

Note that if someone with a bit of time on their hands followed the steps in this blog post, this would eventually be fixed to 'Just Work' for all users of all distros.

Enabling the Stylus

Add the following lines to /etc/rc.d/rc.local:
(Note: You will need to be root to perform these two edits)

# Map stylus to a serial port
setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig


Add the lines in bold font to /etc/X11/xorg.conf:

 Section "ServerLayout"
        Identifier     "default"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "cursor" "SendCoreEvents"
        InputDevice    "stylus" "SendCoreEvents"
EndSection

Section "InputDevice"
      Driver        "wacom"
      Identifier    "cursor"
      Option        "Device"        "/dev/ttyS0"
      Option        "Type"          "cursor"
      Option        "ForceDevice"   "ISDV4"
      Option        "Mode"          "Absolute"
      Option        "TPCButton"     "on"
EndSection

Section "InputDevice"
      Driver        "wacom"
      Identifier    "stylus"
      Option        "Device"        "/dev/ttyS0"
      Option        "Type"          "stylus"
      Option        "ForceDevice"   "ISDV4"
EndSection

If the style stops working after a suspend/resume cycle, (as root) create the following file /usr/lib/pm-utils/sleep.d/40wacom

#!/bin/bash

. /usr/lib/pm-utils/functions

suspend_wacom() {
}

resume_wacom() {
    # Reset serial port for stylus
    setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig
}

case "$1" in
        hibernate|suspend)
                suspend_wacom
                ;;
        thaw|resume)
                resume_wacom
                ;;
        *)
                ;;
esac 

exit $?



Enabling Screen Rotation

To follow progress on making this work by default, see bug 365801

Download (and verify) the following script into your path:

$ wget http://www.cs.cornell.edu/~saikat/rotate
$ chmod a+x rotate

Rotate the screen using the script:

$ rotate -h
Useage:
   rotate [left|right|inverted|normal]
 
If no option is given, rotates the screen 90 degrees to the right.

To bind the tablet's Rotate button to rotate the screen on-the-fly, add the following line to /etc/X11/Xmodmap

keycode 139 = XF86RotateWindows
Hint:
Update: Check to make sure you are using the new setkeycodes line in the Tablet Buttons section (one with 6c 120 in the command).
Hint:
Update: This script uses xrandr 1.1 command line options, which only partly work with the latest Fedora 7 updates (which include xrandr 1.2). To fix the problem, edit the script, replacing 'xrandr -o' with 'xrandr --output LVDS --rotate'. I have not tested the fix on a clean install of F7, though. --LuisVilla

Harddrive Active Protection System (HDAPS)

Harddrive active protection system requires the hdaps kernel module (included in stock Fedora kernels), and a kernel capable of parking disks (patch included in kernel-suspend2 RPMs from the Hibernation section above). It also requires a userspace daemon to monitor the accleration sensor and park the disk head when excessive motion is detected. To install the userspace daemon, do the following:

Hint:
This requires kernel support for hdaps and head parking. Install kernel-suspend2-2.6.16-1.2084_2 or higher
# wget http://www.cs.cornell.edu/~saikat/hdapsd-20060326cvs-1.sg.i386.rpm
# yum localinstall hdapsd-20060326cvs-1.sg.i386.rpm

If software suspend is enabled, add the following line to /etc/hibernate/hibernate.conf

UnloadModules hdaps

To install the Gnome panel applet that monitors the state of the harddisk, install:

# wget http://www.cs.cornell.edu/~saikat/gnome-applet-hdaps-20060120cvs-1.sg.i386.rpm
# yum localinstall gnome-applet-hdaps-20060120cvs-1.sg.i386.rpm
NOTE!
SRPMS for the above are available here.