# Guide pratique des écrans tactiles sous Linux

## Introduction

Ce guide pratique explique comment utiliser un écran tactile comme périphérique d'entrée sous XFree86. Il se concentre sur les écrans tactiles EloTouch et MicroTouch, que l'auteur a eu l'occasion d'utiliser.

Les exemples sont basés sur des périphériques connectés via le port série (/dev/ttyS0, et cætera). — N'hésitez pas à faire parvenir en anglais des informations relatives aux périphériques USB à l'auteur de ce document !

### Commentaires et corrections

N'hésitez pas à faire parvenir tout commentaire relatif à la version française de ce document à commentaires CHEZ traduc POINT org en précisant son titre, sa date et sa version.

### Nouvelles versions de ce document

Vous trouverez la plus récente version française de ce document à l'adresse : .

La plus récente version originale de ce document est disponible à l'adresse : .

## Comment configurer le périphérique

Les écrans tactiles sont paramétrés dans l'une des sections Xinput du fichier de configuration de XFree86 (ce fichier se nomme en général `/etc/X11/XF86Config` ou `/etc/XF86Config`). Vérifiez pour commencer que le module correspondant au périphérique est bien présent. Les modules se trouvent dans le répertoire `/usr/X11R6/lib/modules` (les écrans EloTouch et MicroTouch correspondent respectivement aux modules `xf86Elo.so` et `xf86MuTouch.so`). Regardez ensuite dans le fichier `XF86Config`, vous devriez trouver une section ressemblant à ceci :

    Section "Files"
    ...
    ModulePath "/usr/X11R6/lib/modules"
    ...
    EndSection

Pour que le module soit chargé par le serveur X, vous devrez avoir une section ressemblant à ceci :

    Section "Module"
    Load "xf86Elo.so"
    EndSection

Maintenant, la partie la plus délicate. Le serveur X a besoin de connaître certains paramètres du périphérique. La section correspondante doit ressembler à la section ci-dessous — reportez-vous à la page de manuel de

XF86Config

7 pour plus d'informations :

    Section "Xinput"

     # Utilisez « SubSection "MicrotouchFinger" » pour un écran MicroTouch

     SubSection "Elographics"

      Port "/dev/ttyS1"         # Pour un périphérique branché sur le
                                # deuxième port série

      DeviceName "EcranTactile" # N'importe quel nom non ambigu convient

      MinimumXPosition  300
      MaximumXPosition 3700
      MinimumYPosition  300
      MaximumYPosition 3700
      UntouchDelay       10     # non reconnu par le pilote MuTouch
      ReportDelay        10     # non reconnu par le pilote MuTouch
      AlwaysCore                # active le périphérique au démarrage

     EndSubSection

    EndSection

Les valeurs des entrées `MinimumXPosition`, et cætera sont bien entendu spécifique à la configuration de votre matériel (ils dépendent de la position de l'écran tactile par rapport au moniteur). Ces valeurs définissent à quels points de l'écran tactile correspondent les points (0,0) et (xmax, ymax) de votre moniteur (xmax et ymax dépendent de la résolution choisie pour votre serveur X, par exemple 1024x768). Le pilote lit ces valeurs et en déduit les autres coordonnées par interpolation. Le schéma suivant illustre cette mise en correspondance :

     --------- surface de l'écran tactile -----------
     I                                              I
     I  ####### surface visible du moniteur ######  I
     I  #x                                       #  I
     I  # (0,0)                                  #  I
     I  # (MinimumXPosition,MinimumYPosition)    #  I
     I  #                                        #  I
     I  #                                        #  I
     I  #                                        #  I
     I  #                                        #  I
     I  #                                        #  I
     I  #                                        #  I
     I  #                                        #  I
     I  #    (MaximumXPosition,MaximumYPosition) #  I
     I  #                            (xmax,ymax) #  I
     I  #                                       x#  I
     I  ##########################################  I
     I                                              I
     ------------------------------------------------

Trouver la bonne correspondance demandera soit un certain nombre d'essais, soit de lire la sortie brute de ce périphérique (ce qui demande une certaine connaissance de la programmation des ports série : consultez le guide pratique de Programmation des entrées-sorties série pour en savoir plus). Pour les écrans tactiles EloTouch et MicroTouch, il existe un outil rudimentaire de calibration (écrit par l'auteur de ce guide pratique), disponible à l'adresse suivante : .

## Activer le périphérique

Après le démarrage du serveur X, lancez la commande suivante dans un terminal :

    xsetpointer nom_du_périphérique

Où `nom_du_périphérique` est le nom défini dans le fichier `XF86Config` à la ligne :

    ...
    DeviceName "..."
    ...

