web-dev-qa-db-fra.com

Configurer le numériseur Atmel MaxTouch sur Samsung ATIV 6

J'essaie de comprendre comment configurer l'écran tactile de mon Samsung ATIV 6. J'utilise Kubuntu 13.04. C'est un Amtel maXTouch Digitzer. Il reconnaît le toucher, mais ne fait que des clics simples. De plus, lorsque mon moniteur externe est connecté, cela signifie que l’écran tactile couvre les deux écrans.

J'ai trouvé beaucoup de choses qui étaient destinées aux écrans tactiles Wacom, mais rien pour Amtel. Je suis très nouveau sur Linux, et je ne sais même pas par où commencer, au-delà des recherches Google échouées. J'ai trouvé ce résultat, mais je n'ai pas les fichiers que celui-ci mentionne .

Voici le résultat 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)]

Mise à jour du 11 août 2013:

Je tiens à préciser, ma plus grande question est de savoir comment faire fonctionner l'écran tactile avec un moniteur externe connecté. Si je touche le côté droit de l'écran tactile, le curseur pense que je touche réellement le moniteur externe. Je veux surtout savoir comment faire savoir au système que l’écran tactile n’est pas étendu au moniteur externe lorsqu’il est branché.

Voici le résultat des commandes demandées ci-dessous:

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)

Voici quelques exemples de données lorsque je touche l'écran avec evtest:

Touche unique:

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 ------------

Deux doigts:

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 ------------
2
Nick

Je découvre comment mapper correctement l'écran tactile sur l'écran en utilisant:

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

Pour trouver l'identifiant du périphérique, utilisez

xinput list

et pour trouver le nom d’écran, utilisez

xrandr

Je dois juste trouver comment déclencher cela automatiquement lorsque le moniteur externe est connecté. Vous pouvez également créer un petit script pour obtenir le bon identifiant de périphérique et exécuter la commande.

Pour le problème des clics, je pense que le multi-touch est reconnu pour moi, je peux utiliser 3 doigts pour redimensionner et déplacer des fenêtres, mais même un simple clic ne fonctionne parfois pas pour moi. Je tape pour cliquer, mais il se comporte comme je viens de déplacer le curseur, pas réellement cliqué. Étrangement, cela se produit parfois et je ne sais pas ce qui le fait démarrer ou arrêter.

(Trouvé la solution sur https://wiki.archlinux.org/index.php/Touchscreen )

1
gfcittolin

Tout d’abord, assurez-vous que votre matériel prétend prendre en charge plusieurs touches.

Je ne suis pas sûr de ce que vous voulez utiliser l'écran tactile, mais dans Ubuntu, peu d'applications prennent en charge protocole multi-touch Xinput2.2 .

Permet donc de faire fonctionner l'écran tactile.

lsinput

Vous devrez probablement télécharger celui-ci. Une fois que vous aurez terminé, vous serez en mesure de produire une sortie de tous vos périphériques d'événements d'entrée génériques fournissant une entrée via la couche evdev. Obtenez cette sortie et notez l'emplacement de votre appareil tactile Atmel

Sudo lsinput

evtest

evtest nous permet de vérifier quels événements votre appareil envoie dans la couche evdev. Vous devrez également télécharger celui-ci, puis l'exécuter sur l'emplacement de l'appareil que vous avez noté précédemment.

evtest /dev/input/eventxx

La sortie de ceci vous indiquera le type d’événements que vous créez en multi-touch. Pour créer de véritables contacts multiples, vous souhaitez créer des événements tels que:

ABS_MT_TRACKING_ID
ABS_MT_POSITION_X
ABS_MT_POSITION_Y

Ce sont vos véritables événements multi-touch. Si vous ne les voyez pas, vous ne pourrez pas exécuter les applications Ubuntu Multi-touch.

si vous voyez les événements suivants, vous ne faites probablement que simuler les mouvements de la souris.

ABS_X
ABS_Y

Applications MultiTouch

Il n’existe qu’une poignée d’applications prenant en charge le multi-touch dans Ubuntu. Je ne vais pas expliquer comment les configurer et les exécuter, mais je vais vous donner le nom de certains cadres sur lesquels effectuer davantage de recherches.

Kivy - Prend en charge le multi-touch sur la couche evdev. Un framework d'application Python avec de nombreux exemples d'applications et de jeux

Qt - Un cadre de développement d'applications volumineux, prenant en charge les gestes de manière limitée, permettant le développement d'interfaces tactiles riches.

libAVG - Je n'ai pas vraiment utilisé celui-ci, mais vous avez une sélection d'excellents exemples d'applications avec lesquelles vous pouvez courir et jouer.

edit: Les choses peuvent ne pas fonctionner correctement, c’est prévu, mais ces outils aideront à identifier le problème. Poster la sortie de l'une de ces commandes et je vais aider à les interpréter

1
mdoran3844