How to get touchscreen working

I have an 'All In One' Panel-PC computer in Stainless IP66 enclosure with 14" touchscreen. The touchscreen is not supported in /sys/dev/usb/usbdevs.
Not the Vendor or PID's
Dialogue Inc. PenMount-USB

So I added the VID and PID and recompiling kernel. With E3827 and two cores it will be a while.

My question is:> Do I need to add these anywhere else? Like wmt driver or similar?

I tried loading webcamd for additional support and it did nothing. So I figured I would try adding PID to usbdevs.

Code:
# webcamd
Available device(s):
webcamd [-d ugen0.1] -N Intel-EHCI-root-HUB -S unknown -M 0
webcamd [-d ugen0.2] -N vendor-0x8087-product-0x07e6 -S unknown -M 0
webcamd [-d ugen0.3] -N vendor-0x05e3-product-0x0610 -S unknown -M 0
webcamd [-d ugen0.4] -N DIALOGUE-INC-PenMount-USB -S unknown -M 0
webcamd [-d ugen0.5] -N vendor-0x099a-USB-Keyboard -S unknown -M 0
Show webcamd usage:
webcamd -h

# webcamd -d ugen0.4
webcamd 93974 - - Attached to ugen0.4[0]
webcamd 93974 - - webcamd: Cannot find USB device
Code:
# usbconfig -d ugen0.4 dump_device_desc
ugen0.4: <DIALOGUE INC PenMount USB> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0110
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x14e1
  idProduct = 0x6000
  bcdDevice = 0xa4b4
  iManufacturer = 0x0001  <DIALOGUE INC>
  iProduct = 0x0002  <PenMount USB>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001
 
After compiling nothing changed with libinput list-devices. Same with xinput list.

I need to investigate other USB source files starting with HID. I don't know how this should attach.
I was hoping wmt or uep touch drivers for USB would magically attach.

I also have 3 eGalax touchscreen devices that do not have PID's in FreeBSD. I don't know if adding them would help.
 
Code:
# usbconfig -d ugen0.4 dump_device_desc
ugen0.4: <DIALOGUE INC PenMount USB> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0110
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x14e1
  idProduct = 0x6000
  bcdDevice = 0xa4b4
  iManufacturer = 0x0001  <DIALOGUE INC>
  iProduct = 0x0002  <PenMount USB>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001
This looks like touch screen controller I tested some time ago. At the moment I had already some experience with webcamd powered touchscreens, but this one did not work that way. Somehow I found dev/hid/hms.c could be relevant for this one and when asked, I got one hint - put following into /boot/load.conf file:
hw.usb.usbhid.enable=1
usbhid_load="YES"

I think it worked well with this settings, but I can't verify it anymore, this is just from my archive.
 
Thanks that did give me something to work with:
Code:
hms0: <DIALOGUE INC PenMount USB Tablet> on hidbus0
hms0: 2 buttons and [XY] coordinates ID=0

And now I have an additional event in /dev/input:

libinput list-devices
[snip]
Code:
Device:           DIALOGUE INC PenMount USB Tablet
Kernel:           /dev/input/event4
Group:            5
Seat:             seat0, default
Capabilities:     pointer
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      identity matrix
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

I have never heard of the hms driver.

 
Yes indeed it 'worked' without a conf file but poorly.

I have found prototypes in /usr/local/share/libinput/ and /usr/local/share/X11/xorg.conf.d/40-libinput.conf that are helpful.

Code:
Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Is the wildcard astrick supposed to be there? I put in actual event number.

The ArchWiki is really the best documentation. Tapping setting is needed.

/usr/local/etc/X11/xorg.conf.d/40-touch.conf
Code:
Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event4"
        Driver "libinput"
        Option "Tapping" "on"
        Option "NaturalScrolling" "true"
        Option "ScrollMethod" "edge"
EndSection
 
What does it mean - poorly? I do not remember any problems after adding those two lines into /boot/loader.conf file...
 
You can see some movement onscreen of the cursor but it does not act right.

I may have to do some calibrating. Some reason I am not sure the right driver is attached.
I noticed talk of evdev for the driver.
 
Back
Top