Estou tendo algumas dificuldades com o módulo do kernel Gadget Serial v2.4. O g_serial é usado na máquina ARM BeagleBone Black com o Arch Linux 4.6.3-1 que está se comunicando com o PC host.
O problema foi reproduzido nesses hosts:
e com software diferente:
Dispositivo (BeagleBone Black):
Host (PC ou Cubieboard2):
Teste do Python: link .
A questão é que os dados são perdidos no dispositivo de direção - > hospedeiro. Por exemplo, se o dispositivo enviar para ttyGS0 100 MB de dados, o host receberá de ttyACM0 apenas 99,7% dos dados. Este nunca acontece na direção do host - > dispositivo.
A quantidade de dados perdidos varia com base nessas condições:
Em algum momento falha ao enviar apenas 1024 B, ou um número de tamanho similar, geralmente 512 B é perdido. Eu também tentei analisar pacotes USB com wireshark e realmente faltavam pacotes. Mas nada mais eu poderia interpretar como uma anomalia.
Então, do ponto de vista do meu kernel, parece um problema de tempo para mim. Alguma experiência semelhante com g_serial? Obrigado.
Descobri que quando o host é Cubieboard2 (2 CPUs), a taxa de falha cai rapidamente se eu carregar uma cpu com
cat /dev/zero > /dev/null
Mas quantidades diferentes de carga podem piorar ainda mais. Ainda está procurando algum problema de tempo: /