eGalax Touchscreen com Raspberry Pi 3 - O Mouse retorna ao mesmo local depois de clicar

0

Tenho um Raspberry Pi 3 e um ecrã táctil de 15 ", utilizando VGA para vídeo (utilizo um conversor para ligar à HDMI do Pi) e e USB para capacidades de toque.

Fora da caixa quando eu inicializo com o dispositivo conectado, o módulo usbtouchscreen lida com o dispositivo e cria duas entradas: /dev/input/event3 e /dev/input/mouse1 . O Xorg registra a entrada event3 e eu sou capaz de interagir via toque com o sistema, mas não da maneira que eu esperava. Não consigo clicar em nada, apenas movo o mouse. Ele também não registra a entrada mouse1 devido a no driver found (mais detalhes nas saídas de log abaixo). Os toques se registram principalmente em todos os lugares da tela, exceto pelos cantos extremos, mas o mouse volta para perto do canto inferior esquerdo após cada toque. Quando digo perto do canto inferior esquerdo, quero dizer cerca de 1 / 8th da tela longe do canto real em ambos os eixos. Depois de colocar a configuração do Xorg para trocar e inverter os eixos em 10-evdev.conf :

Option "SwapAxes" "1"
Option "InvertY" "1"

O mouse está no quadrante inferior direito. O mouse também é restrito a cerca de 1/2 a 2/3 da tela, independentemente da orientação do eixo, como se fosse um efeito de escala. Quando clico no canto superior esquerdo da tela, o mouse se move para algum lugar no meio da tela. O mesmo acontece com todas as outras partes da tela.

Eu tentei definir Option "Mode" "Relative" na configuração, o que permite que o mouse siga meu dedo para qualquer lugar na tela (assim a escala de 0.5x desapareceu), mas ele retorna para diferentes locais, progredindo e eventualmente alcançando a parte inferior canto direito como "posição inicial" depois de pressionar.

Eu tentei reconstruir o kernel do Raspberry Pi 3 com todas as opções do eGalax / EETI moduladas ou incluídas:

CONFIG_TOUCHSCREEN_EGALAX=m
CONFIG_TOUCHSCREEN_EETI=m
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
CONFIG_TOUCHSCREEN_USB_EGALAX=y

A mesma coisa acontece conforme descrito acima.

Eu tentei seguir o guia da EETI para instalar o driver proprietário, localizado no link . Eu baixei o arquivo eGTouch_v2.5.5814.L-ma , ajustei as 4 configurações do kernel que eles recomendaram, apliquei as correções do código-fonte para kernel versions 2.6+ e criei. Quando eu coloquei o kernel no meu Pi SD e inicializei, os event3 e mouse1 não foram criados porque eles me fizeram remover usbtouchscreen do kernel. O guia disse que eu deveria ver minha tela de toque eGalax sem manipuladores (ao contrário de mouse1 e event3 que eu estava vendo antes) quando eu corri cat /proc/bus/input/devices mas ele não apareceu. Além disso, não consigo interagir de forma alguma através do toque nesta configuração.

Eu tentei executar o Raspbian, o Ubuntu MATE e o Arch Linux ARM .img e todos eles se comportaram da mesma maneira, exceto por uma exceção notável. Em algum lugar no processo de instalação do Ubuntu MATE e de fazer um apt update && apt upgrade , bem como um rpi-update , testei a tela pela primeira vez desde o flash do Ubuntu no SD e funcionou perfeitamente! Isso me mata desde que eu terminei de atualizar e reiniciar, eu nunca fui capaz de reproduzir. Eu tentei re-flashing do Ubuntu sem sucesso. Eu estava confiante de que ele permaneceria, então eu não obtive nenhuma das saídas de log ou parâmetros de configuração que fizeram com que ele aparecesse dessa maneira.

Minha teoria é que a entrada mouse1 é o que cria cliques, e isso não está sendo registrado. De acordo com o log do Xorg abaixo:

Adding input device eGalax Inc. USB TouchController (/dev/input/mouse1) No input driver specified, ignoring this device.

Eu tentei adicionar /dev/input/mouse1 a 10-evdev.conf com Driver "evdev" , mas aparece a seguinte mensagem de erro: %código%. Parece que o evdev não reconhece a entrada fornecida por evdev: eGalax Inc. USB TouchController: Unable to query fd: Inappropriate ioctl for device . Quaisquer outros drivers que eu possa tentar?

Saída de vários log:

saída relevante cat / proc / bus / input / devices:

