Installing Fedora Core 5 on a ThinkPad X41 Tablet

From ThinkWiki
Revision as of 18:16, 22 June 2006 by Prschaffner (Talk | contribs) (Fingerprint Reader)
Jump to: navigation, search

Success Chart

Item Working Notes
Installation Network Installation Yes
USB Installation Yes (DVD)
Display Laptop Screen Yes X.org i810 driver
CRT / Projector Yes
Screen Rotation Yes
Stylus Yes wacom serial driver.
Power Management Software Suspend (hibernate) Yes Software Suspend 2
Suspend to Memory (ACPI sleep) Yes (mostly) Software Suspend 2, occasional blank screen
Audio Yes ALSA intel8x0 driver
Wireless 802.11b/g Yes ipw2200/madwifi drivers
Bluetooth Not Tested (should work) See Bluetooth on Fedora Core 4
Extra Buttons Keyboard Section Yes ibm-acpi driver
Tablet buttons Yes setkeycodes
Fingerprint Scanner Yes bioapi
Harddisk Active Protection Yes kernel 2.6.16, hdapsd

Installation

Installation is straight forward and identical to the Fedora Core 4 installation process mentioned here.

Configuration

X Server

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

Enabling Screen Rotation

Download and install the updated X server and drivers as follows:

# wget http://www.cs.cornell.edu/~saikat/xorg-x11-drv-i810-1.6.0-1.i386.rpm
# wget http://www.cs.cornell.edu/~saikat/xorg-x11-server-Xorg-1.0.99.901-5.i386.rpm
# wget http://www.cs.cornell.edu/~saikat/linuxwacom-0.7.2-3.i386.rpm
# yum localinstall xorg-x11-drv-i810-1.6.0-1.i386.rpm xorg-x11-server-Xorg-1.0.99.901-5.i386.rpm linuxwacom-0.7.2-3.i386.rpm
Hint:
Update: If you have issues using yum to install the RPM's, try:
rpm -Uvh xorg-x11-drv-i810-1.6.0-1.i386.rpm xorg-x11-server-Xorg-1.0.99.901-5.i386.rpm linuxwacom-0.7.2-3.i386.rpm

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).

Create the Gnome keybindings as follows:

$ gconftool-2 -s '/apps/metacity/keybinding_commands/command_12' -t string rotate
$ gconftool-2 -s '/apps/metacity/global_keybindings/run_command_12' -t string XF86RotateWindows

Wireless Network

Install the ipw2200 driver from ATrpms.

# rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
# cd /etc/yum.repos.d
# wget http://www.cs.cornell.edu/~saikat/atrpms.repo
# yum install atrpms-package-config ipw2200

Hibernation

Software suspend works using Software Suspend 2. To install:

# cd /etc/yum.repos.d
# wget http://mhensler.de/swsusp/download/suspend2.repo
# yum install userui-suspend2-fbsplash userui-suspend2-theme-fedorabubbles kernel-suspend2

Edit the appropriate kernel line in /etc/grub.conf and add the parameters vga=0x317 and acpi_sleep=s3_bios. For example:

title Fedora Core (<kernel.version-build>.rhfc5.cubbi_suspend2)
       root (hd0,1)
       kernel /vmlinuz-<kernel.version-build>.rhfc5.cubbi_suspend2 ro root=/dev/VolGroup00/LogVol00 rhgb quiet vga=0x317 acpi_sleep=s3_bios
       initrd /initrd-<kernel.version-build>.rhfc5.cubbi_suspend2.img

Comment out the following line in /etc/hibernate/hibernate.conf:

# ProcSetting userui_program /sbin/suspend2ui_text

Add the following lines in /etc/hibernate/hibernate.conf:

ProcSetting userui_program /sbin/suspend2ui_fbsplash
OnResume 96 setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig

Add the following lines in /etc/hibernate/ram.conf:

Distribution fedora

Comment out the following lines in /etc/hibernate/ram.conf:

# EnableVbetool yes
# VbetoolPost yes

Force the use of suspend2 by editing the appropriate line in /etc/sysconfig/pm:

HIBERNATE_METHOD="suspend2"

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

Fingerprint Reader

The fingerprint reader is supported through the BioAPI framework. The BioAPI framework and the UPEK fingerprint reader driver can be installed as follows:

wget http://www.cs.cornell.edu/~saikat/libbiometrics-1.2.2-1.sg.i386.rpm
wget http://www.cs.cornell.edu/~saikat/libbiometrics-tfmess-1.0-1.sg.i386.rpm
yum localinstall libbiometrics-1.2.2-1.sg.i386.rpm libbiometrics-tfmess-1.0-1.sg.i386.rpm
NOTE!
This is still work-in-progress. Currently you can enroll fingerprints, and verify them through a test application. Integrating

this support into pam (and therefore logins, gdm, screensaver etc.) is in the works. Those interested in developing biometrics applications

can install libbiometrics-devel-1.2.2-1.sg.i386.rpm. Stay tuned.
NOTE!
Making SRPMS or a spec file available would be very nice for those who want to try this on other distros.

To try out enrollment and verification, run: # useraddbio

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

Software

Network, Power Management, OSD

Some useful software is not installed by default. These include:

  • tpb — On screen display for thinkpad buttons
  • Network Manager — Manages wireless and wired networks automatically
  • Gnome Power Manager — Manages ACPI power events

To install them execute:

# yum install tpb NetworkManager gnome-power-manager
# chkconfig NetworkManager on

Check your gnome-session-manager is configured to automatically start the panel applets that control Network Manager and Gnome Power Manager. Ensure the following entries are present under System > Preferences > More Preferences > Sessions > Startup Programs:

 nm-applet --sm-disable
 gnome-power-manager --sm-disable

Java 1.5

Install Sun's JRE 1.5. This is required for the jarnal program below.

  • Download the build: $ wget http://mirrors.dotsrc.org/jpackage/1.6/generic/non-free/SRPMS/java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm
  • Create the build environment: # rpm -Uvh java-1.5.0-sun-1.5.0.05-1jpp.nosrc.rpm
  • Download the JVM from Sun's Java page and download jdk-1_5_0_06-linux-i586.bin to /usr/src/redhat/SOURCES
  • Build the RPMs: # rpmbuild -ba /usr/src/redhat/SPECS/java-1.5.0-sun.spec
  • Install the JVM: # yum localinstall /usr/src/redhat/RPMS/i586/java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm
  • Install the fonts: # yum localinstall /usr/src/redhat/RPMS/i586/java-1.5.0-sun-fonts-1.5.0.06-1jpp.i586.rpm

Note: This is tailored for the latest JVM as of writing this article. Substitute the latest version numbers if this doesn't work.

Jarnal Note-Taking

Install the Jarnal note-taking application:

# wget http://www.cs.cornell.edu/~saikat/jarnal-8.14-1sg.noarch.rpm
# yum localinstall jarnal-8.14-1sg.noarch.rpm