Driver serial do gadget, comunique-se com outro dispositivo por meio de USB

0

Eu tenho um dispositivo Android que atua como o host usb para um zero pi framboesa que se comportará como um dispositivo escravo. Eu não tenho absolutamente nenhum problema usando a API do Android para interagir com dispositivos escravos usb.

Eu aparentemente preciso de um driver como Driver Serial do Gadget que eu carrego na inicialização com o comando seguinte no pi framboesa.

sudo modprobe g_serial

O sistema deve aparentemente criar o nó do dispositivo /dev/ttyGS0 para o driver, mas isso não aconteceu. Qual poderia ser a razão disso?

Se o driver foi carregado com sucesso, como eu escrevo um programa usando ele e o nó? É possível ou preciso escrever meu próprio driver? Existe alguma maneira alternativa de fazer isso? Sou relativamente novo no linux, então respostas com comandos de terminal serão muito úteis. Agradecemos antecipadamente.

    
por Johan Sundman 01.03.2018 / 13:04

1 resposta

0

Eu não posso dizer o que deu errado no seu Raspberry Pi (porque eu não tenho um), mas posso dizer-lhe como testar e trabalhar com o driver do dispositivo serial. Tente o seguinte no seu PC principal primeiro.

Carregue um driver de controlador de host virtual (simulado) para dispositivos USB:

sudo modprobe dummy_hcd

Isso funcionará simultaneamente como uma estrutura para os drivers de gadgets e fornecerá a você um novo barramento USB "normal" (verifique com lsusb ) visível para o computador e fará um loopback entre eles.

Agora, carregue o driver do gadget serial:

sudo modprobe g_serial

Você deve ver um novo dispositivo no barramento e também /dev/ttyGS0 do driver do gadget. Ao mesmo tempo, o novo dispositivo faz com que o driver do kernel para clientes seriais seja carregado, assim você também obterá um dispositivo /dev/ttyACM0 .

Você pode simplesmente escrever e ler desses dispositivos e ver se eles se comunicam. Por exemplo. do cat /dev/ttyACM0 em uma janela e echo foo > /dev/ttyGS0 em outra.

Eu suspeito que você terá que colocar o Raspberry Pi no modo cliente USB, e carregar o driver HCD correto para que os drivers do gadget possam se conectar, e se você não tiver feito isso, o gadget o motorista simplesmente não fará nada, como você observou. Mas eu não sei o caminho certo para usar no Raspberry Pi.

    
por 02.03.2018 / 19:14