Installing Fedora Core 4 on a ThinkPad X41 Tablet

From ThinkWiki
Revision as of 11:53, 2 September 2005 by 128.84.223.109 (Talk) (Extra Buttons)
Jump to: navigation, search
 WORK IN PROGRESS

Success Chart

Item Working Notes
Installation Network Yes
USB Not Tested
Display Laptop Screen Yes vesa driver until i810 supports the Intel 915 chipset
CRT / Projector Incomplete Laptop screen turns off in test config.
On-the-fly Screen Rotation No
Stylus Yes wacom serial driver. Doesn't work after resume from software suspend.
Power Management Software Suspend (hibernate) Yes swsusp2
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.

Preparation

The X41 Tablet comes installed with Windows XP Tablet edition. Before installing Fedora Core, 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.


Installation

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

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.

 {{{2}}} 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.


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

Note: Replace the italisized values with those observed in the Windows stylus configuration above.

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.
  • The stylus stops working after resuming from software suspend.


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


Hibernation

Software suspend works using swsusp2. Follow the installation directions at http://mhensler.de/swsusp/.

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. 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 ([Tablet Hardware Buttons|details]).

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

# setkeycodes 6e 108 6d 103 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.

 # 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

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 or # /etc/init.d/NetworkManager restart as root and running {{{2}}} NetworkManagerInfo from a X session.

Bluetooth

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