Thursday, February 24, 2011

Enabling the touchscreen in Linux for the Exopc / Wetab

The Exopc is a Windows 7 Slate with some pretty incredible specifications by today's standards and costs less than Android equivalents (or even many with far less "Oommph" to them) so I thought to begin a port of Android over. I've never done this before but it seemed logical that the first step would be to get Linux working entirely first since Android is really just a layer over Linux.

Using a USB flash device install approach, I got Ubuntu 10.10 x86 (and ultimately Debian 6/Squeeze amd64) working except for bluetooth and the touch panel. I Googled for days and found all sorts of tutorials and HOW-TOs on the issue, and with Ubuntu 32bit, installing the EETI eGalax binary package took care of the matter AND provided a rather nice control panel (maybe too nice since it helped me screw up right-click functionality).

Debian Squeeze amd64 was another beast though and the primary issue where the EETI installer was concerned, comes down to hardware IDs and Xorg implementations. Their installer script isn't very robost and makes some very bad assumptions.

I ended up back at a tutorial I was constantly running across written by Samiux. The advice there made no difference for me though. After checking and double checking, I could see that xinput recognized the panel, but every time I tried to calibrate (with the stock app included with Debian or the one he suggested), I'd hit the 2nd point and it just wouldn't proceed. The cursor would go top left and that was all there was to it. I Googled more and found another, far less verbose tutorial, but the one thing it mentioned, that I recognized, had a very important difference compared to Samiux's.

The key is underlined and highlighted in the following because it's easy to miss:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.noloop=1 usbhid.quirks=0xeef:0x1:0x40"
That "1" in "0x1" actually represents a hex value equivalent to "0x0001" but it was different in this other tutorial I saw. This made me recognize the "0xeef" prior as matching part of the device ID for my panel is it shows using 'lsusb'. Mine is "0xeef:0x72a1" so I updated that line to read:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.noloop=1 usbhid.quirks=0xeef:0x72a1:0x40"
I once again ran update-grub, reboot, and I was happy to find that the touch screen would now calibrate and worked quite nicely. Hopefully that fact that you found this means you're close to getting your setup working too.

If that didn't do the trick for you, I suggest your next step is a custom kernel to be sure you're using the latest eGalax drivers in the kernel. In my case this was a good idea regardless because I needed a kernel that was more appropriate for this Intel Atom system.

I don't know anyone will have interest so I won't do it proactively, but if you'd like my kernel (for use with the Exopc), let me know in a comment and I'll set you up.


Anonymous said...

Hi Michael,
Very good article! Thank you for posting it. I am trying to install Linux Mint XFCE 64 bit (LMXE) on my Exopc, but I am having a very hard time getting the eGalax drivers to install, let alone work. LMXE is a "rolling updates" distro based on Debian Testing. Do you think I can get the right click gesture (any of them) to work on XFCE, or does XFCE need to be modified for this? I got Xubuntu 11.04 to work with the touch panel (just installed, really) but multitouch does not work, it acts like a mouse with only one button.

Any pointer would be appreciated!



rainabba said...

Wish I could be of more help, but I'm just really good at research, trial, and error where anything beyond the basics of BASH and Linux administration is concerned. Hardware support in Linux is great when it works and a puzzle when it doesn't :) I ended up selling my ExoPC because I couldn't get Android compiled for it and there are so many Android Tablet options now which are cheaper and more well suited (and can run Linux very well also). After owning a Xoom, Galaxy tab 10.1, Acer Iconia, and Toshiba Thrive, I can confidently say the Thrive is the best of the bunch if you don't mind something a bit on the thicker side.

matt said...

Hey there,

I just got an EXOPC as well, trying to do some dev on it using MeeGo. I'd love to get linux running on it though, I really don't know where to start. Do you think you could help me out?

Thanks for posting this info - that device hex value bug would have been a needle in a haystack!

Post a Comment