Guide pratique des écrans tactiles sous Linux

Version française du guide pratique Linux Touch Screen HOWTO

Éric Madesclair

Adaptation française

Jean-Philippe Guérard

Relecture de la version française

Jean-Philippe Guérard

Préparation de la publication de la v.f.

Version : 3.3.fr.1.0

© 2002 Christoph Baumann,

© 2005 Éric Madesclair et Jean-Philippe Guérard pour la version française

The GNU Free Documentation License applies to this document. Ce document est distribué selon les termes de la Licence de documentation Libre GNU (GFDL).

28 février 2005

Historique des versions
Version 3.3.fr.1.02005-02-28EM,JPG
Première traduction française
Version 3.32004-10-07CB

Résumé

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


Table des matières

Introduction
Commentaires et corrections
Nouvelles versions de ce document
Comment configurer le périphérique
Activer le périphérique
Utiliser en parallèle un écran tactile et une souris
Configuration sous XFree86 version 4
Un autre exemple de paramétrage (pour la gamme SMT3 de Microtouch)
Complément
Écrans tactiles des portables LifeBook de Fujitsu
Lectures conseillées

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 !

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 : http://www.sgoc.de/touchcal.html.

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

xsetpointer nom_du_périphérique

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

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.

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

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 : http://parzelle.de/Linux/Lifebook/. 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 » : http://www.conan.de/lifebook/lifebook.html. 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 : http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm). Il fonctionne correctement.