Dans l'exemple présenté plus haut, il s'agissait d'`EcranTactile`.

Pour que le périphérique soit géré au démarrage, ajoutez l'option `AlwaysCore` dans la section de paramétrage de l'écran tactile du fichier `XF86Config` (voir ci-dessus).

## Utiliser en parallèle un écran tactile et une souris

Pour utiliser en parallèle un écran tactile et une souris, vous devrez définir la souris dans la section `Xinput`. Cette définition devrait être la même que la définition de la section `Pointer`. Par exemple, pour une souris utilisant le protocole PS/2 :

    Section "Xinput"
    ...
       SubSection "Mouse"
          Protocol "PS/2"
          Port "/dev/mouse"   # Ou /dev/psaux
          DeviceName "Mouse"
          AlwaysCore
       EndSubSection
    ...
    EndSection

Plusieurs personnes m'ont signalé ceci et notamment l'utilisation de l'option `AlwaysCore`. Merci à eux.

## Configuration sous XFree86 version 4

suggérée par Lee Monamy

Voici un exemple de paramétrage du fichier `XF86Config-4` pour un écran tactile ELO :

    Section "InputDevice"
            Identifier "Ecran tactile ELO"
            Driver     "elographics"
            Option     "Device"            "/dev/ttyS0"
            Option     "MinimumXPosition"         "300"
            Option     "MaximumXPosition"        "3700"
            Option     "MinimumYPosition"         "300"
            Option     "MaximumYPosition"        "3700"
            Option     "UntouchDelay"              "10"
            Option     "ReportDelay"               "10"
            Option     "SendCoreEvents"           "yes"
    EndSection

Différence notable entre le paramétrage de cette version et celui de la version 3, vous devez indiquer `Device` à la place de `Port`, sinon vous obtiendrez une erreur. De plus, le paramètre `AlwaysCore` de la version 3 a été remplacé par `SendCoreEvents`.

Vous devez aussi ajouter une entrée correspondant à l'écran tactile dans la section `ServerLayout`. Ceci, même si le serveur X vous indique qu'il a bien ajouté votre écran tactile : `(II) XINPUT: Adding extended input device "ECRANTACTILE" (type: Elographics Touch Screen)`.

    Section "ServerLayout"
            Identifier      "Default Layout"
            Screen          "Default Screen"
            InputDevice     "Generic Keyboard"
    ...
            InputDevice     "Ecran tactile ELO"
    EndSection

### Un autre exemple de paramétrage (pour la gamme SMT3 de Microtouch)

par Dirk Mueller

    Section "InputDevice"
            Identifier  "MicroTouchFinger"
            Driver      "mutouch"
            Option      "Type"             "finger"
            Option      "Device"           "/dev/ttyS0"
            Option      "ScreenNo"         "0"
            Option      "MinimumXPosition" "0"
            Option      "MaximumXPosition" "16383"
            Option      "MinimumYPosition" "0"
            Option      "MaximumYPosition" "16383"
    EndSection

L'option `Type` peut avoir pour valeur `finger` ou `stylus`. Depuis que Microtouch a été racheté par 3M-Touch, vous trouverez les ressources relatives à ces produits à l'adresse suivante :

### Complément

D'après Wong Yeow Sen, les noms des options de configuration ont été modifiés dans XFree86 version 4.2 (au moins pour la distribution Red Hat 7.3). Si vous constatez que les valeurs de calibration que vous avez défini ne sont pas utilisées, essayez d'utiliser les options suivantes :

    ...
            Option  "MinX"    "100"
            Option  "MaxX"   "4000"
            Option  "MinY"    "100"
            Option  "MaxY"   "4000"
    ...

## Écrans tactiles des portables LifeBook de Fujitsu

par Joerg Hau

Les adresses qui suivent contiennent des informations sur ces périphériques :

> Le pilote Linux de Harald Hoyer pour les écrans tactiles des portables LifeBook B112, B142 et B2130 : . Malheureusement, ce pilote n'est utilisable qu'avec la version 3 de XFree et apparemment, la page n'est plus mise à jour.

> Le pilote de Kenan Esau pour les écrans tactiles des portables Lifebook de la gamme B : . Il s'agit d'une adaptation à XFree version 4 du pilote de Harald Hoyer.

> J'ai utilisé avec mon Fujitsu LifeBook B142 le pilote de Kenan Esau (décrit à l'adresse : ). Il fonctionne correctement.

## Lectures conseillées

- La page de manuel de

  XF86Config

  7

- (Pilote iTouch USB)

- Le manuel de votre écran tactile :-)