Configure o Atmel MaxTouch Digitizer no Samsung ATIV 6

2

Estou tentando descobrir como configurar a tela sensível ao toque para o meu Samsung ATIV 6. Estou executando o Kubuntu 13.04. É um Amtel maXTouch Digitzer . Ele reconhece toque, mas apenas um clique. Além disso, quando tenho meu monitor externo conectado, ele acha que a tela sensível ao toque ocupa as duas telas.

Encontrei muitas coisas que foram direcionadas para telas sensíveis ao toque da Wacom, mas nada para a Amtel. Eu sou muito novo no Linux, e nem tenho certeza onde começar a olhar além das buscas no google. Eu encontrei este resultado, mas não tenho os arquivos que este menciona .

Aqui está a saída de xinput list :

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:200a       id=10   [slave  pointer  (2)]
⎜   ↳ Logitech Unifying Device. Wireless PID:1028       id=11   [slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer            id=13   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=15   [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)]
    ↳ WebCam SC-10HDP12631N                     id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]

Atualização 11 de agosto de 2013:

Eu quero esclarecer, minha maior pergunta é como fazer com que a tela de toque funcione corretamente e o monitor externo conectado. Se eu tocar no lado direito da tela de toque, o cursor pensa que estou realmente tocando no monitor externo. Eu principalmente quero saber como fazer o sistema saber que a tela sensível ao toque não é esticada no monitor externo quando ele está conectado.

Esta é a saída para os comandos solicitados abaixo:

lsinput

/dev/input/event0
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x5
   version : 0
   name    : "Lid Switch"
   phys    : "PNP0C0D/button/input0"
   bits ev : EV_SYN EV_SW

/dev/input/event1
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x1
   version : 0
   name    : "Power Button"
   phys    : "PNP0C0C/button/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event2
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x1
   version : 0
   name    : "Power Button"
   phys    : "LNXPWRBN/button/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event3
   bustype : BUS_I8042
   vendor  : 0x1
   product : 0x1
   version : 43841
   name    : "AT Translated Set 2 keyboard"
   phys    : "isa0060/serio0/input0"
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

/dev/input/event4
   bustype : BUS_USB
   vendor  : 0x46d
   product : 0xc52b
   version : 273
   name    : "Logitech Unifying Device. Wirele"
   phys    : "usb-0000:00:1a.0-1.2:2"
   uniq    : ""
   bits ev : EV_SYN EV_KEY EV_REL EV_ABS EV_MSC EV_LED EV_REP

/dev/input/event5
   bustype : BUS_USB
   vendor  : 0x46d
   product : 0xc52b
   version : 273
   name    : "Logitech Unifying Device. Wirele"
   phys    : "usb-0000:00:1a.0-1.2:3"
   uniq    : ""
   bits ev : EV_SYN EV_KEY EV_REL EV_MSC

/dev/input/event6
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x6
   version : 0
   name    : "Video Bus"
   phys    : "LNXVIDEO/video/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event7
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x6
   version : 0
   name    : "Video Bus"
   phys    : "LNXVIDEO/video/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event8
   bustype : BUS_USB
   vendor  : 0x3eb
   product : 0x8816
   version : 273
   name    : "Atmel Atmel maXTouch Digitizer"
   phys    : "usb-0000:00:1a.0-1.5/input0"
   uniq    : ""
   bits ev : EV_SYN EV_KEY EV_ABS

/dev/input/event9
   bustype : (null)
   vendor  : 0x0
   product : 0x0
   version : 0
   name    : "HDA Intel PCH HDMI/DP,pcm=3"
   phys    : "ALSA"
   bits ev : EV_SYN EV_SW

/dev/input/event10
   bustype : (null)
   vendor  : 0x0
   product : 0x0
   version : 0
   name    : "HDA Intel PCH Mic"
   phys    : "ALSA"
   bits ev : EV_SYN EV_SW

/dev/input/event11
   bustype : (null)
   vendor  : 0x0
   product : 0x0
   version : 0
   name    : "HDA Intel PCH Headphone"
   phys    : "ALSA"
   bits ev : EV_SYN EV_SW

/dev/input/event12
   bustype : BUS_I8042
   vendor  : 0x2
   product : 0xe
   version : 0
   name    : "ETPS/2 Elantech Touchpad"
   phys    : "isa0060/serio1/input0"
   bits ev : EV_SYN EV_KEY EV_ABS

/dev/input/event13
   bustype : BUS_USB
   vendor  : 0x2232
   product : 0x1045
   version : 89
   name    : "WebCam SC-10HDP12631N"
   phys    : "usb-0000:00:1a.0-1.4/button"
   bits ev : EV_SYN EV_KEY

evtest /dev/input/event8

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x3eb product 0x8816 version 0x111
Input device name: "Atmel Atmel maXTouch Digitizer"
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   3355
      Min        0
      Max     4095
      Resolution      12
    Event code 1 (ABS_Y)
      Value   1550
      Min        0
      Max     4095
      Resolution      21
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max       15
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
      Resolution      10
    Event code 49 (ABS_MT_TOUCH_MINOR)
      Value      0
      Min        0
      Max      255
      Resolution      10
    Event code 52 (ABS_MT_ORIENTATION)
      Value      0
      Min        0
      Max        1
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max     4095
      Resolution      12
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max     4095
      Resolution      21
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
    Event code 60 (?)
      Value      0
      Min        0
      Max     4095
      Resolution      12
    Event code 61 (?)
      Value      0
      Min        0
      Max     4095
      Resolution      21
Properties:
  Property type 1 (INPUT_PROP_DIRECT)

Aqui estão alguns dados da amostra quando eu toco na tela com evtest :

