2 votes

Configurer le numériseur Atmel MaxTouch sur le 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 il ne fait que des clics simples. De plus, lorsque mon moniteur externe est connecté, il pense que l'écran tactile couvre les deux écrans.

J'ai trouvé beaucoup de choses qui étaient dirigées pour les écrans tactiles Wacom, mais rien pour l'Amtel. Je suis très novice en matière de linux, et je ne sais même pas où commencer à chercher au-delà des recherches google ratées. J'ai trouvé ce résultat, mais Je n'ai pas les fichiers que celui-ci mentionne. .

Voici la sortie 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 que ma principale question est de savoir comment faire pour que l'écran tactile fonctionne correctement avec un moniteur externe connecté. Si je touche le côté droit de l'écran tactile, le curseur pense que je touche en fait le moniteur externe. Je veux surtout savoir comment faire pour que le système sache que l'écran tactile n'est pas tendu vers le moniteur externe lorsqu'il est branché.

Voici la sortie 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 quand je touche l'écran avec evtest :

Une seule touche :

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

1voto

Salako Points 1

Tout d'abord, assurez-vous que votre matériel prétend prendre en charge les touches multiples.

Je ne suis pas sûr de l'usage que vous voulez faire de l'écran tactile, mais sous Ubuntu, il n'y a pas beaucoup d'applications qui prennent en charge l'écran tactile. Protocole multi-touch Xinput2.2 .

Alors, faisons fonctionner l'écran tactile.

lsinput

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

sudo lsinput

evtest

evtest nous permet de vérifier quels sont les événements que votre appareil pousse dans la couche evdev. Vous devrez télécharger celui-ci aussi et l'exécuter sur l'emplacement du périphérique que vous avez noté plus tôt.

evtest /dev/input/eventxx

Le résultat vous indiquera le type d'événements que vous créez à partir du multi-touch. Pour un vrai multi-touch, vous voulez créer des événements tels que :

ABS_MT_TRACKING_ID
ABS_MT_POSITION_X
ABS_MT_POSITION_Y

Ce sont les véritables événements multi-touch, si vous ne les voyez pas, vous ne pourrez pas utiliser les applications multi-touch d'Ubuntu.

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

ABS_X
ABS_Y

Applications MultiTouch

Il n'y a qu'une poignée d'applications qui supportent le multi-touch dans Ubuntu. Je ne vais pas vous expliquer comment les configurer et les faire fonctionner mais je vais vous donner les noms de quelques frameworks sur lesquels vous pourrez faire des recherches.

Kivy - Supporte le multi-touch au niveau de la couche evdev. Un cadre d'application Python avec de nombreux exemples d'applications et de jeux.

Qt - Un grand cadre de développement d'applications, avec une prise en charge limitée des gestes mais permettant le développement d'interfaces utilisateur tactiles riches.

libAVG - Je ne l'ai pas vraiment utilisé mais il possède une sélection d'exemples d'applications que vous pouvez exécuter et avec lesquelles vous pouvez jouer.

edit : Les choses peuvent ne pas fonctionner parfaitement, c'est normal, mais ces outils aideront à identifier le problème. Postez la sortie de l'une de ces commandes et je vous aiderai à l'interpréter.

1voto

gfcittolin Points 26

Je découvre comment mapper correctement l'écran tactile à 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 aussi faire un petit script pour obtenir le bon id de périphérique et lancer la commande.

Pour le problème du clic, je pense que le multi-touch est reconnu pour moi, je peux utiliser 3 doigts pour redimensionner et déplacer Windows, mais même le simple clic ne fonctionne pas parfois pour moi. Je tape pour cliquer, mais cela se comporte comme si j'avais juste déplacé le curseur, sans avoir réellement cliqué. Bizarrement, cela se produit parfois, et je ne sais pas ce qui le fait démarrer et s'arrêter.

(J'ai trouvé la solution sur https://wiki.archlinux.org/index.php/Touchscreen )

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X