Installing Fedora 7 on a ThinkPad X41 Tablet
Page Not Accurate!
This page is not accurate; I've just copied it over from Installing Fedora Core 5 on a ThinkPad X41 Tablet in order to start editing/updating it for Fedora 7. Please feel free to help out with that if you stumble across this page while it is still 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 | ||
Stylus | Yes | Requires configuration changes. | |
Power Management | Software Suspend (hibernate) | Yes | Software Suspend 2 |
Suspend to Memory (ACPI sleep) | Yes (mostly) | Software Suspend 2 | |
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 | ibm-acpi driver |
Tablet buttons | Yes | setkeycodes | |
Fingerprint Scanner | Yes | bioapi | |
Harddisk Active Protection | Yes | kernel 2.6.16, hdapsd |
Tested and Verified on Fedora 7
Information in this section has been tested and verified using Fedora 7.
Installation
Installation is straight forward; you can use the generic install instructions here.
Configuration
X Server
Basic X server functionality should work out of the box.
Desktop Effects
'Desktop Effects' work but are not enabled by default; to enable them run 'desktop-effects' and click 'enable desktop effects'. Note that these conflict with working rotation- you get either desktop effects or tablet rotation; not both.
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
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 $?
Wireless Network
The wireless card works out of the box- no additional drivers necessary.
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
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
tpb/on-screen display
tpb, which controls the onscreen display of thinkpad buttons, is not installed by default.
To install tpb execute:
# yum install tpb
Once installed, no configuration is necessary.
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; you can get packages for Fedora 7 from here.
Untested on Fedora 7
Information below this line is merely copied from the Fedora Core 5 guide and has not been tested on Fedora 7.
Enabling Screen Rotation
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
{{Update: This script still works, but it appears xrandr's rotation function is broken. The screen does rotate, but it appears the display is not telling the workspaces right or left. So effectively, a 1024 x 768 resolution becomes 768 x 1024, but the workspace becomes 1024 x 1024, which is annoying because you have to manually resize your windows that's hiding in the hidden space. A solution for this would be great. It may be updated, when xorg is updated.}}
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
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
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