Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
evdev [Le 18/03/2012, 00:13] – [Calibration de l'écran tactile] 208.111.64.75 | evdev [Le 21/10/2020, 10:21] (Version actuelle) – [Dual-screen deux écrans] 93.5.46.132 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | |||
+ | ====== Configurer un écran tactile ====== | ||
+ | |||
+ | ===== Compatibilité ===== | ||
+ | |||
+ | Ce tutoriel a été testé avec le matériel et logiciels suivants : | ||
+ | * contrôleur d' | ||
+ | * eeepc asus 1000 | ||
+ | * tous périphériques de saisie connecté et détecté par le noyau et le pilote evdev (ce pilote est installé par défaut sur les principales distributions linux). | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * les droits administrateurs | ||
+ | * aucun prérequis pour le pilote de périphériques d' | ||
+ | * [[: | ||
+ | | ||
+ | ===== Généralités ===== | ||
+ | |||
+ | evdev est un pilote générique Xorg installé par défaut pour les interfaces d' | ||
+ | |||
+ | Il vous suffit donc de brancher votre écran tactile, le plus souvent à un port usb (ce port peut-être interne comme dans le cas d'un ordinateur portable ou externe) si ce n'est pas déjà fait. | ||
+ | |||
+ | ===== Vérifier votre écran tactile ===== | ||
+ | |||
+ | La deuxième étape, une fois le périphérique branché, est de vérifier qu'il est bien détecté par le système. Ouvrez une fenêtre du terminal et en ligne de commande : | ||
+ | |||
+ | < | ||
+ | |||
+ | Vous aurez la liste des périphériques détectés par evdev : | ||
+ | <code bash> | ||
+ | ⎡ Virtual core pointer | ||
+ | ⎜ ↳ Virtual core XTEST pointer | ||
+ | ⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 id=11 [slave | ||
+ | ⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 id=12 [slave | ||
+ | ⎜ ↳ eGalax Inc. Touch | ||
+ | ⎜ ↳ eGalax Inc. Touch | ||
+ | ⎜ ↳ ETPS/2 Elantech Touchpad | ||
+ | ⎣ Virtual core keyboard | ||
+ | ↳ Virtual core XTEST keyboard | ||
+ | ↳ Power Button | ||
+ | ↳ Video Bus | ||
+ | ↳ Power Button | ||
+ | ↳ Sleep Button | ||
+ | ↳ Microsoft Microsoft® Nano Transceiver v2.0 id=10 [slave | ||
+ | ↳ CNF7129 | ||
+ | ↳ Asus EeePC extra buttons | ||
+ | ↳ AT Translated Set 2 keyboard | ||
+ | </ | ||
+ | |||
+ | Dans cet exemple, je sais que le contrôleur pour mon écran tactile est eGalax. Il figure deux fois sous l' | ||
+ | |||
+ | Comme vous le constatez, ce pilote gère un bon nombre de périphérique. C'est pour cette raison que dès qu'un périphérique est mal configuré, il peut entrer en conflit avec un autre et créer des comportements aberrants du curseur ou bien de votre souris à titre d' | ||
+ | ====Configuration===== | ||
+ | ==== Activer ou désactiver un périphérique ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | Prenons l' | ||
+ | < | ||
+ | Mais lorsqu' | ||
+ | < | ||
+ | |||
+ | Lorsque vous désirez réactiver votre périphérique, | ||
+ | < | ||
+ | |||
+ | Maintenant que nous savons que notre écran tactile est bien détecté et actif, nous pouvons essayer notre écran tactile. | ||
+ | |||
+ | ==== Comportement de l' | ||
+ | |||
+ | Il est très fréquent que le pointeur de la souris ne suivent pas immédiatement la direction du mouvement de votre doigt et que l'axes des X et/ou des Y soient inversés. Il faut donc vérifier le déplacement du pointeur de la souris selon l'axe des X et des Y. Voici les commandes que vous devrez utiliser pour vos essais : | ||
+ | |||
+ | Si l'axe des X est inversé : | ||
+ | < | ||
+ | et le retour à la valeur par défaut : | ||
+ | < | ||
+ | |||
+ | pour inverser l'axe des Y | ||
+ | < | ||
+ | |||
+ | Si les deux axes sont inversés : | ||
+ | < | ||
+ | |||
+ | À présent, vous êtes en mesure de vous assurer que la direction du pointeur suivent plus ou moins la bonne direction. Nous passerons donc à l' | ||
+ | |||
+ | ==== Calibration de l' | ||
+ | |||
+ | Cette étape consiste à définir les coordonnées de 4 points précis de l' | ||
+ | |||
+ | Pour lancer cet outil en ligne de commande, il faut lancer l' | ||
+ | < | ||
+ | export TSLIB_TSDEVICE=/ | ||
+ | ts_calibrate | ||
+ | </ | ||
+ | |||
+ | Il est même possible que deviez estimer temporairement les premières valeurs pour pouvoir utiliser l' | ||
+ | |||
+ | === Utilisation de Calibrate Touchscreen === | ||
+ | |||
+ | Il s'agit d'une étape plutôt délicate car malheureusement, | ||
+ | |||
+ | < | ||
+ | Warning: multiple calibratable devices found, calibrating last one (eGalax Inc. Touch) | ||
+ | use --device to select another one. | ||
+ | Calibrating EVDEV driver for " | ||
+ | current calibration values (from XInput): min_x=1969, max_x=49 and min_y=169, max_y=1874 | ||
+ | |||
+ | Doing dynamic recalibration: | ||
+ | Setting new calibration data: 1982 21 165 1874 | ||
+ | |||
+ | |||
+ | --> Making the calibration permanent <-- | ||
+ | copy the snippet below into '/ | ||
+ | Section " | ||
+ | Identifier " | ||
+ | MatchProduct " | ||
+ | Option " | ||
+ | EndSection | ||
+ | </ | ||
+ | |||
+ | |||
+ | Encore une fois, la commande xinput vous sera utile pour essayer les valeurs que vous aurez trouvé. | ||
+ | le format de la commande xinput est le suivante : | ||
+ | < | ||
+ | |||
+ | dans notre exemple : | ||
+ | * 14 est le ID du l' | ||
+ | * 21 est le minimum de l'axe des X | ||
+ | * 1982 est le maximum de l'axe des X | ||
+ | * 165 est le minimum de l'axe des Y | ||
+ | * 1874 est le maximum de l'axes des Y | ||
+ | |||
+ | < | ||
+ | |||
+ | Mais si nous exécutons la commande précédente tel quel, nous pourrions avoir un problème puisque dans notre exemple l'axe des X est inversé. En effet si l'axe des X est inversé, nous devons inverser les coordonnées au besoin. Calibrate inverse correctement les coordonnées dans son rapport à la condition que vous ayez bien configurer votre axe des X et des Y, ce qui n'est pas toujours le cas durant les essais. Il faut donc être vigilant, sinon vous pourriez chercher longtemps la cause du problème. Voici donc la bonne commande pour notre exemple qui inverse uniquement l'axe des X : | ||
+ | < | ||
+ | |||
+ | Normalement, | ||
+ | |||
+ | ==== Dual-screen deux écrans === | ||
+ | |||
+ | Lorsque vous avez deux écrans et qu'un seul est tactile la commande est souvent répartie entre les deux moniteurs, ce qui la rend inutilisable. | ||
+ | Pour faire en sorte que le tactile ne fonctionne que sur l' | ||
+ | |||
+ | 1.Connaître le port de l' | ||
+ | < | ||
+ | xrandr | ||
+ | </ | ||
+ | Celui-ci va vous montrer tous les ports vidéo de votre ordinateur, le but du jeu est de trouver le nom du port correspondant à l' | ||
+ | |||
+ | 2.Une fois que cela est fait il ne reste plus qu'à associer la fonction à l' | ||
+ | < | ||
+ | xinput map-to-output VOTRE_ID VOTRE_PORTS_RÉCUPERÉ | ||
+ | </ | ||
+ | Pour moi c'est : | ||
+ | < | ||
+ | xinput map-to-output 14 HDMI-0 | ||
+ | </ | ||
+ | Normalement après cette commande le tactile doit fonctionner que sur l' | ||
+ | |||
+ | 3.Pour que ces changements soient persistants, | ||
+ | |||
+ | |||
+ | ==== Émulation du clic droit ==== | ||
+ | |||
+ | Le pilote **evdev** permet d' | ||
+ | |||
+ | Avec les [[: | ||
+ | \\ Ajouter les 3 lignes '' | ||
+ | < | ||
+ | Section " | ||
+ | Identifier " | ||
+ | MatchProduct " | ||
+ | Option " | ||
+ | Option " | ||
+ | Option " | ||
+ | Option " | ||
+ | EndSection | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ==== Rotation de l' | ||
+ | |||
+ | Dans le cas de l'Aus T91, [[: | ||
+ | <file bash rotatescreen.sh> | ||
+ | case " | ||
+ | right) | ||
+ | NEW_ROTATION=" | ||
+ | ;; | ||
+ | *) | ||
+ | NEW_ROTATION=" | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | par : | ||
+ | |||
+ | < | ||
+ | case " | ||
+ | right) | ||
+ | NEW_ROTATION=" | ||
+ | ;; | ||
+ | left) | ||
+ | NEW_ROTATION=" | ||
+ | ;; | ||
+ | inverted) | ||
+ | NEW_ROTATION=" | ||
+ | ;; | ||
+ | *) | ||
+ | NEW_ROTATION=" | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | |||
+ | FIXME Ce qui suit n'est peut-être plus d' | ||
+ | |||
+ | SI vous avez des boutons en bas à droite de l' | ||
+ | * [[: | ||
+ | * Puis [[: | ||
+ | * Enfin installer le paquet [[apt> | ||
+ | |||
+ | | ||
+ | |||
+ | ==== Rendre permanent les changements ==== | ||
+ | |||
+ | La troisième et dernière étape vise à rendre permanent toutes les configurations que vous avez validés grâce à vos essais avec la commande xinput. Il faut donc [[: | ||
+ | |||
+ | Vous devez rechercher la section spécifique à votre écran tactile : | ||
+ | |||
+ | < | ||
+ | Identifier "evdev touchscreen catchall" | ||
+ | MatchIsTouchscreen " | ||
+ | MatchDevicePath "/ | ||
+ | Driver " | ||
+ | EndSection</ | ||
+ | |||
+ | Vous devez ensuite spécifier les options qui correspondent à vos besoins (n' | ||
+ | |||
+ | Les options pouvant vous être utiles sont : | ||
+ | * Option SwaptAxes "0 ou 1" | ||
+ | * Option InvertX "0 ou 1" | ||
+ | * Option InvertY "0 ou 1" | ||
+ | Cette option est naturellement obligatoire : | ||
+ | * Option Calibration "minX maxX minY maxY" | ||
+ | |||
+ | Leur valeur peut-être 0 pour false et 1 pour true. Le symbole # au début d'une ligne met en commentaire la ligne dont vous n'avez pas besoin, mais il semble préférable d' | ||
+ | |||
+ | |||
+ | < | ||
+ | Identifier "evdev touchscreen catchall" | ||
+ | MatchIsTouchscreen " | ||
+ | MatchDevicePath "/ | ||
+ | Driver " | ||
+ | Option " | ||
+ | Option " | ||
+ | EndSection</ | ||
+ | |||
+ | **Méthode alternative** | ||
+ | |||
+ | Cette méthode consiste à créer un fichier script qui sera lancer au démarrage de chaque session utilisateur et idéalement, | ||
+ | |||
+ | Pour créer le script qui configurera votre écran tactile lors de l' | ||
+ | |||
+ | Créez le fichier **touchscreen.sh** en ligne de commande : | ||
+ | < | ||
+ | sudo gedit / | ||
+ | </ | ||
+ | |||
+ | Dans ce fichier, copier les lignes de commandes xinput qui vous ont servit précédemment à tester les configurations de votre écran tactile. À titre d' | ||
+ | < | ||
+ | #!/bin/bash | ||
+ | xinput set-int-prop 14 "Evdev Axis Inversion" | ||
+ | xinput set-int-prop 14 "Evdev Axis Calibration" | ||
+ | </ | ||
+ | Sauvegarder le fichier et fermer gedit. | ||
+ | |||
+ | En fonction des périphériques USB connectés, l' | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | # script : / | ||
+ | |||
+ | # Find the device ID. The typical line returned by ' | ||
+ | # | > Microchip Technology Inc. AR1100 HID-MOUSE id=8 [slave | ||
+ | # we want the number after the ' | ||
+ | ID=`xinput --list | grep " | ||
+ | |||
+ | xinput --set-prop --type=int --format=32 $ID "Evdev Axis Calibration" | ||
+ | </ | ||
+ | |||
+ | Remplacez la chaîne de la commande grep par la chaîne obtenue avec : | ||
+ | < | ||
+ | xinput --list | ||
+ | </ | ||
+ | |||
+ | Il sera utile de le rendre exécutable : | ||
+ | < | ||
+ | sudo chmod +x touchscreen.sh | ||
+ | </ | ||
+ | |||
+ | Sauvegardez votre fichier et redémarrez votre session. Normalement, | ||
+ | |||
+ | Mais vous vous en rendrez compte rapidement, l' | ||
+ | |||
+ | La solution proposé ci-dessous a été élaboré pour lancer le script de configuration de votre écran tactile sous gnome 3. Pour Unity, un sous-répertoire similaire existe mais nous ne l' | ||
+ | |||
+ | Toujours en mode superutilisateurs, | ||
+ | |||
+ | Éditez le fichier de configuration | ||
+ | < | ||
+ | sudo gedit / | ||
+ | </ | ||
+ | |||
+ | Ajouter le code suivant à la fin du fichier, mais juste avant la commande Exit 0. | ||
+ | Le code à ajouter vérifie si xinput est présent sur votre ordinateur et si oui, il exécute votre script de configuration pour votre écran tactile. | ||
+ | < | ||
+ | # Calibre l' | ||
+ | if [ -x / | ||
+ | / | ||
+ | fi | ||
+ | |||
+ | Exit 0 | ||
+ | </ | ||
+ | |||
+ | Sauvegardez et redémarrez votre ordinateur. Vous devriez pouvoir utiliser l' | ||
+ | |||
+ | |||
+ | ===== Liens ===== | ||
+ | |||
+ | Après avoir lu la documentation appropriée pour votre matériel, si vous souhaitez plus de détails sur le fonctionnement de la section « Configurer votre pilote evdev » de evdev.conf (notamment des explications sur les différentes options), allez voir les pages suivantes de la documentation de X.org : | ||
+ | |||
+ | | ||
+ | |||
+ | ===== FAQ ===== | ||
+ | |||
+ | Q : Après modification du fichier edev.conf, l' | ||
+ | |||
+ | R : Une erreur dans le libellé d'une option tel qu'une faute de frappe peut suffire à créer ce problème. La solution la plus simple est de démarrer l' | ||
+ | |||
+ | |||
+ | Q : Axes des X ou des Y est inversés. | ||
+ | |||
+ | R : Voir les commandes ci-haut concernant l'axes des X et Y. | ||
+ | |||
+ | |||
+ | Q : L' | ||
+ | |||
+ | R : Tenez en compte lors de vos essais, mais il est généralement inutile et même nuisible d' | ||
+ | |||
+ | |||
+ | Q : Le pilote du fabriquant ne fonctionne pas. | ||
+ | |||
+ | R : Vous en n'avez pas besoin et ce pilote risque d' | ||
+ | |||
+ | |||
+ | Q : L' | ||
+ | |||
+ | R : Il est possible que les coordonnées actuelles soient trop éloignées des valeurs optimale. Il est possible que l' | ||
+ | |||
+ | |||
+ | Q : Un bouton de la souris ou le pavé tactile ne fonctionne plus normalement après avoir touché l' | ||
+ | |||
+ | R : Essayez la touche échap et les différents boutons de votre souris. Si l' | ||
+ | |||
+ | |||
+ | Q : Existe-t-il un outil capable de configurer et calibrer mon écran tactile en une seule opération? | ||
+ | |||
+ | R : L' | ||
+ | Ajout: L' | ||
+ | |||
+ | ---- | ||
+ | //Auteurs : [[: | ||