Difference between revisions of "Installing Fedora Core 4 on a ThinkPad X41 Tablet"

From ThinkWiki
Jump to: navigation, search
m (Suspend to Memory (ACPI Sleep))
Line 255: Line 255:
 
ACPI suspend to memory does not work with the 2.6.12 and earlier kernels because the X41 Tablet uses SATA access to the harddisk and the kernel SATA driver is not power-aware.  
 
ACPI suspend to memory does not work with the 2.6.12 and earlier kernels because the X41 Tablet uses SATA access to the harddisk and the kernel SATA driver is not power-aware.  
 
See [[Problems with SATA and Linux]] for further discussion and solutions.
 
See [[Problems with SATA and Linux]] for further discussion and solutions.
 +
(should be fixed in 2.6.15)
  
 
In any case, in {{path|/etc/grub.conf}} append the kernel parameter: {{bootparm|acpi_sleep|s3_bios}}
 
In any case, in {{path|/etc/grub.conf}} append the kernel parameter: {{bootparm|acpi_sleep|s3_bios}}

Revision as of 07:28, 26 January 2006

Success Chart

Item Working Notes
Installation Network Installation Yes
USB Installation Not Tested
Display Laptop Screen Yes both vesa driver, and i810 (with Intel 915 support)
CRT / Projector Yes with i810 driver. (screen/crt are exclusive with vesa)
On-the-fly Screen Rotation No
Stylus Yes wacom serial driver.
Power Management Software Suspend (hibernate) Yes Software Suspend 2
Suspend to Memory (ACPI sleep) No Tested on 2.6.12-1.1398
Audio Yes ALSA intel8x0 driver
Wireless 802.11b/g Yes ipw2200 driver
Bluetooth Not tested
Extra Buttons Keyboard Section Yes ibm-acpi driver
Tablet buttons Yes setkeycodes
Fingerprint Scanner No See Integrated Fingerprint Reader.
Harddisk Active Protection No See Active Protection System.

Installation

The X41 Tablet requires a dock to use an optical drive. The BIOS can, however, boot from USB or the network.

Preparation

The X41 Tablet comes installed with Windows XP Tablet edition. Before installing Fedora, the harddrive needs to be repartitioned and certain parameters need to be written down for later use.

  1. Use Powerquest Partition Magic, QTParted or some software that can partition a basic disk with NTFS partitions to create room for Fedora Core 4.
  2. Under windows, note the serial port and the irq used by the Wacom stylus device. This information is listed under Control Panel > System > Hardware > Device Manager > HID > Wacom Stylus > Resources. On the 18695CU model, the port is 0200-0207 and irq is 5.
  3. Note the MAC address of the ethernet card and the wireless card. These are on a stickers under the laptop labled LAN MAC Address and 802.11b/g MAC Address.

USB Boot Preparation

From the Fedora Core 4 DVD, write the bootimage to a USB device.

 dd if=images/diskboot.img of=/dev/sdb

where /dev/sdb is the USB device. Note: The destination is /dev/sdb and not /dev/sdb1. Also perhaps due to a BIOS problem or image problem, USB booting may not always work.

PXE Boot Preparation

PXE boot requires the X41 Tablet to be connected to a wired ethernet network that is configured for DHCP and TFTP. This can be accomplished by connecting the tablet to another host over a ethernet corssover cable.

Configure the DHCP server to hand out boot instructions. In the /etc/dhcpd.conf file, include:

 host pxeclient {
     hardware ethernet 00:0a:e4:35:a9:12;         # X41 Tablet LAN MAC Adress noted above
     filename "/pxelinux.0";
     fixed-address 192.168.1.60;                  # IP Address for X41 Tablet
     next-server 192.168.1.1;                     # IP Address of TFTP server
 }

Note: Replace the italicized fields above with appropriate values for your hardware. A sample dhcpd.conf file can be found here.

Configure the TFTP server. If the TFPT server uses xinetd, you may need to enable it in /etc/xinetd.d/tftp by setting disable = no. Also note root of the server. This is usually /tftpboot. Copy the pxelinux files present on the FC4 disk in images/pxelinux/ to the TFTP root. You will need two additional files pxelinux.0 and pxelinux.cfg/default.

$ find /tftpboot
/tftpboot
/tftpboot/pxelinux.0
/tftpboot/initrd.img
/tftpboot/vmlinuz
/tftpboot/pxelinux.cfg
/tftpboot/pxelinux.cfg/default


Contents of /tftpboot/pxelinux.cfg/default:

 DEFAULT vm
 SERIAL 0 9600
 label vm
 kernel vmlinuz
 append initrd=initrd.img ramdisk_size=9372 root=/dev/rd/0

Installing

Restart the X41 Tablet. If you are using a USB key, insert it before switching on the tablet. Press F12 during startup to display the temporary boot device screen. Select either USB HDD or Netowkr Boot based on your medium of choice. This should bring up the Fedora Core installer. Once the installer has started up, Fedora Core can be installed over the web, ftp, nfs, USB disk etc. The rest of the installation is straight forward and described in detail here.

