Installing Fedora Core 5 on a ThinkPad X41 Tablet
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 | |
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
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
- OR -
To get working GL support as well try installing from the development yum repository
# yum --enablerepo=development update linuxwacom xorg-x11-drv-i810 xorg-x11-server-Xorg mesa-libGL mesa-libGLU
Bear in mind that the development repository could easily get update in the future to rpm's that either won't work with FC5 or maybe just have large numbers of dependants. The following versions are known to work on the X41
xorg-x11-drv-i810-1.6.0-5 xorg-x11-server-Xorg-1.1.0-23 linuxwacom-0.7.4_1-2 mesa-libGL-6.5-9 mesa-libGLU-6.5-9
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
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
- OR -
Alternativly you can use the ipw2200 driver that is already part of FC5 and just install the firmware from livna.org.
# rpm -Uvh http://rpm.livna.org/livna-release-5.rpm
# yum install ipw2200-firmware
If you forget to install the correct firmware, you might get this message when trying to ifup:
tg3 device eth1 does not seem to be present, delaying initialization.
Double-check that the driver can load the required firmware, by looking into /var/log/messages. If it fails, you'll see something like this:
kernel: ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2 kernel: ipw2200: Unable to load firmware: -2
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
Make the following changes (i.e. comment out the two vbetool lines, and add the return 0 line in the resume_video function) in /etc/pm/functions-intel:
resume_video() { ( # /usr/sbin/vbetool post # /usr/sbin/vbetool vbestate restore < /var/run/vbestate return 0 ) >/dev/null 2>&1 }
Force the use of suspend2 by editing the appropriate lines in /etc/sysconfig/pm:
HIBERNATE_METHOD="suspend2" HIBERNATE_RESUME_POST_VIDEO="no"
Problems with a black screen after resuming can sometimes be fixed by adding the following line to the device section in /etc/X11/xorg.conf:
Option "VBERestore" "true"
Add the following file /etc/pm/hooks/40wacom:
#!/bin/sh setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig
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 --nogpgcheck localinstall libbiometrics-1.2.2-1.sg.i386.rpm libbiometrics-tfmess-1.0-1.sg.i386.rpm
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. SRPMS for the above are available here.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:
# 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
External Sources
- This guide is listed at the TuxMobil Linux laptop and notebook installation survey (IBM/Lenovo) and the Linux on Tablet PCs and webpads survey.