O CDC ACM não funciona em um kernel Linux customizado

1

Eu tenho um cubieboard2 executando o arch linux com um kernel Linux customizado. No cubieboard2 eu liguei meu dispositivo usb-serial (como um arduino), o dispositivo é reconhecido como CDC ACM. Meu kernel linux tem as opções do CDC ativadas na configuração, como eu vi nesta página , mas, eu Não é possível usar a porta serial /dev/ttyACM0 usando os aplicativos minicom ou pyserial .

O Minicom apenas diz que não pode abrir a porta serial. O Pyserial é capaz de abrir a porta, mas quando eu tento lê-lo o resultado é:

SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

No entanto, em pyserial , se eu tentar escrever um byte, o resultado é outro:

SerialException: write failed: [Errno 5] Input/output error.

Outras coisas estranhas acontecem quando eu fecho a porta serial, ele muda seu nome, em outras palavras, quando eu fecho o /dev/ttyACM0 ele muda para /dev/ttyACM1 .

Eu testei meu dispositivo no meu laptop e ele funciona bem com ambos, pyserial e minicom .

cubieboard2 info:

$ uname -a
Linux alarm 3.4.61-rt77-ARCH+ #10 SMP PREEMPT RT Thu Apr 17 13:58:20 BRT 2014 armv7l GNU/Linux

meu arquivo de configuração do kernel: link

Meu palpite é que está faltando alguma opção de kernel ativada, mas não sei qual.

Alguma ideia?

    
por Ricardo Crudo 17.04.2014 / 22:25

1 resposta

0

Parece-me que o problema é o seu dispositivo. Pode enumerar OK, mas se comporta inesperadamente quando outras comunicações são realizadas. Tente usar o Wireshark com usbmon (eventualmente tshark se você não tiver uma sessão X). Geralmente, o nome ttyACM1 é devido à reenumeração após uma comunicação defeituosa.

    
por 25.07.2015 / 14:01