Toque único:

Event: time 1376299024.902314, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 23
Event: time 1376299024.902314, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 292
Event: time 1376299024.902314, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1678
Event: time 1376299024.902314, type 3 (EV_ABS), code 60 (?), value 292
Event: time 1376299024.902314, type 3 (EV_ABS), code 61 (?), value 1678
Event: time 1376299024.902314, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 1
Event: time 1376299024.902314, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1376299024.902314, type 3 (EV_ABS), code 0 (ABS_X), value 292
Event: time 1376299024.902314, type 3 (EV_ABS), code 1 (ABS_Y), value 1678
Event: time 1376299024.902314, -------------- SYN_REPORT ------------
Event: time 1376299024.959259, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1376299024.959259, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1376299024.959259, -------------- SYN_REPORT ------------

Dois dedos:

Event: time 1376299060.941027, -------------- SYN_REPORT ------------
Event: time 1376299065.006084, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 25
Event: time 1376299065.006084, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 409
Event: time 1376299065.006084, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1227
Event: time 1376299065.006084, type 3 (EV_ABS), code 60 (?), value 409
Event: time 1376299065.006084, type 3 (EV_ABS), code 61 (?), value 1227
Event: time 1376299065.006084, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1376299065.006084, type 3 (EV_ABS), code 0 (ABS_X), value 409
Event: time 1376299065.006084, type 3 (EV_ABS), code 1 (ABS_Y), value 1227
Event: time 1376299065.006084, -------------- SYN_REPORT ------------
Event: time 1376299065.043034, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1376299065.043034, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 26
Event: time 1376299065.043034, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 457
Event: time 1376299065.043034, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 2799
Event: time 1376299065.043034, type 3 (EV_ABS), code 60 (?), value 457
Event: time 1376299065.043034, type 3 (EV_ABS), code 61 (?), value 2799
Event: time 1376299065.043034, -------------- SYN_REPORT ------------
Event: time 1376299065.114060, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1376299065.114060, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1376299065.114060, type 3 (EV_ABS), code 0 (ABS_X), value 457
Event: time 1376299065.114060, type 3 (EV_ABS), code 1 (ABS_Y), value 2799
Event: time 1376299065.114060, -------------- SYN_REPORT ------------
Event: time 1376299065.122075, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1376299065.122075, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1376299065.122075, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1376299065.122075, -------------- SYN_REPORT ------------
    
por Nick 09.08.2013 / 04:57

2 respostas

1

Eu descubro como mapear corretamente a tela sensível ao toque para a tela usando:

xinput map-to-output <device> <output name>

Para encontrar o ID do dispositivo, use

xinput list

e para encontrar o nome da tela, use

xrandr

Eu só tenho que descobrir como acionar isso automaticamente quando o monitor externo está conectado. Você também pode criar um pequeno script para obter o ID do dispositivo correto e executar o comando.

Para o problema do clique, acho que o multi-touch é reconhecido por mim, posso usar 3 dedos para redimensionar e mover janelas, mas até mesmo um único clique não funciona às vezes para mim. Eu toco para clicar, mas ele se comporta como eu acabei de mover o cursor, não clicado realmente. Estranhamente, isso acontece às vezes, e eu não sei o que faz isso começar e parar.

(Encontrou a solução no link )

    
por gfcittolin 18.08.2013 / 01:10
1

Em primeiro lugar, certifique-se de que as reivindicações de hardware suportam vários toques.

Não sei ao certo o que você quer usar na tela sensível ao toque, mas no Ubuntu não há muitos aplicativos que realmente suportem protocolo multi-touch Xinput2.2 .

Então, vamos fazer a tela de toque funcionar.

lsinput

Você provavelmente terá que baixar este, uma vez que você tenha feito isso, você será capaz de produzir uma saída de todos os seus dispositivos de eventos de entrada genéricos, fornecendo entrada através da camada evdev. Obtenha esta saída e anote a localização do seu dispositivo de toque Atmel

sudo lsinput

evtest

evtest nos permite verificar quais eventos seu dispositivo está empurrando para a camada evdev. Você também terá que fazer o download desta e, em seguida, executá-la no local do dispositivo que você anotou anteriormente

evtest /dev/input/eventxx

A saída disso informará o tipo de eventos que você está criando a partir do recurso multitoque. Para um verdadeiro multi toque, você deseja criar eventos como:

ABS_MT_TRACKING_ID
ABS_MT_POSITION_X
ABS_MT_POSITION_Y

Estes são os seus verdadeiros eventos multi-touch, se você não os vê, então você não poderá rodar aplicativos multi-touch do Ubuntu.

Se você vir os seguintes eventos, provavelmente estará apenas simulando os movimentos do mouse.

ABS_X
ABS_Y

Aplicações MultiTouch

Existe apenas um punhado de aplicativos que suportam multi-touch no Ubuntu. Eu não vou explicar como configurá-los e executá-los, mas eu vou te dar os nomes de alguns frameworks para fazer mais pesquisas.

Kivy - Suporta multi-touch na camada evdev. Uma estrutura de aplicativo Python com muitos aplicativos e jogos de exemplo

Qt - Uma estrutura de desenvolvimento de aplicativos de grande porte, tem suporte limitado a gestos, mas permite o desenvolvimento de UIs de toque avançado.

libAVG - Não usei este, mas tenho uma seleção de ótimos aplicativos de exemplo que você pode executar e jogar.

edit: As coisas podem não funcionar perfeitamente, isso é esperado, mas essas ferramentas ajudarão a identificar o problema. Poste de volta a saída de qualquer um desses comandos e ajudarei a interpretá-los

    
por mdoran3844 09.08.2013 / 09:33