Сенсорный экран распознается как мышь

Я подключил сенсорный экран 3M к компьютеру Linux. Похоже, он распознает его как мышь. Вот мой вывод xinput :

 xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech USB Optical Mouse id=13 [slave pointer (2)] ⎜ ↳ 3M 3M USB Touchscreen - 36955 id=12 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Video Bus id=8 [slave keyboard (3)] ↳ Power Button id=9 [slave keyboard (3)] ↳ Logitech USB Keyboard id=10 [slave keyboard (3)] ↳ Logitech USB Keyboard id=11 [slave keyboard (3)] ↳ HP WMI hotkeys id=14 [slave keyboard (3) 

После # modprobe -r usbtouchscreen сенсорное устройство перестает работать.

В Windows 7 он работает после установки драйвера с этого сайта, поэтому я также попытался установить Linux-драйвер отсюда (Linux, Single Touch, 64 бит). Я думаю, что процесс установки завершился неудачно, поскольку он прерывается сразу после принятия лицензии (с кодом выхода 0).

Я тестирую свой сенсорный экран с примером Qt FingerPaint (также работает на Windows, не работает на Ubuntu). Отладка показывает, что вход мультитач генерирует события мыши.

Я использую Ubuntu 16.04 с ядром 4.10.0-35-generic и пробовал среды Unity и Cinnamon. Мне это нужно для программирования.

РЕДАКТИРОВАТЬ:

Вывод некоторых диагностических инструментов:

 # lsinput ...some other devices... /dev/input/event12 bustype : BUS_USB vendor : 0x596 product : 0x1 version : 1088 name : "3M 3M USB Touchscreen - 36955" phys : "usb-0000:00:14.0-3/input0" bits ev : EV_SYN EV_KEY EV_ABS # mtdev-test /dev/input/event12 015ee1f66c7c 00 1 014a 1 015ee1f66c7c 00 3 0000 12183 015ee1f66c7c 00 3 0001 7962 015ee1f66c7c 00 0 0000 0 015ee1f66c80 00 3 0000 12193 ... etc ... 

РЕДАКТИРОВАТЬ:

 $ xinput list-props 12 Device '3M 3M USB Touchscreen - 36955': Device Enabled (143): 1 Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (268): 0 Device Accel Constant Deceleration (269): 1.000000 Device Accel Adaptive Deceleration (270): 1.000000 Device Accel Velocity Scaling (271): 10.000000 Device Product ID (262): 1430, 1 Device Node (263): "/dev/input/event12" Evdev Axis Inversion (272): 0, 0 Evdev Axis Calibration (273): <no items> Evdev Axes Swap (274): 0 Axis Labels (275): "Abs X" (266), "Abs Y" (267) Button Labels (276): "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Wheel Up" (149), "Button Wheel Down" (150) Evdev Scrolling Distance (277): 0, 0, 0 Evdev Middle Button Emulation (278): 0 Evdev Middle Button Timeout (279): 50 Evdev Third Button Emulation (280): 0 Evdev Third Button Emulation Timeout (281): 1000 Evdev Third Button Emulation Button (282): 3 Evdev Third Button Emulation Threshold (283): 20 Evdev Wheel Emulation (284): 0 Evdev Wheel Emulation Axes (285): 0, 0, 4, 5 Evdev Wheel Emulation Inertia (286): 10 Evdev Wheel Emulation Timeout (287): 200 Evdev Wheel Emulation Button (288): 4 Evdev Drag Lock Buttons (289): 0 

И evtest:

 sudo evtest /dev/input/event12 Input driver version is 1.0.1 Input device ID: bus 0x3 vendor 0x596 product 0x1 version 0x440 Input device name: "3M 3M USB Touchscreen - 36955" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 330 (BTN_TOUCH) Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 6684 Min 0 Max 16384 Event code 1 (ABS_Y) Value 6185 Min 0 Max 16384 Properties: Testing ... (interrupt to exit) Event: time 1507280785.112401, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 Event: time 1507280785.112401, type 3 (EV_ABS), code 0 (ABS_X), value 5971 Event: time 1507280785.112401, type 3 (EV_ABS), code 1 (ABS_Y), value 6240 Event: time 1507280785.112401, -------------- SYN_REPORT ------------ Event: time 1507280785.116364, type 3 (EV_ABS), code 0 (ABS_X), value 5953 Event: time 1507280785.116364, -------------- SYN_REPORT ------------ Event: time 1507280785.118359, type 3 (EV_ABS), code 0 (ABS_X), value 5968 Event: time 1507280785.118359, -------------- SYN_REPORT ------------ # ........... Event: time 1507280785.156333, -------------- SYN_REPORT ------------ Event: time 1507280785.158356, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0 Event: time 1507280785.158356, -------------- SYN_REPORT ------------ 

Вам нужно будет установить новое ядро, чтобы проверить, есть ли у него прошивка. Прежде всего, проверьте, является ли текущее ядро ​​в вашей системе, используя команду

 uname -a 

Вы можете вручную установить ядро ​​4.13 в качестве его текущего стабильного.

Шаг 1: перейти к ubuntu kernel 4.13

Шаг 2. На основе вашего uname -a убедитесь, что ваша система / os arch, Если это был X86_64, то ее 64-битный, если это был X86, тогда это было 32 бита.

Шаг 3. Создайте папку где-нибудь в вашей системе, называя ее 4.13, вы также можете использовать команду

 mkdir 4.13 

Шаг 4: Войдите в каталог 4.13, теперь выберите файлы на основе вашей арки


64-битный список

Если его 64 бита выбирают это, то есть X86_64:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_amd64.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_amd64.deb


32-битный список

Если его 32 бита aka X86, то выберите это:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_i386.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_i386.deb


Вы можете сохранить любой список в текстовом файле, например, «kernel_files.list». Теперь в терминале используйте wget для загрузки этих файлов.

 wget -i kernel_files.list 

Это приведет к загрузке всего списка с помощью wget.

Шаг 5: Теперь приступайте к установке их

 sudo dpkg -i *.deb 

Это позволит установить все 3 компонента ядра вместе, наконец, вы увидите, что все ядра скомпилированы.

Шаг 6: перезагрузите вашу систему, чтобы использовать новое ядро

 reboot 

Шаг 7: проверьте установку нового ядра, выполнив команду

 uname -a 

Теперь проверьте, работает ли сенсорный экран правильно или нет.

Проверьте, поступает ли система через вход, используя

 dmesg 

Если он все еще не работает, установите

 make,gcc,g++,build-utils 

путем выдачи команды

 sudo apt install make gcc g++ build-utils 

а затем снова установите драйверы сенсорного экрана.

Примечание №1: Если вы не уверены в том, что вручную установите новое ядро, вы можете вместо этого использовать ukuu,

Для установки укуу

 sudo apt-add-repository -y ppa:teejee2008/ppa sudo apt-get update sudo apt-get install ukuu 

Затем запустите ukuu и установите ядро ​​4.13 с помощью ukuu dashboard.

Примечание # 2: вы всегда можете вернуться к предыдущему ядру, выпуская C во время загрузки вашего компьютера на базе Ubuntu.

Заметка 3. Держите сенсорный экран и экран без пыли и не должен содержать влагу, масло, грязь и т. Д.

Примечание № 4: используйте сенсорное перо, поскольку оно будет более точным, чем ваш палец.

Примечание №5: ядро ​​4.14 находится под тестированием, поэтому не устанавливайте его