10 votes

L'adaptateur USB vers série fonctionne une fois à chaque redémarrage

Update#2, Après avoir testé avec différentes applications de console, je pense que la conclusion est que GNU screen qui vient avec Mac OS X 10.11.4 a un défaut causant ce problème. J'espère qu'un développeur pourra voir cela et aider à diagnostiquer une solution...

Mise à jour n° 1, j'ai effectué une mise à niveau vers la version 10.11.4 et j'ai également mis à niveau le pilote du câble... Le problème se pose toujours... à l'aide ! !!

J'ai un adaptateur USB vers série pour me connecter au port CONSOLE du commutateur/routeur et j'utilise "screen" dans le terminal pour me connecter. Récemment, j'ai découvert que "screen /dev/cu.usbserial 9600" ne fonctionne qu'une seule fois à chaque redémarrage du système. Voici les étapes à suivre pour le reproduire :

  1. La sortie de "ls /dev/ usb "montre l'appareil correct.
  2. Connectez-vous à la console du périphérique avec "screen /dev/cu.usbserial 9600".
  3. Appuyez sur "Ctrl+A, Ctrl+K" pour quitter l'écran.
  4. (facultatif), débranchez/reconnectez l'adaptateur usb-série de l'ordinateur portable OU débranchez/reconnectez le câble de console du périphérique cible.
  5. La sortie de "ls /dev/ usb "Le dispositif correct est toujours affiché.
  6. Essayez de vous connecter à nouveau à la console avec "screen /dev/cu.usbserial 9600", le processus screen se bloquera. Une fois que cela se produit, le processus d'écran ne peut pas être tué via "sudo kill -9" et ne peut être résolu que par un cycle d'alimentation complet. De plus, l'ordinateur portable se bloque également pendant le redémarrage/arrêt, jusqu'à ce que je continue à appuyer sur le bouton d'alimentation...
  7. Une fois l'écran accroché, la sortie de "ls /dev/". usb "ne montrerait rien.

Une fois que l'ordinateur portable redémarre, je peux me connecter avec la même commande d'écran et le même scénario pour les étapes 2-3 ci-dessus...

J'ai Mac OS 10.11.3 et l'adaptateur est de la marque Micro Innovations (puce Prolific). J'ai téléchargé et installé/réinstallé le pilote depuis le site Prolific et aucune différence...

Une idée ?

3voto

janm Points 2812

Tout d'abord, est-ce que cu -l /dev/cu.usbserial -s 9600 travailler plus d'une fois ? Sinon, comment se fait-il qu'il échoue ?

Parce que le deuxième ouvert bloque et ne meurt pas même avec kill -9 il s'agit probablement d'un problème de pilote avec l'appel à open(2) obtenir le blocage initial du handle du périphérique. L'ouverture du périphérique peut se bloquer si le périphérique n'est pas en mode local et que l'entrée CD est basse.

Certaines versions de ces appareils ont des bogues de contrôle de flux matériel. Vous pouvez essayer une correction matérielle en bouclant RTS vers CTS et en connectant DTR, DSR et CD sur le connecteur et laisser les broches RX, TX et la masse se connecter au port de la console.

Une autre possibilité est d'exécuter stty clocal < /dev/cu.usbserial . Cela devrait permettre au dispositif d'ignorer les signaux de contrôle. Cela vaut la peine d'essayer à partir d'un autre terminal pendant que la deuxième ouverture est bloquée.

Mise à jour :

Vous devez exécuter cu avec sudo afin qu'il puisse écrire un fichier de verrouillage dans /var/spool/uucp. Si vous n'avez pas de contention pour les ports (peu probable sur un Mac à utilisateur unique), vous pouvez changer le chemin du répertoire de verrouillage en utilisant un fichier de configuration. Créez un répertoire vide, puis créez un fichier de configuration définissant lockdir à ce chemin de répertoire. Quelque chose comme :

lockdir /User/yourname/lockdir

Puis exécutez en utilisant une ligne de commande comme ceci :

cu -I /path/to/conf/file -l /dev/cu.usbserial -s 9600

1voto

user38051 Points 271

J'ai également eu ce problème, exactement comme décrit avec un périphérique USB/série PL2303.

La solution que j'ai retenue a été d'utiliser le pilote de l'application https://www.mac-usb-serial.com/

L'écran a fonctionné correctement après cela pour de multiples connexions.

0voto

jschmier Points 8088

Je voudrais mentionner, ce qui n'est mentionné nulle part ailleurs, que j'ai exactement le même problème sur un Raspberry Pi avec le même connecteur USB-série.

Une question qui reste sans réponse est celle de savoir comment se déconnecter : Je l'ai découvert dans le cu page de manuel : ~.

J'ai aussi découvert que sudo cu -l /dev/cu.usbserial -s 9600 fonctionne lors de la reconnexion au RPi (RPi 1, modèle B) ; mais sudo cu -l /dev/cu.usbserial -s 115200 ne le fait pas ; ce qui est en contradiction avec les instructions d'Adafruit, qui disent que screen /dev/cu.usbserial 115200 .

Je suis heureux maintenant de pouvoir me connecter et me déconnecter du RPi à volonté. Je suis également capable de cu sans sudo . Merci @janm.

0voto

Andy Points 1

Pour résoudre ce problème, j'ai supprimé l'extension FTDI et réinstallé la version la plus récente du "pilote" (v2.3) téléchargée sur le site Web de FTDI.

rm /Library/Extensions/FTDIUSBSerialDriver.kext
Install new version
Restart

Maintenant je peux déconnecter et reconnecter le câble USB à Serial sans redémarrer.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X