NOTE!
There may be some screen corruption or shimmering effects in the graphical installer. This can be fixed after installation is complete as explained in the X Server Configuration below.


Configuration

X Server

The X41 Tablet, uses an Intel integrated 915 video device. This is supported by the i810 driver and can be selected from the graphical xserver screen by selecting the Intel 915 option. Note: The i810 driver on xorg-6.8.2 and earlier DO NOT support the card. Use the vesa (generic) option for such servers. The LCD screen is a 1024x768 display. The stylus requires the linuxwacom package. This should automatically be installed as part of FC4. If you update FC4 with the latest rpms the i810 driver will work. You can use system-config-display to change the driver, but do it before adding configuration for stylus since it will drop the stylus related settings. For some additional information about rotating the screen and installing FC4 see http://www.dklevine.com/general/software/tc1000/x41f4.html


NOTE!
  1. The first time vesa (generic) is selected, there may appear to be some screen corruption or shimmering effects. It should go away after a reboot.
  2. The stylus may not work as a mouse immidiately. See the Stylus section below.
  3. Screen rotation on-the-fly currently does not work. It may be possible to pass a kernel parameter at boot time to rotate the framebuffer into a portrait orientation, but this has not been confirmed.


Sample /etc/X11/xorg.conf

 Section "ServerLayout"
 	  Identifier     "single head configuration"
 	Screen      0  "Screen0" 0 0
 	InputDevice    "Mouse0" "CorePointer"
 	InputDevice    "Keyboard0" "CoreKeyboard"
 	InputDevice    "cursor" "SendCoreEvents"
 	InputDevice    "stylus" "SendCoreEvents"
 EndSection
 
 Section "Files"
 	RgbPath      "/usr/X11R6/lib/X11/rgb"
 	FontPath     "unix/:7100"
 EndSection
 
 Section "Module"
 	Load  "dbe"
 	Load  "extmod"
 	Load  "fbdevhw"
 	Load  "glx"
 	Load  "record"
 	Load  "freetype"
 	Load  "type1"
 	Load  "dri"
 EndSection
 
 Section "InputDevice"
 	Identifier  "Keyboard0"
 	Driver      "kbd"
 	Option	    "XkbModel" "pc105"
 	Option	    "XkbLayout" "us"
 EndSection
 
 Section "InputDevice"
 	Identifier  "Mouse0"
 	Driver      "mouse"
 	Option	    "Protocol" "IMPS/2"
 	Option	    "Device" "/dev/input/mice"
 	Option	    "ZAxisMapping" "4 5"
 	Option	    "Emulate3Buttons" "yes"
 EndSection
 
 Section "InputDevice"
       Driver        "wacom"
       Identifier    "cursor"
       Option        "Device"        "/dev/ttyS0"
       Option        "Type"          "cursor"
       Option        "ForceDevice"   "ISDV4"
       Option        "Mode"          "Absolute"
       Option        "Button3"	      "2"
       Option        "Button2"	      "3"
       Option        "TPCButton"     "on"
 EndSection
 
 Section "InputDevice"
       Driver        "wacom"
       Identifier    "stylus"
       Option        "Device"        "/dev/ttyS0"
       Option        "Type"          "stylus"
       Option        "ForceDevice"   "ISDV4"
 EndSection
 
 Section "Monitor"
 	Identifier   "Monitor0"
 	VendorName   "Monitor Vendor"
 	ModelName    "LCD Panel 1024x768"
 	HorizSync    31.5 - 48.5
 	VertRefresh  40.0 - 70.0
 	Option	    "dpms"
 EndSection
 
 Section "Device"
   # The i810 driver under xorg-6.8.2 and earlier DO NOT support the
   # Intel Integrated 915 chipset. Use the generic vesa driver on old
   # versions. 
 	Identifier  "Videocard0"
 	Driver      "vesa"
   #   Driver      "i810"
 	VendorName  "Intel"
 	BoardName   "Intel 915"
   # Once the i810 supports the chipset, this section can be changed
   # to use the new driver by using the appropriate Driver line
 EndSection
 
 Section "Screen"
 	Identifier "Screen0"
 	Device     "Videocard0"
 	Monitor    "Monitor0"
 	DefaultDepth     16
 	SubSection "Display"
 		Viewport   0 0
 		Depth     16
 		Modes    "1024x768" "800x600" "640x480"
 	EndSubSection
 EndSection
 
 Section "DRI"
 	Group        0
 	Mode         0666
 EndSection

Stylus

The stylus is not recognized in Fedora Core at startup. Connect /dev/ttyS0 to the stylus by including the following line in /etc/rc.d/rc.local.

 setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig

If stylus problems persist, try upgrading to the latest linuxwacom package: linuxwacom-0.6.8-5.i386.rpm

