J'ai deux appareils qui alimentent en continu les données via ttyUSB0 et ttyUSB1. J'ai des scripts php qui utilisent ces données. Le problème que je rencontre est que parfois le flux se fige. La meilleure façon de résoudre ce problème est de débrancher la carte BUB de l'ordinateur et de la rebrancher. Cependant, je cherche un moyen d'automatiser cette action. Existe-t-il un moyen de dire à Linux d'éjecter essentiellement la carte BUB puis de la récupérer?
12
Réponses:
J'ai le même problème que vous mais dans un contexte différent (j'ouvre une console série sur une box Linux). La liaison série ne répond parfois plus et je dois débrancher physiquement le convertisseur USB-série.
Ce qui suit semble résoudre mon problème, mais pas toujours.
Recherchez le pilote associé à votre périphérique ttyUSBx.
Vous pouvez voir cela
/dev/ttyUSB
utiliseusbserial
. Creusez maintenant un peu plus loin:Dans mon cas, mon convertisseur USB-série est un Prolific PL2303. Si vous avez un adaptateur FTDI, je pense que vous devriez voir à la
ftdi_sio
place depl2303
.Déchargez le pilote
Rechargez le pilote
Relancez votre communication série
la source
Avec la réponse de sdive, je n'arrêtais pas d'obtenir "FATAL: le module USB est en cours d'utilisation".
J'ai finalement résolu le problème avec quelques conseils de la réponse de LiLo ici: /ubuntu//a/661/379851
Mais au lieu d'utiliser du code C, j'ai écrit un équivalent python qui trouve également le bus et le périphérique en question:
Enregistrez simplement cela sous reset_usb.py ou quelque chose, puis exécutez-le comme ceci:
Où driver_name est la sortie de
Dans mon cas, c'était cp210x, donc je le lance comme ceci:
la source
Voici ma réponse pour le module
ftdi_sio
. Les étapes sont adaptées de la réponse ci-dessus et du lien d'un commentaire dans la question d'origine.Je n'ai pas pu retirer le module:
J'utilise donc l'astuce suivante:
Ce qui a en effet été vérifié par:
Ensuite, il a été facile de retirer le module:
Et puis simplement:
Ce n'est pas clair pourquoi ftdi_sio se met en si mauvais état, peut-être encore un bug comme dans:
Mais il semble que le noyau 4.9.20 contient toujours un mauvais
ftdi_sio
module.la source