Tuesday, May 4, 2010

How to make touchscreen work in Ubuntu 10.04 (Lucid Lynx)



I have a HP tx1003au laptop and the thing that I like most about it is the touchscreen. I have been using Ubuntu since the last few years and making the touchscreen work has always been difficult. It takes a few day of web searching and a lot of failed effort before it starts working.

When Ubuntu 10.04 was launched a few days ago, I knew that I had a few days of work ahead of me. But the temptation to upgrade to the newest version of Ubuntu is always too much to resist. After installation, I found that though touch was registered, the movement of the pointer was restricted to the top left corner of the screen. I had to work on it for two days before coming up with a solution that worked. Before telling you how I made it work, I want you to know that I am a Linux user and not a Linux expert. Secondly, I found everything on the Internet and I did not come up with anything new. But I could not find everything in one place. That's why I decided to write this simple how-to.

I followed the steps mentioned below :

1. Enter the following command in a terminal:

sudo apt-get install xserver-xorg-input-evtouch

2. Get eGalax touchscreen driver from

http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm

3. Install the driver by using the following command

sudo sh setup.sh

I selected option 3 (USB) during installation and chose yes when asked to blacklist.

4. Reboot

5. Now a new problem arises. When you touch the screen you can see two pointers. To fix this you need to add the command given below to your Startup Programs (System > Preferences > Startup Applications). You can give whatever name and comment you like in the Startup Program window.

xinput --set-int-prop "eGalax INC. USB TouchController" "Device Enabled" 8 0

(If your xinput device is not eGalax INC. USB TouchController then you may need to replace it with the exact name of your device. Use the command xinput --list which displays a list of your xinput devices.)


6. The xorg.conf file needs to be edited. Open the file using sudo gedit /etc/X11/xorg.conf and change the value of option SkipClick to 0.

8. Reboot.

9. Calibrate using the following command:

eGalaxTouch

The touchscreen should be working now. I tried a number of things before coming up with this fix. Some of the things which did not work for me are:
  • TouchKit drive installed properly but could not find the touchscreen controller.
  • Blacklisting usbtouchscreen in /etc/modprobe.d/blacklist.conf did not work.
  • Installing eGaxal beta driver caused problems with nVidia driver.
I can now used my touchscreen till the next version of Ubuntu is released. I hope  by then they will make the touchscreen work out of the box and I don't have to write another article :)

7 comments:

  1. Thanks for your guide. I am also using an eGalax touch screen on my new Lucid ubunut version. I hope it works. Going to try it out tonight.

    ReplyDelete
  2. thanks for the help. i do however still have the two cursers.
    when I run the
    "xinput --set-int-prop "eGalax INC. USB TouchController" "Device Enabled" 8 0"
    command I get this:
    unable to find device eGalax INC. USB TouchController


    Any ideas?

    ReplyDelete
  3. Sorry for the last comment. A bit of browsing gave the solution.

    I ran:
    xinput --list

    which listed my xinput devices

    instead of
    "eGalax INC. USB TouchController"

    min is called
    "eGalax Inc. Touch"

    again thanks for the guide though!

    ReplyDelete
  4. Thanks for your comment Thomas. I faced the same problem myself but forgot to mention it. Anyway, I have made the necessary change to the post.

    ReplyDelete
  5. any idea whythe display dosn't work ? i pluged it in and all it does is run some sort of de-bugging endlessly while booting

    ReplyDelete
  6. Wow, so simple, after much searching, this fixed it right away. Thanks for the post.

    ReplyDelete