Estou perguntando isso porque não encontrei nada claro sobre esse assunto depois de pesquisar por dias. Então, desculpe se a pergunta já existe.
Estou trabalhando em um projeto, apenas por diversão, onde quero controlar o mouse para PC a partir do Raspberry Pi. A entrada do usuário seria feita por qualquer tipo de hardware conectado ao RP, minha principal dúvida é sobre como controlar o envio das instruções de movimento para o PC a partir do RP via USB.
Sei que tenho que ativar o modo OTG para que o PC o reconheça como um dispositivo USB, mas não tenho idéia de como enviar os movimentos do mouse para o PC através do USB e fazer o Windows / Linux entender. Descobri que o "Linux-USB Gadget API Framework" existe, mas não há exemplo sobre como usá-lo e, na verdade, não sei se é a melhor abordagem.
Poderia me dar algumas dicas ou recursos para me ajudar?
Muito obrigado.
hid_gadget_test
programa mencionado lá, eu não tenho um pi à mão, mas você pode verificarapt-file search hid_gadget_test
(eapt install apt-file
primeiro se necessário).usbkbd.ko
g_ether
é usada ao conectar o zero como um dispositivo Ethernet (mas é o lado do escravo, o driver do lado do host é o mais genéricousbnet
).Respostas:
Tente usar o
g_hid
módulo mencionado por @goldilocks:dtoverlay=dwc2
ao seuconfig.txt
e reiniciemodprobe g_hid
hid_gadget_test /dev/hidg0 keyboard
. Pode ser necessário criar o programa primeiro, usando o código de exemplo fornecido aqui .Outra maneira mais flexível de conseguir o que você deseja (sem gravar drivers personalizados) é usar o gadgetfs . Conheço pelo menos um projeto que transformou um pequeno computador ARM em teclado / mouse / gamepad USB / Bluetooth usando essa abordagem.
Infelizmente, o status do gadgetfs no Rapsberry Pi é incerto. Este tópico sugere que não funciona, mas não está claro o que o autor tentou fazer exatamente. Eu sugiro tentar, no entanto:
dtoverlay=dwc2
ao seuconfig.txt
e reiniciemodprobe gadgetfs
mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/
Se não houver erros neste momento, você poderá usar as bibliotecas de gadgetfs como esta para programar seus dispositivos USB personalizados.
fonte
modprobe
os drivers? Você poderia montargadgetfs
? Você poderia construir e executarhid_gadget_test
?