Re: eGalax USB touchscreen issues

From: Vladimir Kondratyev <wulf_at_FreeBSD.org>
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:

[eGalax]
MatchUdevType=tablet
MatchVendor=0x0EEF
MatchProduct=0x0001
AttrResolutionHint=26x43


-- 
WBR
Vladimir Kondratyev