nome do arquivo do dispositivo CDC bloqueado após desligar o modem

2

Eu tenho uma máquina Linux (baseada em ARM, construída usando Yocto, kernel 4.10) com modem conectado usando interface USB. O modem pode ser ligado ou desligado usando linhas GPIO.

Após alimentar o modem, o arquivo do dispositivo CDC é exibido. Eu consigo me comunicar com o modem sem problemas.

Às vezes preciso redefinir o modem, então fecho toda a comunicação com o arquivo do dispositivo, desativo usando o GPIO e, após alguns segundos, reconecto a energia.

E aqui está o problema, o arquivo do dispositivo é criado, mas com o novo nome de arquivo. Em vez disso, vamos dizer / dev / ttyACM5, eu tenho / dev / ttyACM6.

Enquanto posso obter o novo nome de arquivo do sistema, estou preocupado com vazamentos de recursos.

Primeiro, suspeitei de erro no meu programa, mas depois de horas de teste, estou bastante confiante de que meu programa não é um problema.

Aqui estão alguns fatos que podem ajudar:

  • O nome do arquivo é bloqueado quando o programa que se comunica com o dispositivo do CDC está em execução. Após a saída do programa - o nome do arquivo do dispositivo é liberado.

  • Quando meu programa é aberto, mas não se comunica com o dispositivo CDC - o nome do arquivo não está bloqueado. (após desligar o modem e aparecer o arquivo do dispositivo / dev / ttyACM5)

  • Quando meu programa é aberto e se comunica com o dispositivo CDC - após o desligamento, o dmesg mostra a mensagem "cdc_acm 1-3: 1.10: falha ao definir dtr / rts" e o nome do arquivo é bloqueado até que meu programa saia.

Alguma sugestão?

    
por Arek Marud 03.08.2017 / 13:10

0 respostas

Tags