ttyUSB0 falha na porta serial e bloqueios, requer reinicialização do computador

1

Eu já postei essa pergunta no estouro da pilha, mas depois de procurar por questões semelhantes, percebi que este é um lugar muito melhor para ela (e só tem 8 visualizações depois de 10 horas em um domingo). Se necessário, eu vou deletar este ou o outro.

Estou com um problema estranho e não consigo encontrar mais ninguém com um problema semelhante. Estou me conectando a um dispositivo semelhante a um Zedboard ou Raspberry Pi através de USB usando a tela (sudo screen / dev / ttyUSB0 115200).

Em um momento aleatório após a conexão, a tela não responderá. Normalmente, desligar o dispositivo também encerra a sessão de tela, mas quando a tela não responde, desligar o dispositivo não faz nada. A única maneira de se livrar da tela congelada é forçar o fechamento do terminal.

Ao tentar se reconectar ao dispositivo em um novo terminal, a tela permanece congelada, exigindo uma força de fechamento novamente. Estas telas não são visíveis por screen -list, mas ao procurar pelos processos de tela (ps ax | grep ttyUSB0), a tela pode ser encontrada e múltiplas são encontradas se a tentativa de reconexão for tentada. Se houvesse múltiplos, os outros podem ser facilmente mortos (sudo kill 1234), mas quando se mata o primeiro processo de tela, o tipo de processo vai de Ss para Ds, que eu li significa que matar não funciona e o usuário tem que esperar. Nunca fecha infelizmente.

Neste ponto, ao tentar se reconectar ao dispositivo usando o mesmo comando, o seguinte erro é impresso na parte superior da tela em rápida sucessão: "Não é possível abrir linha '/ dev / ttyUSB0' para R / W: aberto () bloqueado, abortado ". (por cerca de 0,5 seg) seguido por "Desculpe, não foi possível encontrar um PTY". Então a tela fecha automaticamente. Neste ponto, tentei excluir manualmente a entrada ttyUSB0 em / dev e recriá-la usando o mknod, mas isso não ajuda. Tudo o que posso fazer neste momento é reiniciar o computador.

Eu tentei usar o minicom e o problema ainda ocorre (ele irá congelar após alguma quantidade de uso). Uma vez congelado, não há como se reconectar sem reiniciar o computador. Eu tentei portas USB diferentes no computador também.

Atualmente estou usando o CentOS 6.5 e atualmente não consigo alternar meu sistema operacional, portanto, espero que esse não seja o problema. Eu tentei ligar para o dispositivo através de uma máquina virtual (VirtualBox Ubuntu14.04.2) e não houve realmente uma falha para uma quantidade razoável de uso, mas eu acho que é provavelmente devido ao acaso, uma vez que não deve fazer a diferença.

Idealmente, gostaria de descobrir como corrigir o problema, mas também ficaria bem em descobrir como consertá-lo sem precisar desligar e ligar o computador.

    
por Quark 15.06.2015 / 06:34

1 resposta

0

Eu encontrei uma solução temporária que pode ser a única solução possível. Pode trazer luz sobre a causa real, por isso não vou aceitar minha própria resposta por alguns dias, mas vou depois desse ponto.

Ao conectar-se ao dispositivo através de uma máquina virtual, embora as falhas sejam tão frequentes, a conexão pode ser forçada a fechar, desabilitando e reativando o link entre o sistema operacional principal e a máquina virtual (neste caso, clicando em o botão de conexões USB e desativando / reativando o dispositivo UART). O que esta solução significa é que sempre que ocorre uma falha, uma simples desconexão, reconectar e "seta para cima, entrar" no console corrigirá o problema e levará apenas alguns segundos. Esta é definitivamente uma solução de band-aid, mas não tenho certeza de que existe uma melhor para essa configuração.

    
por 17.06.2015 / 00:43