Як змусити Elo сенсорний екран працювати для Linux?


10

Модель сенсорного екрана Elo:

  • Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch (r)

Опис проблеми:

опис зображення опис зображення опис зображення опис зображення

  • Моя проблема + проблема в цьому полягає в тому, що коли я торкаюсь (перемиканням миші) сенсорного екрана, курсор миші не слідкує за моїм рухом (пальцем / дотиком). При натисканні курсору натисніть (натисніть) у неправильному місці.

Моя мета - це виправити, щоб місце преси було точним.

Спробував

Наступні спроби я зробив, але не пощастило.

1) Стан запиту / пристрою

--

udi = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0_logicaldev_input'
  button.has_state = false  (bool)
  info.addons.singleton = {'hald-addon-input'} (string list)
  info.capabilities = {'input', 'button', 'input.mouse'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0'  (string)
  info.product = 'Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0_logicaldev_input'  (string)
  input.device = '/dev/input/event11'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/usb_device_4e7_20_20B23159_if0'  (string)
  input.product = 'Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface'  (string)
  input.x11_driver = 'evdev'  (string)
  linux.device_file = '/dev/input/event11'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input11/event11'  (string)

2) Додати новий файл

$ vim /etc/X11/xorg.conf.d/elo.conf
Section "InputDevice"
    Identifier "touchscreen1"
    Driver "elographics"
    Option "Device" "/dev/ttyS0"
    Option "MinX" "470"
    Option "MaxX" "3670"
    Option "MinY" "600"
    Option "MaxY" "3550"
    Option "ScreenNumber" "0"
    Option "ReportingMode" "Scaled"
    Option "ButtonThreshold" "17"
    Option "ButtonNumber" "1"
    Option "SendCoreEvents"
EndSection

3) Вихід, щоб перезапустити X

4) Результат все-таки нічого не покращився.

Я ціную вашу пораду щодо цього.

Слідувати:

$ cat /proc/bus/input/devices
I: Bus=0003 Vendor=04e7 Product=0020 Version=0100
N: Name="Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface"
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input6
U: Uniq=20B23159
H: Handlers=mouse1 event6 js0 
B: PROP=0
B: EV=1b
B: KEY=10000 0 0 0 0 0 0 0 0
B: ABS=100 3
B: MSC=10   
$ cat /dev/input/event6
$ xinput_calibrator -v --device 14 --precalib 0 1024 0 768 --output-type xinput
DEBUG: XInputExtension version is 2.0
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Selected device: Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface
DEBUG: Setting precalibration: 0, 1024, 0, 768
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
DEBUG: Read axes swap value of 0.
Calibrating EVDEV driver for "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" id=14
    current calibration values (from XInput): min_x=0, max_x=4095 and min_y=0, max_y=4095
DEBUG: Adding click 0 (X=1908, Y=731)

; ; Вирішено! розділ;

$ yum search xinput; install xinput
$ xinput --help
usage :
    xinput get-feedbacks <device name>
    xinput set-ptr-feedback <device name> <threshold> <num> <denom>
    xinput set-integer-feedback <device name> <feedback id> <value>
    xinput get-button-map <device name>
    xinput set-button-map <device name> <map button 1> [<map button 2> [...]]
    xinput set-pointer <device name> [<x index> <y index>]
    xinput set-mode <device name> ABSOLUTE|RELATIVE
    xinput list [--short || --long] [<device name>...]
    xinput query-state <device name>
    xinput test [-proximity] <device name>
    xinput create-master <id> [<sendCore (dflt:1)>] [<enable (dflt:1)>]
    xinput remove-master <id> [Floating|AttachToMaster (dflt:Floating)] [<returnPointer>] [<returnKeyboard>]
    xinput reattach <id> <master>
    xinput float <id>
    xinput set-cp <window> <device>
    xinput test-xi2 <device>
    xinput list-props <device> [<device> ...]
    xinput set-int-prop <device> <property> <format (8, 16, 32)> <val> [<val> ...]
    xinput set-float-prop <device> <property> <val> [<val> ...]
    xinput set-atom-prop <device> <property> <val> [<val> ...]
    xinput watch-props <device>
    xinput delete-prop <device> <property>
    xinput set-prop <device> [--type=atom|float|int] [--format=8|16|32] <property> <val> [<val> ...]

