Problème : Le système d'exploitation Ubuntu ne peut pas gérer deux ports série lorsque les périphériques série connectés aux ports série sont sous tension. Comment surmonter ce problème et empêcher mon port de tomber en panne? Comment puis-je le résoudre?
Résumé des symptômes : Lorsque les deux convertisseurs série-USB sont connectés au PC (sans aucun périphérique série connecté), tout va bien; ils apparaissent comme ttyUSB0 et ttyUSB1. Cependant, dès que j'y connecte des périphériques série et que je les allume, l'un des ports série se bloque (il disparaît du répertoire/dev). Ce n'est pas un problème de matériel ou de câblage. Quelque chose se passe dans le système d'exploitation qui ajoute des cheveux gris dans ma tête ... Pourriez-vous s'il vous plaît aider? Veuillez lire la suite pour plus de détails.
J'utilise Ubuntu 14.04.3 sur un ordinateur portable Lenovo.
Je suis à un point où je suis capable de recréer l'erreur avec le moins de matériel et de logiciel. Les étapes ci-dessous recréent le problème:
dmesg
et enregistre la sortie dans un fichier. Voir https://Pastebin.com/4fXxK1hVJe connecte RS422 à un périphérique USB sans rien y connecter. Je lance lsusb
. C'est le périphérique Bus 003 Device 003: ID 0856:ac11 B&B Electronics
. La sortie est:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 04f2:b44d Chicony Electronics Co., Ltd Bus 001 Device 003: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 003: ID 0856:ac11 B&B Electronics Bus 003 Device 002: ID 0cd5:0003 LabJack Corporation U3 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
J'ai de nouveau exécuté dmesg
. La sortie est ici: https://Pastebin.com/uTGra1h7
Je vais à /dev
et lance ls -l | grep USB
. Le port série apparaît: constructor@constructor-pc:~$ cd /dev constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0
J'allume le périphérique connecté au port RS422. Il n'y a aucun changement dans la sortie de /dev
ou ls -l | grep USB
et lsusb
Je connecte le convertisseur RS232 en USB. Le périphérique série n'est pas encore connecté au convertisseur. J'ai couru lsusb
. C'est le périphérique Bus 001 Device 018: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
. La sortie est:
constructor@constructor-pc:/dev$ lsusb Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 04f2:b44d Chicony Electronics Co., Ltd Bus 001 Device 003: ID 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]
Bus 001 Device 018: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 003: ID 0856:ac11 B&B Electronics Bus 003 Device 002: ID 0cd5:0003 LabJack Corporation U3 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ls -l | grep USB
dans le répertoire /dev
. Voici la sortie:constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 crw-rw---- 1 root dialout 188, 1 Nov 21 18:47 ttyUSB1
Jusque là tout va bien. J'exécute la commande dmesg
pour tout capturer pour le dépannage. Voir: https://Pastebin.com/3kZNLtr6
C'est à ce stade que le problème apparaît. Je connecte un périphérique série au convertisseur RS232 vers USB. Jusqu'à présent, tout est encore OK. J'allume le périphérique série (normalement, c'est le point où le logiciel contrôlant mon prototype se bloque). Je lance immédiatement la commande ls -l | grep USB
plusieurs fois. Voici la sortie:
constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0 constructor@constructor-pc:/dev$ ls -l | grep USB crw-rw-rw- 1 root dialout 188, 0 Nov 21 16:36 ttyUSB0
Vous pouvez voir que j'ai perdu l'un de mes ports série!
dmesg
pour une personne plus avertie à utiliser pour le diagnostic. Veuillez consulter: https://Pastebin.com/sCYXeKa9Conclusions testées auxquelles je suis parvenue au cours des 5 derniers jours:
Informations additionnelles: Au cours de la dernière semaine écoulée depuis que j'ai posé cette question, j'ai acheté davantage de ports série à USB au cas où l'un d'entre eux serait défectueux, et le comportement n'a pas changé. J'ai également remplacé le composant série qui provoque le blocage du port lorsqu'il est allumé avec une unité de rechange et le comportement n'a pas changé. J'ai aussi essayé un autre PC et le comportement n'a pas changé.
Pouvez-vous s'il vous plaît fournir une réponse avec un correctif à ce problème? Ou comment résoudre ce problème?
De plus, si je peux fournir des informations ou exécuter des commandes, n'hésitez pas à me le faire savoir!
Merci d'avance...
Mike
Il s’agissait d’un problème électrique et non pas d’un problème d’exploitation. J'ai câblé le port série du périphérique au côté série du convertisseur USB vers RS485 conformément à la documentation du fabricant, de la manière suivante:
Tx- to Rx- Tx+ to Rx+ Rx- to Tx- Rx+ to Tx+ gnd to gnd
Ce qui a fini par résoudre ce problème a été de déconnecter le lien entre les contacts. Il devait y avoir une boucle de masse.