I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="eGalax Inc. USB TouchController"
P: Phys=usb-3f980000.usb-1.5/input0
S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input4
U: Uniq=
H: Handlers=mouse1 event3 
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

ls -l / dev / entrada / by-id /:

lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-DELL_DELL_USB_Keyboard-event-kbd -> ../event2
lrwxrwxrwx 1 root root 9 Nov 25 18:53 usb-eGalax_Inc._USB_TouchController-event-if00 -> ../event3
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-Logitech_USB_Receiver-event-if01 -> ../event1
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-Logitech_USB_Receiver-event-mouse -> ../event0
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-Logitech_USB_Receiver-mouse -> ../mouse0

saída de lsusb:

Bus 001 Device 006: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Bus 001 Device 005: ID 413c:2005 Dell Computer Corp. RT7D50 Keyboard
Bus 001 Device 004: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

saída relevante dos dispositivos usb:

T:  Bus=01 Lev=02 Prnt=02 Port=04 Cnt=04 Dev#=  6 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0eef ProdID=0001 Rev=01.00
S:  Manufacturer=eGalax Inc.
S:  Product=USB TouchController
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbtouchscreen

ls / dev / input:

by-id
by-path
event0
event1
event2
event3
mice
mouse0
mouse1

Saída relevante do Xorg.0.log:

[    51.878] (II) config/udev: Adding input device eGalax Inc. USB TouchController (/dev/input/event3)
[    51.879] (**) eGalax Inc. USB TouchController: Applying InputClass "evdev touchscreen catchall"
[    51.879] (II) Using input driver 'evdev' for 'eGalax Inc. USB TouchController'
[    51.879] (**) eGalax Inc. USB TouchController: always reports core events
[    51.879] (**) evdev: eGalax Inc. USB TouchController: Device: "/dev/input/event3"
[    51.879] (--) evdev: eGalax Inc. USB TouchController: Vendor 0xeef Product 0x1
[    51.879] (--) evdev: eGalax Inc. USB TouchController: Found absolute axes
[    51.879] (--) evdev: eGalax Inc. USB TouchController: Found x and y absolute axes
[    51.879] (--) evdev: eGalax Inc. USB TouchController: Found absolute touchscreen
[    51.879] (II) evdev: eGalax Inc. USB TouchController: Configuring as touchscreen
[    51.879] (**) evdev: eGalax Inc. USB TouchController: YAxisMapping: buttons 4 and 5
[    51.879] (**) evdev: eGalax Inc. USB TouchController: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    51.879] (**) Option "config_info" "udev:/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input3/event3"
[    51.879] (II) XINPUT: Adding extended input device "eGalax Inc. USB TouchController" (type: TOUCHSCREEN, id 9)
[    51.879] (II) evdev: eGalax Inc. USB TouchController: initialized for absolute axes.
[    51.880] (**) eGalax Inc. USB TouchController: (accel) keeping acceleration scheme 1
[    51.880] (**) eGalax Inc. USB TouchController: (accel) acceleration profile 0
[    51.880] (**) eGalax Inc. USB TouchController: (accel) acceleration factor: 2.000
[    51.880] (**) eGalax Inc. USB TouchController: (accel) acceleration threshold: 4
[    51.881] (II) config/udev: Adding input device eGalax Inc. USB TouchController (/dev/input/mouse1)
[    51.881] (II) No input driver specified, ignoring this device.
[    51.881] (II) This device may have been added with another device file.
[  2310.541] (II) config/udev: removing device eGalax Inc. USB TouchController
[  2310.573] (II) evdev: eGalax Inc. USB TouchController: Close
[  2310.574] (II) UnloadModule: "evdev"

dmesg output relevante:

[    4.845962] input: eGalax Inc. USB TouchController as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input3
[    4.846690] usbcore: registered new interface driver usbtouchscreen

Linhas relevantes do 10-evdev.conf:

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
    Option "SwapAxes" "1"
    Option "InvertY" "1"
        Driver "evdev"
EndSection

Se você leu até aqui, obrigado! Eu percebi que mais informação é melhor que menos. Aprecie todos os ponteiros.

    
por Ashish Narasimham 20.01.2017 / 15:17

1 resposta

1

Primeiro pensei que o problema era que o fio USB que estava sendo invertido fazia o monitor funcionar, mas acontece que a tela se move dentro do gabinete do monitor. Ele se moveu apenas o suficiente para começar a trabalhar quando eu virei as pontas do fio USB. Monitor muito exigente.

    
por 21.01.2017 / 03:38