| Henryk Fukś | |||||||
|
|
main :: linux :: tablet
Xandros Linux on LG Electronics LT-20 tablet
NOTE: This article, written in 2005 is somewhat dated now. Many things described here are done automatically in recent Linux distributions. HardwareI purchased the tablet from Online Electronics. Specifications can be found on the manufacturer's web page. It is a lightweight (1.75kg) tablet based on Intel Centrino with 1.5GHz Pentium M CPU, I got it with 1GB of RAM. It does not come with any disk drive by default, but I purchased external CD/DVD burner for it. I have decided to install Debian-based Xandros 3.0 Linux on this tablet.InstallationAt first, I planned to keep XP partition, but I had difficulties resizing it. Finally I got frustrated, booted Knoppix, and wiped out the entire disk withdd if=/dev/zero of=dev/hda This is a cruel way of removing Windows :-), but it makes sure that there is no trace of it left. Xandros 3.0 installed without major problems. I had to change BIOS settings to enable booting from external CD room (connected via USB port). Wireless card and sound worked out of the box. GraphicsXandros installer recognized Intel 82852/855GM integrated graphics card, and configured X to use i810 display driver. I had one problem with this driver: when I pressed Ctrl+Alt+F1 to get text console, I got blank screen. I solved this by enabling i810fb framebuffer kernel module. In /etc/lilo.conf, I changed the lineappend="rw acpi=on " to append="rw acpi=on video=i810fb " After modifying lilo.conf, it is necessary to run /sbin/lilo -C /etc/lilo.conf Tablet digitizer screenThe tablet uses standard wacom tablet device, and an excellent driver is available for this device fromhttp://linuxwacom.sourceforge.net. To compile it, I had to download "setserial" and "libncurses5-dev" packages. The wacom tablet can be accessed via /dev/ttyS0 port. I obtained its address 0x300 from Windows Device Manager. The port needs to be configured by "setserial" command, and this has to be done before X starts. Normally one would put such command in /etc/rc.local, but Debian-based distros do not have rc.local. One can, however, create rc.local by running the following script: echo '#!/bin/sh' > /etc/rc.local chmod 744 /etc/rc.local RL=`grep ':initdefault:' /etc/inittab | cut -d: -f2` echo "LO:$RL:once:/etc/rc.local" >> /etc/inittab killall -HUP init After executing this script, I added the following line /bin/setserial /dev/ttyS0 port 0x300 autoconfig to /etc/rc.local. The next step was to compile and install wacom driver. If the port is configured correctly, typing wacdump -f c100 /dev/ttyS0 should produce an output like this: ![]() When the tablet stylus touches the screen, POS_X and POS_Y show its coordinates. I noticed that when I placed the cursor in the lower right corner, the coordinates (which correspond to maximum x and maximum y values) were 24576 and 18432. This means that they were above the upper range of POS_X and POS_Y, but this does not seem to be a problem. The next step was to configure X. Xandros 3 uses 2.6.9 Linux kernel and X.org ver. 6.7. There was no pre-compiled driver in "prebuilt" directory of linuxwacom-0.6.6, so I used the closest possible, for X.org version 6.8. I copied the driver to X modules directory: cp wacom_drv.o_6.8k2.6 /usr/X11R6/lib/modules/input/wacom_drv.o Then I had to modify /etc/X11/xorg.conf by adding the following 3 sections Section "InputDevice" Driver "wacom" Identifier "cursor" Option "Device" "/dev/ttyS0" Option "ForceDevice" "ISDV4" Option "Type" "cursor" Option "Mode" "absolute" Option "Speed" "3.0" Option "Threshold" "2" Option "Tilt" "on" #Option "DebugLevel" "10" EndSection Section "InputDevice" Driver "wacom" Identifier "stylus" Option "Device" "/dev/ttyS0" Option "Type" "stylus" Option "ForceDevice" "ISDV4" Option "Mode" "absolute" Option "Tilt" "on" #Option "TiltInvert" "on" Option "Threshold" "2" #Option "DebugLevel" "10" EndSection Section "InputDevice" Driver "wacom" Identifier "eraser" Option "Device" "/dev/ttyS0" Option "ForceDevice" "ISDV4" Option "Type" "eraser" Option "Mode" "absolute" Option "Tilt" "on" #Option "TiltInvert" "on" Option "Threshold" "2" #Option "DebugLevel" "10" EndSection and adding these 3 lines to ServerLayout section: InputDevice "cursor" "SendCoreEvents" InputDevice "stylus" "SendCoreEvents" InputDevice "eraser" "SendCoreEvents" After restarting X with Ctrl+Alt+Backspace the pen worked flawlessly! It is possible to further calibrate the pen, its perssure sensitivity, etc. using xsetwacom command, but the default settings work well for me. Detailed how-to can be found here. Screen rotationIn order to start X in portrait mode, one has to use fbdev X driver (framebuffer device). This is because, unfortunately, i810 does not support rotation. Adding a line vga=791 to /etc/lilo.conf enables kernel framebuffer module. I had to play quite a bit with wacom driver parameters to make it work in the rotated mode. The rotated xorg.cong can be found here.When I want to use portrait mode, I modify xorg.conf (by running a simple script) and restart X. I have to say that I do not use it very often. Synaptics touchpadSynaptics touchpad gave me a lot of headache. While the touchpad worked out of the box, it was too sensitive for my taste, so I wanted to disable tapping.I downloaded the newest Synaptics touchpad driver, and compiled it. When I used "checkinstall" to install it, it did not work. I had to copy synaptics_drv.o manually to X modules directory (I later discovered that "make install" does not work either - only manual copying does). The second problem seems to be kernel bug: the synaptics driver fails to detect the touchpad when X starts. To make it work, one has to unload kernel module psmouse ans reload it again with option psmouse_noext=1. I added the following two lines to my rc.local: /sbin/modprobe -r psmouse /sbin/modprobe psmouse psmouse_noext=1 The strange thing is that in dmesg this produces a message "psmouse: Unknown parameter `psmouse_noext'", although everything works fine. Finally, I had to add Option "AlwaysCore" "on" to all wacom InputDevice sections of my xorg.conf, and modify the ServerLayout section to look like this: Section "ServerLayout" Identifier "Default Layout" Screen "Screen1" InputDevice "Keyboard1" "CoreKeyboard" InputDevice "mouse.usb" "AlwaysCore" InputDevice "cursor" "SendCoreEvents" InputDevice "stylus" "SendCoreEvents" InputDevice "eraser" "SendCoreEvents" InputDevice "Synaptics Mouse" "CorePointer" EndSection It is important that only one InputDevice is "CorePointer". Tapping can be disabled by setting Option "MaxTapTime" "0" in the InputDevice section of the Synaptics mouse. Battery and ACPI
Xandros did not recognize the battery automatically. For some reason,
it does not load "ac" and "battery" modules. I added the following two
lines to rc.local to load these modules: |
||||||