Pytam o to, ponieważ nie szukałem nic na ten temat po kilku dniach poszukiwań. Przykro mi, jeśli pytanie już istnieje.
Pracuję nad projektem, dla zabawy, w którym chcę sterować myszą PC z Raspberry Pi. Wkład użytkownika byłby dokonywany przez dowolny sprzęt podłączony do RP, moje główne wątpliwości dotyczą sposobu sterowania wysyłaniem instrukcji ruchu do komputera z RP przez USB.
Wiem, że muszę włączyć tryb OTG, aby komputer mógł rozpoznać go jako urządzenie USB, ale nie mam pojęcia, jak wysyłać ruchy myszy do komputera przez USB i sprawić, aby system Windows / Linux to rozumiał. Odkryłem, że „Linux-USB Gadget API Framework” istnieje, ale nie ma żadnego przykładu z jego użyciem i tak naprawdę nie wiem, czy jest to najlepsze podejście.
Czy możesz prosić o wskazówki lub zasoby, które pomogą mi?
Dziękuję Ci bardzo.
hid_gadget_test
tam wspomniany program, nie mam przy sobie pi, ale możesz to sprawdzićapt-file search hid_gadget_test
(iapt install apt-file
najpierw w razie potrzeby).usbkbd.ko
g_ether
jest używany podczas tetheringu zera jako gadżetu ethernetowego (ale jest to strona podrzędna, sterownik po stronie hosta jest bardziej ogólnyusbnet
).Odpowiedzi:
Spróbuj użyć
g_hid
modułu wymienionego przez @goldilocks:dtoverlay=dwc2
doconfig.txt
i uruchom ponowniemodprobe g_hid
hid_gadget_test /dev/hidg0 keyboard
. Najpierw może być konieczne zbudowanie programu przy użyciu przykładowego kodu podanego tutaj .Innym, bardziej elastycznym sposobem na osiągnięcie tego, czego chcesz (bez pisania niestandardowych sterowników), jest użycie gadgetfs . Znam co najmniej jeden projekt, który zmienił mały komputer ARM w klawiaturę / mysz / gamepad USB / Bluetooth przy użyciu tego podejścia.
Niestety status gadżetów na Rapsberry Pi jest niepewny. Ten wątek sugeruje, że nie działa, ale nie jest jasne, co autor próbował dokładnie zrobić. Mimo to sugeruję wypróbowanie:
dtoverlay=dwc2
doconfig.txt
i uruchom ponowniemodprobe gadgetfs
mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/
Jeśli w tym momencie nie otrzymasz żadnych błędów, będziesz mógł używać bibliotek gadgetfs takich jak ta do programowania własnych urządzeń USB.
źródło
modprobe
kierowców? Czy możesz zamontowaćgadgetfs
? Czy potrafisz zbudować i uruchomićhid_gadget_test
?