Driver CDC-ACM que retorna dados de lixo

2

Estou tentando conectar um dispositivo GPS u-Blox USB a um sistema Linux 2.6.32 embutido (armel) baseado no BusyBox. O dispositivo tem uma interface USB CDC ACM nativa. O sistema não veio com cdc_acm, então eu fiz a compilação cruzada, transferi & insmodded, e carregado com sucesso (confirmado por dmesg ).

Eu pluguei o dispositivo e ele foi corretamente enumerado pelo driver USB com o endereço 001:003 e atribuído ao driver cdc_acm que criou o arquivo /dev/ttyACM0 . No entanto, a abertura do dispositivo com um terminal serial ou mesmo com o comando cat resulta na impressão de lixo, enquanto os comandos ASCII NMEA devem ser impressos (isso é confirmado para funcionar em outros dois sistemas).

stty é executado no arquivo sem erros (no entanto, os dados relatados são obviamente inválidos / arbitrários, devido ao dispositivo ser um dispositivo USB e não um dispositivo serial). lsusb -v -s 1:3 também informa as informações corretas para o dispositivo.

Eu não sei como depurar ainda mais o problema. Que passos posso dar para descobrir o problema e resolvê-lo?

    
por Riccardo Bestetti 23.08.2016 / 22:39

1 resposta

1

Parece que o problema residia nas configurações do terminal.

Ao definir manualmente a taxa de transmissão e o modo raw corretos, comecei a receber dados significativos do dispositivo:

stty -F /dev/ttyACM0 57600
stty -F /dev/ttyACM0 raw
    
por 25.08.2016 / 10:13