Re: eGalax USB touchscreen issues

From: Vladimir Kondratyev <>
Date: Tue, 17 Aug 2021 10:33:32 UTC
On 17.08.2021 01:02, Mark Kane wrote:
> On 2021-08-14 07:44, Vladimir Kondratyev wrote:
>> On 12.08.2021 06:37, Mark Kane wrote:
>> This report descriptor looks good and differs from post 2014 one. It
>> belongs to device which uses legacy MS stylus protocol. I attached a
>> patch which implements support for it in hpen(4) driver. Also it is
>> applicable to post 2014 devices as they have stylus top level collection
>> too.
>>> Touch on this screen fully works on Linux using the binary EETI driver.
>>> Could there be something different about the USB controller in some of
>>> these screens that is causing the corruption on FreeBSD? If there is any
>>> other info to gather from either install I'm happy to.
>> I do not khow how to debug this issue. May be hselasky can help here.
>> I can offer a workaround. Simple tool to upload fixed pre-2014 report
>> descriptor in to HID core through hidraw(4) interface.
>> Just compile it and run using proper /dev/hidraw# device node path as
>> parameter:
>> # cc -o setrdesc setrdesc.c
>> # ./setrdesc /dev/hidraw0
>> Don't forget to kldload hidraw.ko before.
> Thanks for the patch and workaround for pre-2014 screens. With these and
> a 2012 screen we get event7 and event8 created. Events are heard from
> event8 but X has an error adding the input:
> root@freebsd # dmesg | grep hidraw
> hidraw0: <eGalax Inc. USB TouchController Raw HID Device> on hidbus0
> hidraw0: no report descriptor
> hidraw1: <Lite-On Technology Corp. USB Multimedia Keyboard Raw HID
> Device> on hidbus1
> root@freebsd # ./setrdesc /dev/hidraw0
> [here we get console messages about hms0/hpen0 attaching]
> hms0: <eGalax Inc. USB TouchController Tablet> on hidbus0
> hms0: 2 buttons and [XY] coordinates ID=1
> hpen0: <eGalax Inc. USB TouchController Pen> on hidbus0

> [   161.110] (EE) event8  - eGalax Inc. USB TouchController Pen:
> libinput bug: missing tablet capabilities: btn-stylus resolution.
> Ignoring this device.

You need resolution quirk in libinput quirks

Try to create /usr/local/share/libinput/90-egalax.quirks file with
following content:


Vladimir Kondratyev