Hello all,
I also had big problems to get working
eGalax USB Touch Screen (0eef:0001) on Ubuntu. Here is a solution how I get it working.
I used a fresh install of
32-bit Ubuntu 9.04 (Jaunty Jackalope) with all updates. I suppose that this also works on older versions of Ubuntu.
I followed touch screen manual instructions, tips found from this topic and instructions wrote here
http://wiki.linuxquestions.org/wiki/EGalax_Touchscreen
and made a few changes.
First problem was that I had very old version of utility which has no support for the newest versions of X. From here I found the newest stable version
2.06.2905
http://www.tvielectronics.com/Touch_...Downloads.html
There is also beta version 2.07.3122
First I tried with inbuilt
HID kernel module and inbuilt
USB kernel module without success. So I try to build
TouchKit module.
I had two problems building
module tkusb. First problem was that file
Module.symvers was missing. Locating this file and copying it to linux source folder fixed the problem. Second problem was that file
semaphore.h was missing. Modifying file
tkusb.h fixed this problem.
Then I had a problem to load module tkusb during system startup. I try to modify file
/etc/rc.local as mentioned on the instructions with no success. So I made a
boot-up script addTouchKit which loads the module and put the script to folder
/etc/init.d. Now the module will be loaded on startup.
Last problem was
kernel module usbhid. Touch panel used this module by default even if tkusb module was loaded. I fixed this by removing module
usbhid.ko for a while during boot-up so panel got time to recognize tkusb module. I made changes to the script addTouchKit.
It took almost one week to get the touch screen working but it was worth-while.
Here are detailed instructions step by step:
1) Getting required packages and TouchKit utility
Code:
sudo apt-get install linux-source
cd ~
wget http://shop-on-line.tvielectronics.com/download/TouchKit-2.06.2905-32b-k26.tar.gz
2) Installing utility
Code:
sudo chmod -x TouchKit-2.06.2905-32b-k26.tar.gz
sudo tar -xzvf TouchKit-2.06.2905-32b-k26.tar.gz
cd eGalaxTouch32
sudo sh setup.sh
Utility will be installed to
/usr/local/eGalaxTouch32/
3) Building the tkusb module
Code:
cd /usr/src
uname -r # Checks linux kernel version
sudo chmod -x linux-source-2.6.xx.tar.bz2 # Change xx
sudo tar -xjvf linux-source-2.6.xx.tar.bz2
sudo cp ./linux-headers-`uname -r`/Module.symvers ./linux-source-2.6.xx
sudo ln -s linux-source-2.6.xx /usr/src/linux
cd /usr/src/linux
sudo make oldconfig
sudo make prepare
sudo make modules SUBDIRS=scripts/mod/
cd /usr/local/eGalaxTouch32/USBSrc
sudo gedit Makefile
Around line 16, find
Code:
KDIR := /lib/modules/$(shell uname -r)/build
Replace this line with
Code:
KDIR := /usr/src/linux
Around line 25, find
Code:
include <ams/semaphore.h>
Replace this line with
Code:
include <linux/semaphore.h>
Code:
sudo make all
sudo cp tkusb.ko /lib/modules
4) Modifying file /etc/X11/xorg.conf
Code:
sudo gedit /etc/X11/xorg.conf
Change
Option "Device" to
"/dev/tkpanel0" in InputDevice section of touch screen
Part of the
file xorg.conf
Code:
...
Section InputDevice
Identifier "EETI"
Option "Device" "/dev/tkpanel0"
...
EndSection
...
5) Making startup script to load the module
Code:
sudo gedit /etc/init.d/addTouchKit
Content of file addTouchKit
Code:
#!/bin/sh
rmmod /lib/modules/`uname -r`/kernel/drivers/hid/usbhid/usbhid.ko
insmod /lib/modules/tkusb.ko
sleep 1
insmod /lib/modules/`uname -r`/kernel/drivers/hid/usbhid/usbhid.ko
Code:
sudo update-rc.d addTouchKit defaults
sudo chmod 441 /etc/init.d/addTouchKit
Now panel is installed. Reboot your computer.
6) Starting utility and calibrating the panel
Code:
cd /usr/local/eGalaxTouch32 && ./eGalaxTouch
Bookmarks