Je pose cette question parce que je n'ai rien trouvé de clair sur ce sujet après avoir cherché pendant des jours. Donc, je suis désolé si la question existe déjà.
Je travaille dans un projet, juste pour le plaisir, où je veux contrôler la souris PC à partir du Raspberry Pi. L'entrée utilisateur serait effectuée par tout type de matériel connecté au RP, mon principal doute est de savoir comment contrôler pour envoyer les instructions de mouvement au PC depuis le RP via USB.
Je sais que je dois activer le mode OTG pour que le PC le reconnaisse comme un périphérique USB, mais je n'ai aucune idée de la façon d'envoyer les mouvements de la souris au PC via l'USB et de le faire comprendre à Windows / Linux. J'ai trouvé que "Linux-USB Gadget API Framework" existe, mais il n'y a pas d'exemple sur son utilisation, et je ne sais pas vraiment si c'est la meilleure approche.
Pourriez-vous s'il vous plaît me donner quelques indices ou ressources pour m'aider?
Merci beaucoup.
hid_gadget_test
programme mentionné ici, je n'ai pas de pi à portée de main mais vous pouvez vérifierapt-file search hid_gadget_test
(et d'apt install apt-file
abord si nécessaire).usbkbd.ko
g_ether
est utilisée lors de l'attachement du zéro en tant que gadget Ethernet (mais c'est le côté esclave, le pilote côté hôte est le plus génériqueusbnet
).Réponses:
Essayez d'utiliser le
g_hid
module mentionné par @goldilocks:dtoverlay=dwc2
à votreconfig.txt
et redémarrezmodprobe g_hid
hid_gadget_test /dev/hidg0 keyboard
. Vous devrez peut-être d'abord créer le programme à l'aide de l'exemple de code fourni ici .Un autre moyen plus flexible pour réaliser ce que vous voulez (sans écrire de pilotes personnalisés) consiste à utiliser des gadgets . Je connais au moins un projet qui a transformé un petit ordinateur ARM en clavier / souris / manette de jeu USB / Bluetooth en utilisant cette approche.
Malheureusement, l'état des gadgets sur Rapsberry Pi est incertain. Ce fil suggère que cela ne fonctionne pas, mais on ne sait pas exactement ce que l'auteur a essayé de faire exactement. Je suggère néanmoins de l'essayer:
dtoverlay=dwc2
à votreconfig.txt
et redémarrezmodprobe gadgetfs
mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/
Si vous n'obtenez aucune erreur à ce stade, vous pourrez utiliser des bibliothèques de gadgets comme celle-ci pour programmer vos périphériques USB personnalisés.
la source
modprobe
les pilotes? Pourriez-vous montergadgetfs
? Pourriez-vous construire et exécuterhid_gadget_test
?