Ich frage dies, weil ich nach tagelanger Suche nichts Klares zu diesem Thema gefunden habe. Es tut mir leid, wenn die Frage bereits besteht.
Ich arbeite in einem Projekt, nur zum Spaß, wo ich die PC-Maus vom Raspberry Pi aus steuern möchte. Die Benutzereingabe würde von jeder Art von Hardware erfolgen, die an das RP angeschlossen ist. Mein Hauptzweifel ist, wie gesteuert werden kann, um die Bewegungsanweisungen vom RP über USB an den PC zu senden.
Ich weiß, dass ich den OTG-Modus aktivieren muss, damit der PC ihn als USB-Gerät erkennt, aber ich habe keine Ahnung, wie ich die Mausbewegungen über USB an den PC senden und Windows / Linux verstehen lassen soll. Ich habe festgestellt, dass das "Linux-USB-Gadget-API-Framework" existiert, aber es gibt kein Beispiel für die Verwendung, und ich weiß nicht, ob es der beste Ansatz ist.
Könnten Sie mir bitte einige Hinweise oder Ressourcen geben, um mir zu helfen?
Vielen Dank.
hid_gadget_test
Programm erwähnt. Ich habe kein Pi zur Hand, aber Sie können es überprüfenapt-file search hid_gadget_test
(undapt install apt-file
zuerst, falls erforderlich).usbkbd.ko
g_ether
verwendet wurde, wenn die Null als Ethernet-Gadget angebunden wurde (aber es ist die Slave-Seite, der Host-Seite-Treiber ist der allgemeinereusbnet
).Antworten:
Versuchen Sie es mit dem
g_hid
von @goldilocks erwähnten Modul:dtoverlay=dwc2
zu Ihrem hinzuconfig.txt
und starten Sie neumodprobe g_hid
hid_gadget_test /dev/hidg0 keyboard
. Sie können das Programm zuerst bauen müssen, den Beispielcode versehen hier .Eine andere, flexiblere Möglichkeit, dies zu erreichen (ohne benutzerdefinierte Treiber zu schreiben), ist die Verwendung von Gadgetfs . Ich kenne mindestens ein Projekt, das einen kleinen ARM-Computer mit diesem Ansatz in USB / Bluetooth-Tastatur / Maus / Gamepad verwandelt hat.
Leider ist der Status von Gadgetfs auf Rapsberry Pi ungewiss. Dieser Thread schlägt vor, dass es nicht funktioniert, aber es ist unklar, was der Autor genau versucht hat. Ich würde trotzdem vorschlagen, es zu versuchen:
dtoverlay=dwc2
zu Ihrem hinzuconfig.txt
und starten Sie neumodprobe gadgetfs
mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/
Wenn Sie zu diesem Zeitpunkt keine Fehler erhalten, können Sie Gadgetfs-Bibliotheken wie diese verwenden , um Ihre benutzerdefinierten USB-Geräte zu programmieren.
quelle
modprobe
den Fahrern? Könnten Sie montierengadgetfs
? Könnten Sie bauen und laufenhid_gadget_test
?