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




_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to