Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 May 2021 01:32:07 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Oliver Fromme <olli@fromme.com>, freebsd-usb@freebsd.org
Subject:   Re: Touchscreen "TSTP MTouch"
Message-ID:  <2eb19f0a-9c01-4b06-9a3e-c379665dbcb9@selasky.org>
In-Reply-To: <202105071729.147HTxQe051508@nox.thiemo.net>
References:  <202105071729.147HTxQe051508@nox.thiemo.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 5/7/21 7:29 PM, Oliver Fromme wrote:
> Hi,
> 
> I'm not sure if this is the right place to ask ... This is
> the first time I'm trying to get this sort of device to work,
> so please be gentle. :-)
> 
> I've bought a 7" touchscreen.  It's intended for an RPi, but
> it can also be connected to a standard PC via HDMI + USB,
> which is what I do.  Vendor & product ID is 0x0416 & 0xc168.
> 
> The actual display works fine with Xorg as usual.  But I'm
> having problems getting the touch feature to work.
> 
> According to the vendor, it's a standard USB HID interface
> that works without additional driver in Windows, and is also
> supported by Linux (apparently for several years already).
> It's supposed to work out of the box with typical Linux
> distributions on the RPi.

Hi,

Webcamd may need to be compiled with a special option to attach to your 
device. See "make config" in the port. Should create an evdev which you 
should be able to reach via X11.

> 
> System:  FreeBSD 13.0-STABLE-20210418 amd64
> CUSE:  Cuse v0.1.36 @ /dev/cuse
> webcamd port:  webcamd-5.10.6.1_2
> 
> I've created a small devd snipped that starts the webcamd
> service when the vendor ID and product ID are matched.
> These are the log messages when I insert the USB plug:
> 

Does "webcamd -l" list the device?

If you start it from the command line, does it attach?

You may also want to trace the USB traffic:

usbdump -i usbus0 -f 2 -s 65536 -vvv

To see why "error reading report description" fails.

--HPS

> 16:43:17 kernel: ugen0.2: <TSTP MTouch> at usbus0
> 16:43:17 kernel: ums1 on uhub2
> 16:43:17 kernel: ums1: <TSTP MTouch, class 0/0, rev 2.00/0.00, addr 12> on usbus0
> 16:43:17 kernel: ums1: error reading report description
> 16:43:17 kernel: device_attach: ums1 attach returned 12
> 16:43:17 kernel: ums1 on uhub2
> 16:43:17 kernel: ums1: <TSTP MTouch, class 0/0, rev 2.00/0.00, addr 12> on usbus0
> 16:43:17 kernel: ums1: error reading report description
> 16:43:17 kernel: device_attach: ums1 attach returned 12
> 16:43:19 webcamd[75654]: webcamd: Cannot find USB device
> 16:43:20 webcamd[75646]: webcamd: Cannot find USB device
> 
> I tried both USB3 and USB2 ports; same result.
> The output from ``usbconfig dump_all_desc'' is attached below.
> 
> At this point I'm not sure how to proceed.
> Is there anything I can do?  Or is this a lost case?
> 
> On a related note, are there any touchscreens that are *known*
> to work with FreeBSD?  I tried searching the web, but wasn't
> able to find anything useful.
> 
> Regards
>   - Olli
> 
> ugen0.2: <TSTP MTouch> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
> 
>    bLength = 0x0012
>    bDescriptorType = 0x0001
>    bcdUSB = 0x0200
>    bDeviceClass = 0x0000  <Probed by interface class>
>    bDeviceSubClass = 0x0000
>    bDeviceProtocol = 0x0000
>    bMaxPacketSize0 = 0x0040
>    idVendor = 0x0416
>    idProduct = 0xc168
>    bcdDevice = 0x0000
>    iManufacturer = 0x0001  <retrieving string failed>
>    iProduct = 0x0002  <retrieving string failed>
>    iSerialNumber = 0x0003  <retrieving string failed>
>    bNumConfigurations = 0x0001
> 
>   Configuration index 0
> 
>      bLength = 0x0009
>      bDescriptorType = 0x0002
>      wTotalLength = 0x0049
>      bNumInterfaces = 0x0002
>      bConfigurationValue = 0x0001
>      iConfiguration = 0x0000  <no string>
>      bmAttributes = 0x00a0
>      bMaxPower = 0x0032
> 
>      Interface 0
>        bLength = 0x0009
>        bDescriptorType = 0x0004
>        bInterfaceNumber = 0x0000
>        bAlternateSetting = 0x0000
>        bNumEndpoints = 0x0002
>        bInterfaceClass = 0x0003  <HID device>
>        bInterfaceSubClass = 0x0001
>        bInterfaceProtocol = 0x0002
>        iInterface = 0x0000  <no string>
> 
>        Additional Descriptor
> 
>        bLength = 0x09
>        bDescriptorType = 0x21
>        bDescriptorSubType = 0x11
>         RAW dump:
>         0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0xdf,
>         0x08 | 0x02
> 
>       Endpoint 0
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0081  <IN>
>          bmAttributes = 0x0003  <INTERRUPT>
>          wMaxPacketSize = 0x0040
>          bInterval = 0x0005
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
>       Endpoint 1
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0002  <OUT>
>          bmAttributes = 0x0003  <INTERRUPT>
>          wMaxPacketSize = 0x0040
>          bInterval = 0x0008
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
> 
>      Interface 1
>        bLength = 0x0009
>        bDescriptorType = 0x0004
>        bInterfaceNumber = 0x0001
>        bAlternateSetting = 0x0000
>        bNumEndpoints = 0x0002
>        bInterfaceClass = 0x0003  <HID device>
>        bInterfaceSubClass = 0x0001
>        bInterfaceProtocol = 0x0002
>        iInterface = 0x0000  <no string>
> 
>        Additional Descriptor
> 
>        bLength = 0x09
>        bDescriptorType = 0x21
>        bDescriptorSubType = 0x11
>         RAW dump:
>         0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x8e,
>         0x08 | 0x00
> 
>       Endpoint 0
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0083  <IN>
>          bmAttributes = 0x0003  <INTERRUPT>
>          wMaxPacketSize = 0x0040
>          bInterval = 0x0008
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
>       Endpoint 1
>          bLength = 0x0007
>          bDescriptorType = 0x0005
>          bEndpointAddress = 0x0004  <OUT>
>          bmAttributes = 0x0003  <INTERRUPT>
>          wMaxPacketSize = 0x0040
>          bInterval = 0x0008
>          bRefresh = 0x0000
>          bSynchAddress = 0x0000
> 
> 
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2eb19f0a-9c01-4b06-9a3e-c379665dbcb9>