; Hey how do i use xinput for query my stuffs?

$ xinput list
         ^
         |_______________ Show me what i got! for <input source> to my local

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Broadcom Corp                             id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Broadcom Corp                             id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]
⎡ main pointer                              id=15   [master pointer  (16)]
⎜   ↳ Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface   id=14   [slave  pointer  (15)]
⎜   ↳ main XTEST pointer                        id=17   [slave  pointer  (15)]
⎣ main keyboard                             id=16   [master keyboard (15)]
    ↳ main XTEST keyboard                       id=18   [slave  keyboard (16)]


$ xinput get-feedbacks 14
1 feedback class
PtrFeedbackClass id=0
    accelNum is 2
    accelDenom is 1
    threshold is 4

$ xinput watch-props 14
Device 'Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface':
    Device Enabled (150):   1
    Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (272): 0
    Device Accel Constant Deceleration (273):   1.000000
    Device Accel Adaptive Deceleration (274):   1.000000
    Device Accel Velocity Scaling (275):    10.000000
    Device Product ID (269):    1255, 32
    Device Node (270):  "/dev/input/event11"
    Evdev Axis Inversion (276): 0, 0
    Evdev Axis Calibration (277):   -4000, 4093, -100, 4089
    Evdev Axes Swap (278):  0
    Axis Labels (279):  "Abs X" (369), "Abs Y" (370), "Abs Misc" (580)
    Button Labels (280):    "Button Left" (153), "Button Unknown" (271), "Button Unknown" (271), "Button Wheel Up" (156), "Button Wheel Down" (157)
    Evdev Middle Button Emulation (281):    0
    Evdev Middle Button Timeout (282):  50
    Evdev Wheel Emulation (283):    0
    Evdev Wheel Emulation Axes (284):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (285):    10
    Evdev Wheel Emulation Timeout (286):    200
    Evdev Wheel Emulation Button (287): 4
    Evdev Drag Lock Buttons (288):  0

$ xinput query-state 14
2 classes :
ButtonClass
    button[1]=up
    button[2]=up
    button[3]=up
    button[4]=up
    button[5]=up
ValuatorClass Mode=Absolute Proximity=In
    valuator[0]=3018
    valuator[1]=3226
    valuator[2]=0

$ xinput test 14
motion a[0]=2940 a[1]=1717 a[2]=158 
motion a[0]=2940 a[1]=1717 a[2]=201 
button release 1 a[0]=2938 a[1]=1719 a[2]=0 
^C

; Hey, how do i apply now settings to my local using xinput??

$ xinput set-pointer <device name> [<x index> <y index>]
         ^
         |___this does not work anymore in latest kernels 
             report a bug it wasted my time

$ xinput set-int-prop "Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" "Evdev Axis Calibration" 32 -4000 4093 -100 4089

Тепер мій правий екран має роздільну здатність 1024x768, а лівий екран ноутбука також, використовуючи вищезазначене твердження, курсор миші добре підходить. Якщо у мене є різні резолюції, мені, звичайно, потрібно це виправити.


2
У xinputсписку * предикати кажуть ...?
Ігнасіо Васкес-Абрамс

Ви спробували приєднати монітор до ПК з Windows, відкалібрувати його, а потім знову підключити його до вікна Fedora?
Тог

7
ви "вирішили" у своєму запитанні, якщо ви відповіли на нього, слід додати відповідь нижче та відповісти на своє запитання. :) Я спробував Dell / ELO touch у ubuntu, і це було справжньою PITA, щоб він працював правильно.
Кріс К

-1 за невідкрите запитання, яке відповідає на себе, реклама підозрюваного.

З цікавості, чому ти носиш те, що схоже на рукавичку? Ви випадково в лабораторних умовах?
Бен Франчук

Відповіді:


1

При натисканні курсору натисніть (натисніть) у неправильному місці.

Моя мета - це виправити, щоб місце преси було точним.

Здається, вам потрібно калібрувати сенсорний екран. Для цього я рекомендую xinput_calibrator .

У Ubuntu він доступний як пакет .


1

У мене є кілька ПК з fedora 25 і монітором Elo, який працює над усіма ними, я просто запускаю інструмент калібрування Elo Touch, щоб відкалібрувати точність і ось все

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.