NOTE!
  • When the stylus goes out of range from the screen, the mouse cursor warps to the top-left corner. When the mouse comes back in range, the cursor should warp back to the right spot. This can be particularly annoying if the temporary jump causes focus and menus to change. This is a known bug in the wacom X driver.

Audio

Audio works out of the box on X41 Tablets with the ALSA intel8x0 driver. Note: Sometimes the mixer settings are muted on startup resulting in no sound. This can be fixed using any alsa mixer such as aumix, amixer, gnome-volume-control etc. If the mixers are being repeatedly muted, then first unmute them and set them to desirable levels. As root, execute the command # /usr/sbin/alsactl store. Finally, add the following line to /etc/rc.d/rc.local.

 /usr/sbin/alsactl restore

ACPI

ACPI events are supported out of the box with ibm-acpi. Install it by executing:

$ wget http://www.cs.cornell.edu/~saikat/ibm-acpi-0.11-2.fc4.i386.rpm
# rpm -Uvh ibm-acpi-0.11-2.fc4.i386.rpm

Change the button bindings in /etc/acpi/events. If you do not plan to use Suspend to Disk (below), set the power button to halt the system instead of hibernating by changing /etc/acpi/events/hibernate.

Suspend

Suspend to Disk (Hibernation)

Software suspend works using Software Suspend 2. Follow the installation directions at http://mhensler.de/swsusp/. To automatically fix the stylus lock-up after resuming, add the following line to /etc/hibernate/hibernate.conf

OnResume 96 setserial /dev/ttyS0 port 0x0200 irq 5 autoconfig

If the stylus still locks up, see the Stylus section for the latest driver. ACPI power events are not delivered if AC status changes during hibernation. To tune the laptop after resume, add the following line to /etc/hibernate/hibernate.conf

OnResume 20 /etc/acpi/actions/battery.sh

Suspend to Memory (ACPI Sleep)

ACPI suspend to memory does not work with the 2.6.12 and earlier kernels because the X41 Tablet uses SATA access to the harddisk and the kernel SATA driver is not power-aware. See Problems with SATA and Linux for further discussion and solutions. (should be fixed in 2.6.15)

In any case, in /etc/grub.conf append the kernel parameter: acpi_sleep=s3_bios

This is required to fix the problem where the screen doesn't turn back on after resuming from ACPI sleep.

ATTENTION!
Do NOT attempt ACPI sleep on the X41 Tablet running kernel 2.6.12 or earlier since the harddisk SATA driver doesn't resume properly. This can result in FILESYSTEM CORRUPTION.

Extra Buttons

Extra buttons work out-of-the-box. The package tpb provides some on-screen feedback for the volume, brightness and thinklight buttons. # setkeycodes can be used to map the tablet buttons (details).

To map the Tablet Up and Down buttons to Page Up and Page Down keys, and the Tablet Enter and Esc buttons to their respective counterparts, add the following to /etc/rc.d/rc.local.

setkeycodes 6e 109 6d 104 69 28 6b 1

Wireless Card

The 802.11b/g card is supported by the ipw2200 driver. The easiest way to install it is to get the package from ATRpms. (Warning: please be warned about ATrpms: http://fedoraproject.org/wiki/JohnMahowald/ATrpmsWarning

$ wget http://dl.atrpms.net/all/atrpms-kickstart-28-1.rhfc4.at.i386.rpm
# rpm -Uvh atrpms-kickstart-28-1.rhfc4.at.i386.rpm
# apt-get update && apt-get dist-upgrade
# apt-get install ipw2200-firmware

Some (newer) X41 Tablets use the Atheros chipset. Download and build the drivers from http://sourceforge.net/projects/madwifi/

Bluetooth

Some (newer) X41 Tablets support bluetooth. My 18695CU, unfortunately, does not. So I have no clue.

Software

Network Manager

NetworkManager is a rather useful utility included in Fedora Core 4 that provides windows-like ease of configuring wireless and wired network as and when they are available. Give it a try by enabling it in the initscripts by running # chkconfig NetworkManager on && /etc/init.d/NetworkManager restart as root and running $ NetworkManagerInfo from a X session. The first command needs to be executed only once, while the second should be executed after every login. This can be automated by adding it to the list of startup programs in Desktop > Preferences > More Preferences > Sessions > Startup Programs.

Sun's Java

Sun's Java VM is needed by the Jarnal application below. Due to licensing issues, the JVM cannot be packaged but needs to be build by the end user. JPackage provides a build environment as follows:

  • Download the build: $ wget http://mirrors.dotsrc.org/jpackage/1.6/generic/non-free/SRPMS/java-1.5.0-sun-1.5.0.05-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_05-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: # rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-1.5.0.05-1jpp.i586.rpm
  • Install the fonts: # rpm -Uvh /usr/src/redhat/RPMS/i586/java-1.5.0-sun-fonts-1.5.0.05-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

Jarnal is a Notetaking application, much like Microsoft Journal for windows. It requires Sun's Java VM above.

It should create a menu entry Notes under Applications > Graphics.