Eu tenho dois dispositivos que alimentam dados continuamente através do ttyUSB0 e ttyUSB1. Eu tenho scripts php que estão usando esses dados. O problema que estou enfrentando é que, às vezes, o feed congela. A melhor maneira que eu já vi para corrigir isso é desconectar a placa BUB do computador e conectá-la novamente. No entanto, estou procurando uma maneira de automatizar essa ação. Existe uma maneira de dizer ao linux para ejetar essencialmente a placa BUB e, de alguma forma, buscá-la novamente?
12
Respostas:
Estou tendo o mesmo problema que você, mas em um contexto diferente (abro um console serial em uma caixa Linux). O link serial às vezes fica sem resposta e eu tenho que desconectar fisicamente o conversor serial USB.
O abaixo parece resolver o meu problema, mas nem sempre.
Encontre o driver associado ao seu dispositivo ttyUSBx.
Você pode ver que
/dev/ttyUSB
usausbserial
. Agora cave um pouco mais:No meu caso, meu conversor USB-serial é um PL2303 da Prolific. Se você tem um adaptador FTDI, acho que você deve ver
ftdi_sio
vez depl2303
.Descarregar o driver
Recarregue o driver
Reinicie sua comunicação serial
fonte
Com a resposta do sdive, eu continuava recebendo "FATAL: o módulo usbserial está em uso".
Finalmente resolvi o problema com algumas orientações da resposta de LiLo aqui: /ubuntu//a/661/379851
Mas, em vez de usar algum código C, escrevi um equivalente em python que também encontra o barramento e o dispositivo em questão:
Salve isso como reset_usb.py ou algo assim e execute-o assim:
Onde driver_name é a saída de
No meu caso, era cp210x, então eu o executo assim:
fonte
Aqui está a minha resposta para o módulo
ftdi_sio
. As etapas são adaptadas da resposta acima e do link de um comentário na pergunta original.Não foi possível remover o módulo:
Então, eu uso o seguinte truque:
O que de fato foi verificado por:
Então foi fácil remover o módulo:
E então simplesmente:
Não está claro por que o ftdi_sio fica em tão mau estado, talvez ainda seja um bug como em:
Mas parece que o kernel 4.9.20 ainda contém um
ftdi_sio
módulo ruim .fonte