EGalax Touchscreen

This describes how to set up an eGalax touch screen. It has been tested on Debian Linux but other 2.6 kernel based distros should be fairly similar. You will need to be the root user for most of this guide.

Getting required packages
You will need the following packages to successfully compile the module for the touchkit driver.

apt-get install gcc linux-source-2.6.18 make

Be sure to change the linux source to the kernel you are using. Use the command uname -r to find your current kernel version.

Build the tkusb.ko module
Extract the kernel and create link cd /usr/src tar -xjvf linux-source-2.6.18.tar.bz2          # Once again change to your kernel version ln -s linux-source-2.6.18 /usr/src/linux cd /usr/src/linux

Get ready to compile a module make oldconfig make prepare make modules SUBDIRS=scripts/mod/

Change to your home directory and get the Touchkit driver cd ~ wget http://210.64.17.162/web20/drivers/websit%20driver/Linux/TouchKit_1.07.0831.tar.gz  # This may change... Check out http://www.egalax.com.tw tar -xzvf TouchKit_1.07.0831.tar.gz cd ./TouchKit/USBSrc nano Makefile

Change the line KDIR := /lib/modules/$(shell uname -r)/build to KDIR := /usr/src/linux

Write the file to disk CTRL-x and quit

Make the module make all

You should see something similar to below CC [M] /root/TouchKit/USBSrc/tkusb.o Building modules, stage 2. MODPOST CC     /root/TouchKit/USBSrc/tkusb.mod.o LD [M]  /root/TouchKit/USBSrc/tkusb.ko make[1]: Leaving directory `/usr/src/linux-source-2.6.18' Now copy the module to say /lib/modules and open /etc/rc.local for editing cp tkusb.ko /lib/modules nano /etc/rc.local Modify rc.local to load the module on bootup. Insert the following text into the /etc/rc.local file. rmmod touchkitusb insmod /lib/modules/tkusb.ko Save the file and quit. We must blacklist the usbtouchscreen driver from loading. (I really should have looked into if this module would have worked properly) nano /etc/modprobe.d/blacklist Add the following line blacklist usbtouchscreen Reboot the computer reboot After reboot check to be sure the touchscreen is detected and using the correct driver. cat /proc/bus/usb/devices You should see something similar to below somewhere in there T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  4 Spd=1.5 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1 P: Vendor=0eef ProdID=0001 Rev= 1.00 S: Manufacturer=eGalax Inc. S:  Product=USB TouchController C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=TouchKit E: Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=5ms
 * 1) TouchKit kernel module section begin ##
 * 1) This module may be renamed “usbtouchscreen”.
 * 1) for Kernel 2.6.x only.
 * 2) TouchKit kernel module section end ##

The thing to note is in the I: line shows Driver=TouchKit. If you see this you got the driver installed properly, congrats.

Now we have to setup X to load its driver so you can actually use the touchscreen. See the Driver Guide.pdf for information on this in the tar file we downloaded earlier. ~/TouchKit/Guides/Driver Guide.pdf The guide is easy to understand and is much easier to accomplish than the driver installation.. Good Luck.