J'ai un Raspberry Pi 3 et un écran tactile de 15 ", utilisant VGA pour la vidéo (j'utilise un convertisseur pour brancher la prise HDMI du Pi) et un port USB pour les fonctionnalités tactiles.
Lorsque je démarre avec le périphérique branché, le module usbtouchscreen gère le périphérique et crée deux entrées: /dev/input/event3
et /dev/input/mouse1
. Xorg enregistre l' event3
entrée et je peux interagir par contact tactile avec le système, mais pas comme je l'aurais prévu. Je ne peux rien cliquer, je ne fais que déplacer la souris. Il n’enregistre pas non plus l’ mouse1
entrée due à no driver found
(plus de détails dans les sorties de journal ci-dessous). Les touches s’enregistrent presque partout à l’écran, à l’exception des coins extrêmes, mais la souris revient à peu près au coin inférieur gauche après chaque pression. Quand je dis près du coin inférieur gauche, je veux dire environ 1 / 8ème de l'écran, à l'écart du coin réel sur les deux axes. Après avoir configuré la configuration Xorg, permutez et inversez les axes en 10-evdev.conf
:
Option "SwapAxes" "1" Option "Inverser" "1"
La souris est dans le quadrant inférieur droit. La souris est également contrainte à environ 1/2 à 2/3 de l'écran, quelle que soit l'orientation de l'axe, un peu comme un effet de redimensionnement. Lorsque je clique en haut à gauche de l'écran, la souris se déplace quelque part au milieu de l'écran. Pareil pour toucher toutes les autres parties de l'écran.
J'ai essayé de régler Option "Mode" "Relative"
dans la configuration, ce qui permet à la souris de suivre mon doigt n'importe où sur l'écran (la mise à l'échelle 0,5x a donc disparu), mais elle revient à différents endroits, progressant et finissant par atteindre le coin inférieur droit en tant que "position de départ" "après les presses.
J'ai essayé de reconstruire le noyau Raspberry Pi 3 avec toutes les options eGalax / EETI modulaires ou incluses:
CONFIG_TOUCHSCREEN_EGALAX = m CONFIG_TOUCHSCREEN_EETI = m CONFIG_TOUCHSCREEN_USB_COMPOSITE = m CONFIG_TOUCHSCREEN_USB_EGALAX = y
La même chose se passe comme décrit ci-dessus.
J'ai essayé de suivre le guide EETI pour installer leur pilote propriétaire, situé à l' adresse http://www.eeti.com.tw/drivers_Linux.html . J'ai téléchargé le eGTouch_v2.5.5814.L-ma
fichier, modifié les 4 paramètres du noyau recommandés, appliqué les correctifs de code source kernel versions 2.6+
et créé. Lorsque j'ai mis le noyau sur ma carte Pi SD et que je l'ai démarré, le event3
et mouse1
n'ont pas été créés car ils m'ont fait retirer usbtouchscreen
du noyau. Le guide a déclaré que je devais voir mon écran tactile eGalax sans aucun gestionnaire (contrairement à ce mouse1
que event3
je voyais auparavant) lorsque je me suis enfui, cat /proc/bus/input/devices
mais cela ne s'est pas présenté du tout. De plus, je ne suis pas capable d'interagir du tout via le toucher dans cette configuration.
J'ai essayé de faire clignoter Raspbian, Ubuntu MATE et Arch Linux ARM .img
, et ils se sont tous comportés de la même manière, à une exception près. Quelque part au cours de mon processus d’installation d’Ubuntu MATE et apt update && apt upgrade
en même temps rpi-update
, j’ai testé l’écran pour la première fois depuis le clignotement d’Ubuntu sur le SD et cela a parfaitement fonctionné! Cela me tue, car une fois la mise à niveau et le redémarrage terminés, je n’ai jamais pu me reproduire. J'ai essayé de refaire clignoter Ubuntu sans succès. J'étais confiant que cela resterait et je n'ai donc eu aucune des sorties de journal ou des paramètres de configuration qui l'ont fait ainsi.
Ma théorie est que l' mouse1
entrée est ce qui crée des clics, et ce n'est pas enregistré. Selon le journal Xorg ci-dessous:
Adding input device eGalax Inc. USB TouchController (/dev/input/mouse1)
No input driver specified, ignoring this device.
Je l' ai essayé d' ajouter /dev/input/mouse1
à 10-evdev.conf
avec , Driver "evdev"
mais il me donne le message d'erreur suivant:
evdev: eGalax Inc. USB TouchController: Unable to query fd: Inappropriate ioctl for device
. On dirait que evdev ne reconnaît pas l’entrée fournie par mouse1
. Tous les autres pilotes que je peux essayer?
Divers journal de sortie:
Sortie pertinente de cat / proc / bus / input / devices:
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="eGalax Inc. USB TouchController"
P: Phys=usb-3f980000.usb-1.5/input0
S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input4
U: Uniq=
H: Handlers=mouse1 event3
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3
ls -l / dev / input / by-id /:
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-DELL_DELL_USB_Keyboard-event-kbd -> ../event2
lrwxrwxrwx 1 root root 9 Nov 25 18:53 usb-eGalax_Inc._USB_TouchController-event-if00 -> ../event3
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-Logitech_USB_Receiver-event-if01 -> ../event1
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-Logitech_USB_Receiver-event-mouse -> ../event0
lrwxrwxrwx 1 root root 9 Nov 25 18:09 usb-Logitech_USB_Receiver-mouse -> ../mouse0
sortie lsusb:
Bus 001 Device 006: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
Bus 001 Device 005: ID 413c:2005 Dell Computer Corp. RT7D50 Keyboard
Bus 001 Device 004: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
sortie pertinente des périphériques usb:
T: Bus=01 Lev=02 Prnt=02 Port=04 Cnt=04 Dev#= 6 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0eef ProdID=0001 Rev=01.00
S: Manufacturer=eGalax Inc.
S: Product=USB TouchController
C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbtouchscreen
ls / dev / input:
by-id
by-path
event0
event1
event2
event3
mice
mouse0
mouse1
Xorg.0.log sortie pertinente:
[51.878] (II) config / udev: Ajout d'un périphérique d'entrée eGalax Inc. USB TouchController (/ dev / input / event3) [51.879] (**) TouchController USB d'eGalax Inc.: Application de InputClass "evdev touchscreen catchall" [51.879] (II) Utilisation du pilote d'entrée 'evdev' pour 'eGalax Inc. USB TouchController' [51.879] (**) USB TouchController d'eGalax Inc.: signale toujours les événements principaux [51.879] (**) evdev: eGalax Inc. USB TouchController: Périphérique: "/ dev / input / event3" [51.879] (-) evdev: eGalax Inc. USB TouchController: fournisseur 0xeef produit 0x1 [51.879] (-) evdev: eGalax Inc. USB TouchController: axes absolus trouvés [51.879] (-) evdev: eGalax Inc. USB TouchController: axes absolus x et y trouvés [51.879] (-) evdev: eGalax Inc. USB TouchController: écran tactile absolu trouvé [51.879] (II) evdev: eGalax Inc. USB TouchController: Configuration en tant qu'écran tactile [51.879] (**) evdev: eGalax Inc. Contrôleur tactile USB: YAxisMapping: boutons 4 et 5 [51.879] (**) evdev: eGalax Inc. Contrôleur tactile USB: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [51.879] (**) Option "config_info" "udev: /sys/devices/platform/soc/3f980000.usb/usb1/1-1-1-1-1-1-1-1-1.5: 1.0 / input / input3 / event3" [51.879] (II) XINPUT: Ajout d'un périphérique d'entrée étendu "eGalax Inc. USB TouchController" (type: TOUCHSCREEN, id 9) [51.879] (II) evdev: eGalax Inc. USB TouchController: initialisé pour les axes absolus. [51.880] (**) eGalax Inc. USB TouchController: (accélère) en conservant le schéma d'accélération 1 [51.880] (**) eGalax Inc. USB TouchController: profil d'accélération (accéléré) 0 [51.880] (**) eGalax Inc. USB TouchController: facteur d'accélération (accéléré): 2 000 [51.880] (**) eGalax Inc. USB TouchController: seuil d'accélération (accéléré): 4 [51.881] (II) config / udev: Ajout d'un périphérique d'entrée eGalax Inc. USB TouchController (/ dev / input / mouse1) [51.881] (II) Aucun pilote d'entrée spécifié, ignorant ce périphérique. [51.881] (II) Ce périphérique a peut-être été ajouté à un autre fichier de périphérique. [2310.541] (II) config / udev: retrait du périphérique eGalax Inc. USB TouchController [2310.573] (II) evdev: eGalax Inc. USB TouchController: Fermer [2310.574] (II) UnloadModule: "evdev"
dmesg sortie pertinente:
[4.845962] entrée: eGalax Inc. USB TouchController en tant que /devices/platform/soc/3f980000.usb/usb1/1-1-1-1-1.5-1-1.5:1.0/input/input3 [4.846690] usbcore: nouveau pilote d'interface enregistré usbtouchscreen
10-evdev.conf lignes pertinentes:
Section "InputClass" Identifiant "evdev touchscreen catchall" MatchIsTouchscreen "sur" MatchDevicePath "/ dev / input / event *" Option "SwapAxes" "1" Option "Inverser" "1" Pilote "evdev" EndSection
Si vous avez lu jusqu'ici, merci! Je pensais que plus d'infos valait mieux que moins. Apprécier tous les pointeurs.
evtest /dev/input/event3
(le chemin réel peut changer, assurez-vous d’utiliser le pilote actuel ou à l’utiliserdev/input/by-id
) et de voir le type d’événements que vous obtenez et ce qui se produit après le clic qui le fait rebondir. à l'ancien emplacement.dmesg
Mentionne- t- il un périphérique HID ou HIDRAW?