On 2021-06-02 20:14, Vladimir Kondratyev wrote:
For now, report descriptor is not broken but it still does not match
my
expectations. Could you post output of
install sysutils/hid-tools
sudo kldload hidraw.ko
sudo hid-decode /dev/hidraw#
Where # is number corresponding your touchscreen
One more patch :-) with relaxed as compared to MS specs requirements to
usages presence.
Thanks for the updated patches, I think we're getting very close :).
With latest patch:
# dmesg | grep hidraw
hidraw0: <Lite-On Technology Corp. USB Multimedia Keyboard Raw HID
Device> on hidbus0
hidraw1: <eGalax Inc. USB TouchController Raw HID Device> on hidbus1
# hid-decode /dev/hidraw1
0x05, 0x01, // Usage Page (Generic Desktop) 0
0x09, 0x01, // Usage (Pointer) 2
0xa1, 0x01, // Collection (Application) 4
0x85, 0x01, // Report ID (1) 6
0x09, 0x01, // Usage (Pointer) 8
0xa1, 0x00, // Collection (Physical) 10
0x05, 0x09, // Usage Page (Button) 12
0x19, 0x01, // Usage Minimum (1) 14
0x29, 0x02, // Usage Maximum (2) 16
0x15, 0x00, // Logical Minimum (0) 18
0x25, 0x01, // Logical Maximum (1) 20
0x95, 0x02, // Report Count (2) 22
0x75, 0x01, // Report Size (1) 24
0x81, 0x02, // Input (Data,Var,Abs) 26
0x95, 0x01, // Report Count (1) 28
0x75, 0x06, // Report Size (6) 30
0x81, 0x01, // Input (Cnst,Arr,Abs) 32
0x05, 0x01, // Usage Page (Generic Desktop) 34
0x09, 0x30, // Usage (X) 36
0x09, 0x31, // Usage (Y) 38
0x16, 0x00, 0x00, // Logical Minimum (0) 40
0x26, 0xff, 0x0f, // Logical Maximum (4095) 43
0x36, 0x00, 0x00, // Physical Minimum (0) 46
0x46, 0xff, 0x0f, // Physical Maximum (4095) 49
0x66, 0x00, 0x00, // Unit (None) 52
0x75, 0x10, // Report Size (16) 55
0x95, 0x02, // Report Count (2) 57
0x81, 0x02, // Input (Data,Var,Abs) 59
0xc0, // End Collection 61
0xc0, // End Collection 62
0x05, 0x0d, // Usage Page (Digitizers) 63
0x09, 0x04, // Usage (Touch Screen) 65
0xa1, 0x01, // Collection (Application) 67
0x85, 0x02, // Report ID (2) 69
0x09, 0x20, // Usage (Stylus) 71
0xa1, 0x00, // Collection (Physical) 73
0x09, 0x42, // Usage (Tip Switch) 75
0x09, 0x32, // Usage (In Range) 77
0x15, 0x00, // Logical Minimum (0) 79
0x25, 0x01, // Logical Maximum (1) 81
0x95, 0x02, // Report Count (2) 83
0x75, 0x01, // Report Size (1) 85
0x81, 0x02, // Input (Data,Var,Abs) 87
0x95, 0x06, // Report Count (6) 89
0x75, 0x01, // Report Size (1) 91
0x81, 0x03, // Input (Cnst,Var,Abs) 93
0x05, 0x01, // Usage Page (Generic Desktop) 95
0x09, 0x30, // Usage (X) 97
0x75, 0x10, // Report Size (16) 99
0x95, 0x01, // Report Count (1)
101
0xa4, // Push
103
0x55, 0x0d, // Unit Exponent (-3)
104
0x65, 0x33, // Unit (Inch^3,EngLinear)
106
0x36, 0x00, 0x00, // Physical Minimum (0)
108
0x46, 0x99, 0x28, // Physical Maximum (10393)
111
0x16, 0x00, 0x00, // Logical Minimum (0)
114
0x26, 0xff, 0x0f, // Logical Maximum (4095)
117
0x81, 0x02, // Input (Data,Var,Abs)
120
0x09, 0x31, // Usage (Y)
122
0x16, 0x00, 0x00, // Logical Minimum (0)
124
0x26, 0xff, 0x0f, // Logical Maximum (4095)
127
0x36, 0x00, 0x00, // Physical Minimum (0)
130
0x46, 0xaf, 0x19, // Physical Maximum (6575)
133
0x81, 0x02, // Input (Data,Var,Abs)
136
0xb4, // Pop
138
0xc0, // End Collection
139
0xc0, // End Collection
140
0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1)
141
0x09, 0x01, // Usage (Vendor Usage 1)
144
0xa1, 0x01, // Collection (Application)
146
0x09, 0x01, // Usage (Vendor Usage 1)
148
0x15, 0x00, // Logical Minimum (0)
150
0x26, 0xff, 0x00, // Logical Maximum (255)
152
0x85, 0x03, // Report ID (3)
155
0x75, 0x08, // Report Size (8)
157
0x95, 0x3f, // Report Count (63)
159
0x81, 0x02, // Input (Data,Var,Abs)
161
0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1)
163
0x09, 0x01, // Usage (Vendor Usage 1)
166
0x15, 0x00, // Logical Minimum (0)
168
0x26, 0xff, 0x00, // Logical Maximum (255)
170
0x75, 0x08, // Report Size (8)
173
0x95, 0x07, // Report Count (7)
175
0x91, 0x02, // Output (Data,Var,Abs)
177
0xc0, // End Collection
179
0x05, 0x0d, // Usage Page (Digitizers)
180
0x09, 0x04, // Usage (Touch Screen)
182
0xa1, 0x01, // Collection (Application)
184
0x85, 0x04, // Report ID (4)
186
0x09, 0x22, // Usage (Finger)
188
0xa1, 0x00, // Collection (Physical)
190
0x09, 0x42, // Usage (Tip Switch)
192
0x15, 0x00, // Logical Minimum (0)
194
0x25, 0x01, // Logical Maximum (1)
196
0x75, 0x01, // Report Size (1)
198
0x95, 0x01, // Report Count (1)
200
0x81, 0x02, // Input (Data,Var,Abs)
202
0x09, 0x32, // Usage (In Range)
204
0x15, 0x00, // Logical Minimum (0)
206
0x25, 0x01, // Logical Maximum (1)
208
0x81, 0x02, // Input (Data,Var,Abs)
210
0x09, 0x51, // Usage (Contact Id)
212
0x75, 0x05, // Report Size (5)
214
0x95, 0x01, // Report Count (1)
216
0x16, 0x00, 0x00, // Logical Minimum (0)
218
0x26, 0x10, 0x00, // Logical Maximum (16)
221
0x81, 0x02, // Input (Data,Var,Abs)
224
0x09, 0x47, // Usage (Confidence)
226
0x75, 0x01, // Report Size (1)
228
0x95, 0x01, // Report Count (1)
230
0x15, 0x00, // Logical Minimum (0)
232
0x25, 0x01, // Logical Maximum (1)
234
0x81, 0x02, // Input (Data,Var,Abs)
236
0x05, 0x01, // Usage Page (Generic Desktop)
238
0x09, 0x30, // Usage (X)
240
0x75, 0x10, // Report Size (16)
242
0x95, 0x01, // Report Count (1)
244
0x55, 0x0d, // Unit Exponent (-3)
246
0x65, 0x33, // Unit (Inch^3,EngLinear)
248
0x35, 0x00, // Physical Minimum (0)
250
0x46, 0x60, 0x17, // Physical Maximum (5984)
252
0x26, 0xff, 0x0f, // Logical Maximum (4095)
255
0x81, 0x02, // Input (Data,Var,Abs)
258
0x09, 0x31, // Usage (Y)
260
0x75, 0x10, // Report Size (16)
262
0x95, 0x01, // Report Count (1)
264
0x55, 0x0d, // Unit Exponent (-3)
266
0x65, 0x33, // Unit (Inch^3,EngLinear)
268
0x35, 0x00, // Physical Minimum (0)
270
0x46, 0x26, 0x0e, // Physical Maximum (3622)
272
0x26, 0xff, 0x0f, // Logical Maximum (4095)
275
0x81, 0x02, // Input (Data,Var,Abs)
278
0x05, 0x0d, // Usage Page (Digitizers)
280
0x09, 0x55, // Usage (Contact Max)
282
0x25, 0x08, // Logical Maximum (8)
284
0x75, 0x08, // Report Size (8)
286
0x95, 0x01, // Report Count (1)
288
0xb1, 0x02, // Feature (Data,Var,Abs)
290
0xc0, // End Collection
292
0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1)
293
0x09, 0xc5, // Usage (Vendor Usage 0xc5)
296
0x85, 0x07, // Report ID (7)
298
0x15, 0x00, // Logical Minimum (0)
300
0x26, 0xff, 0x00, // Logical Maximum (255)
302
0x75, 0x08, // Report Size (8)
305
0x96, 0x00, 0x01, // Report Count (256)
307
0xb1, 0x02, // Feature (Data,Var,Abs)
310
0xc0, // End Collection
312
0x05, 0x0d, // Usage Page (Digitizers)
313
0x09, 0x0e, // Usage (Device Configuration)
315
0xa1, 0x01, // Collection (Application)
317
0x85, 0x05, // Report ID (5)
319
0x09, 0x22, // Usage (Finger)
321
0xa1, 0x00, // Collection (Physical)
323
0x09, 0x52, // Usage (Inputmode)
325
0x09, 0x53, // Usage (Device Index)
327
0x15, 0x00, // Logical Minimum (0)
329
0x25, 0x0a, // Logical Maximum (10)
331
0x75, 0x08, // Report Size (8)
333
0x95, 0x02, // Report Count (2)
335
0xb1, 0x02, // Feature (Data,Var,Abs)
337
0xc0, // End Collection
339
0xc0, // End Collection
340
**** win 8 certified ****
#
event8 which heard events before is no longer present, only event7 now
which evemu-record does not hear events on.
# evemu-record
Available devices:
/dev/input/event0: System mouse
/dev/input/event1: System keyboard multiplexer
/dev/input/event2: Power Button
/dev/input/event3: Sleep Button
/dev/input/event4: Lite-On Technology Corp. USB Multimedia Keyboard,
class 0/0, rev 1.10/1.09, add
/dev/input/event5: Lite-On Technology Corp. USB Multimedia Keyboard
Consumer Control
/dev/input/event6: Lite-On Technology Corp. USB Multimedia Keyboard
System Control
/dev/input/event7: eGalax Inc. USB TouchController Tablet
Select the device event number [0-7]: 7
# EVEMU 1.3
# Kernel: 13.0-RELEASE
# Input device name: "eGalax Inc. USB TouchController Tablet"
# Input device ID: bus 0x03 vendor 0xeef product 0x01 version 0x100
# Supported events:
# Event type 0 (EV_SYN)
# Event code 0 (SYN_REPORT)
# Event code 1 (SYN_CONFIG)
# Event code 2 (SYN_MT_REPORT)
# Event code 3 (SYN_DROPPED)
# Event code 4 ((null))
# Event code 5 ((null))
# Event code 6 ((null))
# Event code 7 ((null))
# Event code 8 ((null))
# Event code 9 ((null))
# Event code 10 ((null))
# Event code 11 ((null))
# Event code 12 ((null))
# Event code 13 ((null))
# Event code 14 ((null))
# Event code 15 (SYN_MAX)
# Event type 1 (EV_KEY)
# Event code 272 (BTN_LEFT)
# Event code 273 (BTN_RIGHT)
# Event type 3 (EV_ABS)
# Event code 0 (ABS_X)
# Value 0
# Min 0
# Max 4095
# Fuzz 0
# Flat 0
# Resolution 0
# Event code 1 (ABS_Y)
# Value 0
# Min 0
# Max 4095
# Fuzz 0
# Flat 0
# Resolution 0
# Properties:
# Property type 1 (INPUT_PROP_DIRECT)
N: eGalax Inc. USB TouchController Tablet
I: 0003 0eef 0001 0100
P: 02 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 03 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 00 00 00 00 00
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 4095 0 0 0
A: 01 0 4095 0 0 0
################################
# Waiting for events #
################################
[... no events ...]
^C
#
X does add it as an input now:
[ 617.720] (**) eGalax Inc. USB TouchController Tablet: Applying
InputClass "evdev touchscreen catchall"
[ 617.720] (**) eGalax Inc. USB TouchController Tablet: Applying
InputClass "libinput touchscreen catchall"
[ 617.720] (II) Using input driver 'libinput' for 'eGalax Inc. USB
TouchController Tablet'
[ 617.720] (**) eGalax Inc. USB TouchController Tablet: always reports
core events
[ 617.720] (**) Option "Device" "/dev/input/event7"
[ 617.720] (**) Option "_source" "server/udev"
[ 617.723] (II) event7 - eGalax Inc. USB TouchController Tablet: is
tagged by udev as: Touchscreen
[ 617.725] (II) event7 - eGalax Inc. USB TouchController Tablet:
device is a touch device
[ 617.725] (II) event7 - eGalax Inc. USB TouchController Tablet:
device removed
[ 617.736] (**) Option "config_info" "udev:/dev/input/event7"
[ 617.736] (II) XINPUT: Adding extended input device "eGalax Inc. USB
TouchController Tablet" (type: TOUCHSCREEN, id 13)
[ 617.736] (**) Option "AccelerationScheme" "none"
[ 617.736] (**) eGalax Inc. USB TouchController Tablet: (accel)
selected scheme none/0
[ 617.736] (**) eGalax Inc. USB TouchController Tablet: (accel)
acceleration factor: 2.000
[ 617.736] (**) eGalax Inc. USB TouchController Tablet: (accel)
acceleration threshold: 4
[ 617.740] (II) event7 - eGalax Inc. USB TouchController Tablet: is
tagged by udev as: Touchscreen
[ 617.741] (II) event7 - eGalax Inc. USB TouchController Tablet:
device is a touch device
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer
(2)]
⎜ ↳ System mouse id=6 [slave pointer
(2)]
⎜ ↳ eGalax Inc. USB TouchController Tablet id=13 [slave pointer
(2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard
(3)]
↳ System keyboard multiplexer id=7 [slave keyboard
(3)]
↳ Power Button id=8 [slave keyboard
(3)]
↳ Sleep Button id=9 [slave keyboard
(3)]
↳ Lite-On Technology Corp. USB Multimedia Keyboard id=10 [slave
keyboard (3)]
↳ Lite-On Technology Corp. USB Multimedia Keyboard Consumer
Control id=11 [slave keyboard (3)]
↳ Lite-On Technology Corp. USB Multimedia Keyboard System
Control id=12 [slave keyboard (3)]
No events with xinput --test 13
_______________________________________________
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"