1 votes

Pilote de souris virtuelle, problèmes éventuels avec X11

J'ai créé le pilote de souris virtuelle selon Pilotes de périphériques Linux essentiels livre. Après avoir écrit les coordonnées echo x y > /sys/ ... /coordonnées dans le nœud sysfs, mon programme génère des paquets d'événements via l'interface d'événements /dev/input/event5 (j'ai vérifié). Cette interface d'événement est attachée au GPM gpm -m /dev/input/event5 -t evdev . Mais la souris ne bouge pas. J'ai posé cette question sur stackoverflow et je me suis rendu compte qu'il pouvait y avoir un problème avec la configuration de X11. Est-ce possible ? Qu'est-ce qui peut perturber le fonctionnement de mon pilote dans ces conditions ? J'utilise ubuntu 11.04 sur une boîte virtuelle. Merci.


Peut-être que cela vous aidera : dans Xorg.0.log, je vois ce qui suit :

[ 21.022] (II) Aucun pilote/identifiant d'entrée spécifié (ignorant)

[ 272.987] (II) config/udev : Ajout d'un périphérique d'entrée (/dev/input/event5)

[ 272.987] (II) Aucun pilote/identifiant d'entrée spécifié (ignorer)

[ 666.521] (II) config/udev : Ajout d'un périphérique d'entrée (/dev/input/event5)

[ 666.521] (II) Aucun pilote/identifiant d'entrée spécifié (ignorant)

-1voto

user212597 Points 1

En initialisant le champ de nom du périphérique et en activant les événements clavier (BTN_MOUSE), j'ai pu faire bouger la souris. J'essaie toujours de trouver la raison pour laquelle les événements relatifs ne fonctionnent pas, sans activer les événements liés aux touches.

Dans le pilote du périphérique d'entrée (c'est-à-dire la fonction du module init du pilote de souris virtuelle), j'ai ajouté les lignes de code ci-dessous juste avant d'enregistrer le périphérique d'entrée. Le reste du code est le même que dans le livre.

// Nom du dispositif

vms_input_dev->name = "Souris virtuelle" ;

// Activation des événements relatifs et des boutons

set_bit(EV_REL, vms_input_dev->evbit) ;

set_bit(EV_KEY, vms_input_dev->evbit) ;

set_bit(BTN_LEFT, vms_input_dev->keybit) ;

set_bit(REL_X, vms_input_dev->relbit) ;

set_bit(REL_Y, vms_input_dev->relbit) ;

Le code a fonctionné pour moi sur ubuntu 12.04

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X