Virtueller Maustreiber, mögliche Probleme mit X11


1

Ich habe einen virtuellen Maustreiber gemäß dem Buch Essential Linux Device Drivers erstellt . Nachdem ich die Koordinaten echo xy> / sys / ... / coordinates in den Knoten sysfs geschrieben habe, generiert mein Programm Ereignispakete über die Ereignisschnittstelle / dev / input / event5 (ich habe dies überprüft). Diese Ereignisschnittstelle ist an die GPM gpm -m / dev / input / event5 -t evdev angehängt . Aber die Maus bewegt sich nicht. Ich habe diese Frage zum Stackoverflow gestellt und festgestellt , dass möglicherweise ein Problem mit der X11-Konfiguration vorliegt . ist es möglich? Was kann meine Fahrerarbeit unter diesen Bedingungen stören? Ich benutze Ubuntu 11.04 auf virtuelle Box. Vielen Dank.


Vielleicht hilft das: in Xorg.0.log sehe ich folgendes:

[21.022] (II) Kein Eingabetreiber / Bezeichner angegeben (wird ignoriert)

[272.987] (II) config / udev: Eingabegerät hinzufügen (/ dev / input / event5)

[272.987] (II) Kein Eingabetreiber / Bezeichner angegeben (wird ignoriert)

[666.521] (II) config / udev: Eingabegerät hinzufügen (/ dev / input / event5)

[666.521] (II) Kein Eingabetreiber / Bezeichner angegeben (wird ignoriert)

Antworten:


-1

Durch Initialisieren des Namensfelds des Geräts und Aktivieren von Keybit-Ereignissen (BTN_MOUSE) konnte ich die Maus in Bewegung setzen. Ich versuche immer noch, den Grund zu finden, warum relative Ereignisse nicht funktionieren, ohne Tastenereignisse zu aktivieren.

Im Eingabegerätetreiber (dh der Init-Modulfunktion des virtuellen Maustreibers) wurden die folgenden Codezeilen hinzugefügt, bevor das Eingabegerät registriert wurde. Der Rest des Codes ist derselbe wie im Buch

// Gerätename

vms_input_dev-> name = "Virtuelle Maus";

// Relative Ereignisse und Schaltflächenereignisse aktivieren

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

Der Code funktionierte für mich am Ubuntu 12.04


1
Ich habe diese Antwort hier gesehen , aber auf beiden Seiten ist nicht bekannt, welche Datei geändert werden soll oder wie man sie erhält. Es gibt auch keine Erklärung, was der Code macht oder warum er geändert werden sollte.
MadMike

Wie bereits erwähnt, müssen die Änderungen im Treibercode des Eingabegeräts, dh im Init-Modul des virtuellen Maustreibers, unmittelbar vor der Registrierung des Eingabegeräts vorgenommen werden. Die Änderungen, die ich am Code im Buch vorgenommen habe, sind das Initialisieren des Gerätenamens und das Aktivieren von Schlüsselereignissen (BTN_MOUSE). Ohne diese Änderungen könnte ich die Maus nicht in Bewegung bringen. Ich versuche immer noch die Gründe zu finden.
user212597

Könnten Sie bitte Ihre Antwort bearbeiten und die Informationen dort hinzufügen? Danke.
MadMike
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.