web-dev-qa-db-fra.com

L'écran tactile est reconnu comme une souris

J'ai branché un écran tactile 3M à mon PC Linux. Il apparaît comme il le reconnaît comme une souris. Voici ma sortie xinput:

xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse                id=13   [slave  pointer  (2)]
⎜   ↳ 3M 3M USB Touchscreen - 36955             id=12   [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)]
    ↳ Logitech USB Keyboard                     id=10   [slave  keyboard (3)]
    ↳ Logitech USB Keyboard                     id=11   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=14   [slave  keyboard (3)

Après # modprobe -r usbtouchscreen, l'appareil tactile cesse de fonctionner.

Sous Windows 7, cela fonctionne après l’installation du pilote à partir de ce site , alors j’ai également essayé d’installer le pilote Linux à partir d’ici (Linux, Single Touch, 64 bits). Je pense que le processus d'installation échoue car il s'interrompt immédiatement après avoir accepté la licence (avec 0 code de sortie).

Je teste mon écran tactile avec exemple de Qt FingerPaint (fonctionne également sous Windows, ne fonctionne pas sous Ubuntu). Le débogage montre que la saisie multipoint génère des événements de souris.

J'utilise Ubuntu 16.04 avec le noyau 4.10.0-35-generic et j'ai essayé les environnements Unity et Cinnamon. J'ai besoin que cela fonctionne à des fins de programmation.

EDIT:

Quelques outils de diagnostic en sortie:

# lsinput
...some other devices...
/dev/input/event12
bustype : BUS_USB
vendor  : 0x596
product : 0x1
version : 1088
name    : "3M 3M USB Touchscreen - 36955"
phys    : "usb-0000:00:14.0-3/input0"
bits ev : EV_SYN EV_KEY EV_ABS


# mtdev-test /dev/input/event12
015ee1f66c7c 00 1 014a 1
015ee1f66c7c 00 3 0000 12183
015ee1f66c7c 00 3 0001 7962
015ee1f66c7c 00 0 0000 0
015ee1f66c80 00 3 0000 12193
... etc ...

EDIT:

$ xinput list-props 12
Device '3M 3M USB Touchscreen - 36955':
    Device Enabled (143):   1
    Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (268): 0
    Device Accel Constant Deceleration (269):   1.000000
    Device Accel Adaptive Deceleration (270):   1.000000
    Device Accel Velocity Scaling (271):    10.000000
    Device Product ID (262):    1430, 1
    Device Node (263):  "/dev/input/event12"
    Evdev Axis Inversion (272): 0, 0
    Evdev Axis Calibration (273):   <no items>
    Evdev Axes Swap (274):  0
    Axis Labels (275):  "Abs X" (266), "Abs Y" (267)
    Button Labels (276):    "Button Unknown" (265), "Button Unknown" (265), "Button Unknown" (265), "Button Wheel Up" (149), "Button Wheel Down" (150)
    Evdev Scrolling Distance (277): 0, 0, 0
    Evdev Middle Button Emulation (278):    0
    Evdev Middle Button Timeout (279):  50
    Evdev Third Button Emulation (280): 0
    Evdev Third Button Emulation Timeout (281): 1000
    Evdev Third Button Emulation Button (282):  3
    Evdev Third Button Emulation Threshold (283):   20
    Evdev Wheel Emulation (284):    0
    Evdev Wheel Emulation Axes (285):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (286):    10
    Evdev Wheel Emulation Timeout (287):    200
    Evdev Wheel Emulation Button (288): 4
    Evdev Drag Lock Buttons (289):  0

Et evtest:

Sudo evtest /dev/input/event12
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x596 product 0x1 version 0x440
Input device name: "3M 3M USB Touchscreen - 36955"
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   6684
      Min        0
      Max    16384
    Event code 1 (ABS_Y)
      Value   6185
      Min        0
      Max    16384
Properties:
Testing ... (interrupt to exit)
Event: time 1507280785.112401, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1507280785.112401, type 3 (EV_ABS), code 0 (ABS_X), value 5971
Event: time 1507280785.112401, type 3 (EV_ABS), code 1 (ABS_Y), value 6240
Event: time 1507280785.112401, -------------- SYN_REPORT ------------
Event: time 1507280785.116364, type 3 (EV_ABS), code 0 (ABS_X), value 5953
Event: time 1507280785.116364, -------------- SYN_REPORT ------------
Event: time 1507280785.118359, type 3 (EV_ABS), code 0 (ABS_X), value 5968
Event: time 1507280785.118359, -------------- SYN_REPORT ------------
# ...........
Event: time 1507280785.156333, -------------- SYN_REPORT ------------
Event: time 1507280785.158356, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1507280785.158356, -------------- SYN_REPORT ------------
3
jaskmar

Vous devrez installer un nouveau noyau pour vérifier si le nouveau possède un microprogramme. Tout d’abord, vérifiez quel est le noyau actuel de votre système en utilisant la commande

uname -a

Vous pouvez installer manuellement le noyau 4.13 en tant que noyau stable actuel.

Étape 1: Passez à noyau Ubuntu 4.1

Étape 2: Sur la base de votre sortie uname -a, assurez-vous que votre système/os Arch est, s’il s’agissait de X86_64, c’est un 64 bits, s’il s’agissait d’un X86, puis de 32 bits.

Étape 3: Créez un dossier quelque part dans votre système en le nommant 4.13, vous pouvez également utiliser la commande

mkdir 4.13

Étape 4: Entrez dans le répertoire 4.13, sélectionnez maintenant les fichiers en fonction de votre Arch


Liste 64 bits

Si ses 64 bits choisissent celui-ci, c'est-à-dire X86_64:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_AMD64.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_AMD64.deb


Liste 32 bits

Si ses 32 bits aka X86 alors choisissez ceci:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_i386.deb

http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_i386.deb


Vous pouvez enregistrer la liste dans un fichier texte, par exemple "kernel_files.list". Maintenant, dans le terminal, utilisez wget pour télécharger ces fichiers.

wget -i kernel_files.list

Cela téléchargera la liste complète en utilisant wget.

Étape 5: Procédez maintenant à leur installation.

Sudo dpkg -i *.deb

Cela installera tous les 3 composants du noyau ensemble, enfin, vous verrez que tous les noyaux ont été compilés.

Étape 6: Redémarrez votre système pour utiliser le nouveau noyau

reboot

Étape 7: vérifiez l’installation du nouveau noyau en lançant la commande

uname -a

Maintenant, vérifiez si l'écran tactile fonctionne correctement ou non.

Vérifiez si le système reçoit des entrées à l'aide de

dmesg

Si cela échoue toujours, alors installez

make,gcc,g++,build-utils 

en émettant la commande

Sudo apt install make gcc g++ build-utils

puis réinstallez les pilotes de l'écran tactile.

Note 1: Si vous n’êtes pas sûr d’installer le nouveau noyau manuellement, vous pouvez utiliser ukuu à la place,

Pour installer ukuu

Sudo apt-add-repository -y ppa:teejee2008/ppa
Sudo apt-get update
Sudo apt-get install ukuu

Ensuite, exécutez ukuu et installez le noyau 4.13 à l’aide du tableau de bord ukuu.

Remarque n ° 2: Vous pouvez toujours revenir à votre noyau précédent en émettant C au démarrage de votre ordinateur Ubuntu.

Note 3. Protégez votre écran tactile et votre écran de la poussière et évitez l’humidité, l’huile, la saleté, etc.

Remarque n ° 4: utilisez un stylet car il serait plus précis que votre doigt.

Note n ° 5: le noyau 4.14 est en cours de test, alors n'installez pas ça

1
SIDDHARTH