eGalax USB touch panel on ExoPC Slate vs. FreeBSD and X11

Bill Paul wpaul at FreeBSD.ORG
Fri Nov 16 00:11:34 UTC 2012

Okay. I have my doubts that anyone will be able to answer this question
but I'm going to try anyway.

I have an ExoPC Slate tablet with FreeBSD 9.0 freshly installed on it,
and it has the following touch screen device:

ugen0.2: <eGalax Inc.> at usbus0
ums0: <eGalax Inc. USB TouchController, class 0/0, rev 1.10/10.06, addr 2> on usbus0

tablet# usbconfig -u 0 -a 2 dump_device_desc
ugen0.2: <USB TouchController eGalax Inc.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x0eef 
  idProduct = 0x72a1 
  bcdDevice = 0x1006 
  iManufacturer = 0x0001  <eGalax Inc.>
  iProduct = 0x0002  <USB TouchController>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 

I put the complete dmesg.boot from FreeBSD 9.0 on the tablet at:

This device is detected by the ums(4) driver as a USB mouse. However, it
doesn't quite work right as the ums(4) driver doesn't support multitouch
gestures. It senses taps on the screen as button presses, but the cursor
doesn't move.

My question is:

Can someone please tell me how to get this device to work with Xorg in
FreeBSD (in this case, FreeBSD 9.0)?

Here are some things I'd prefer you didn't tell me:

- "Try the uep(4) driver!" Yes, I know about the uep(4) driver. It's for
  a different class of device. It doesn't support this one.

- "Try this patch!" I'm hoping for an officially supported solution
  rather than an experimental patch. I mean, it's not that I don't
  appreciate someone's hard work and all, but these things have been
  around for a while now; you'd think support for it would already
  be integrated. And besides, it works with Linux. (You don't know
  how long I've been wanting to say that.)

- "Go to this web page!" This _might_ be an acceptable answer _IF_ the
  said page contains specific instructions which are known to work. I
  already searched through many web pages before I came here.

- "Hey Bill, why don't you just write your own driver?" Because I don't
  write FreeBSD drivers anymore, and I certainly don't write USB HID
  drivers, and because fuck you, that's why. (Note: I said that last
  part with a smile on my face, just in case it wasn't clear. Sometimes
  people have a hard time grasping my particular brand of humor.)

This particular touch screen is basically a USB HID class device. I
suspect there's some kind of gimmick you can do with libusb to get it
to work with the X server, but I've already spent some time on various
experimenmts and come up empty. As I said, I'm hoping there's official
support for this kind of device, and I just need to know the right
magic incantation to turn it on.

Any help would be appreciated.


-Bill Paul            (510) 749-2329 | Member of Technical Staff,
                 wpaul at | Master of Unix-Fu - Wind River Systems
   "I put a dollar in a change machine. Nothing changed." - George Carlin

More information about the freebsd-questions mailing list