Lo pregunto porque no he encontrado nada claro sobre este tema después de buscar durante días. Entonces, lo siento si la pregunta ya existe.
Estoy trabajando en un proyecto, solo por diversión, donde quiero controlar el mouse de la PC desde la Raspberry Pi. La entrada del usuario sería realizada por cualquier tipo de hardware conectado al RP, mi principal duda es sobre cómo controlar para enviar las instrucciones de movimiento a la PC desde el RP a través de USB.
Sé que tengo que habilitar el modo OTG para que la PC lo reconozca como un dispositivo usb, pero no tengo idea de cómo enviar los movimientos del mouse a la PC a través del USB y hacer que Windows / Linux lo entienda. Descubrí que existe el "Marco de API de gadget Linux-USB", pero no hay ningún ejemplo sobre su uso, y en realidad no sé si es el mejor enfoque.
¿Podría darme algunas pistas o recursos para ayudarme?
Muchas gracias.
hid_gadget_test
programa mencionado allí, no tengo un pi a la mano, pero puede verificarloapt-file search hid_gadget_test
(yapt install apt-file
primero si es necesario).usbkbd.ko
g_ether
se usa cuando se une el cero como un dispositivo de Ethernet (pero es el lado esclavo, el controlador del lado del host es el más genéricousbnet
).Respuestas:
Intente usar el
g_hid
módulo mencionado por @goldilocks:dtoverlay=dwc2
a suconfig.txt
y reiniciemodprobe g_hid
hid_gadget_test /dev/hidg0 keyboard
. Es posible que primero necesite compilar el programa, utilizando el código de muestra proporcionado aquí .Otra forma más flexible de lograr lo que desea (sin escribir controladores personalizados) es usar gadgetfs . Conozco al menos un proyecto que convirtió una pequeña computadora ARM en un teclado / mouse / gamepad USB / Bluetooth usando este enfoque.
Desafortunadamente, el estado de gadgetfs en Rapsberry Pi es incierto. Este hilo sugiere que no funciona, pero no está claro lo que el autor intentó hacer exactamente. Sin embargo, sugiero probarlo:
dtoverlay=dwc2
a suconfig.txt
y reiniciemodprobe gadgetfs
mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/
Si no obtiene errores en este punto, podrá utilizar bibliotecas de gadget como esta para programar sus dispositivos USB personalizados.
fuente
modprobe
los conductores? ¿Podrías montargadgetfs
? ¿Podrías construir y correrhid_gadget_test
?