10 votos

El adaptador de USB a serie funciona una vez por cada reinicio

Actualización#2, Después de probar con diferentes aplicaciones de consola, creo que la conclusión es que GNU screen que viene con Mac OS X 10.11.4 tiene un defecto que causa este problema. Espero que algún desarrollador pueda ver esto y ayudar a diagnosticar una solución...

Actualización#1, Ahora actualicé a la 10.11.4 y también actualicé el controlador del cable... El problema sigue ocurriendo... ¡¡¡Ayuda!!!

Tengo un adaptador de USB a serie para conectarme al puerto CONSOLE del switch/router y uso "screen" dentro de Terminal para conectarme. Recientemente encontré que el "screen /dev/cu.usbserial 9600" funciona sólo una vez por cada reinicio del sistema. Aquí están los pasos para replicar:

  1. La salida de "ls /dev/ usb " muestra el dispositivo correcto.
  2. Accede a la consola del dispositivo con "screen /dev/cu.usbserial 9600"
  3. Pulse "Ctrl+A, Ctrl+K" para salir de la pantalla
  4. (opcional), desconecte/reconecte el adaptador usb a serie del portátil O desconecte/reconecte el cable de la consola del dispositivo de destino.
  5. La salida de "ls /dev/ usb " sigue mostrando el dispositivo correcto.
  6. Intente conectarse a la consola de nuevo con "screen /dev/cu.usbserial 9600", el proceso de screen se colgará. Una vez que esto sucede, el proceso de pantalla no puede ser matado a través de "sudo kill -9" y sólo puede ser resuelto por el ciclo de alimentación completa. Por cierto, el portátil también se cuelga durante el reinicio/apagado, hasta que sigo presionando el botón de encendido...
  7. Una vez colgada la pantalla, la salida de "ls /dev/ usb " no mostraría nada.

Una vez que el portátil arranca de nuevo, puedo conectarme con el mismo comando de pantalla y el mismo escenario para el paso 2-3 anterior...

Tengo Mac OS 10.11.3 y el adaptador es de la marca Micro Innovations (chip Prolific). He descargado e instalado/reinstalado el controlador desde el sitio de Prolific y no hay diferencia...

¿Alguna idea?

3voto

Greg R. Puntos 499

En primer lugar, ¿se cu -l /dev/cu.usbserial -s 9600 trabajar más de una vez? Si no es así, ¿cómo falla?

Porque el segundo abierto se bloquea y no muere ni con kill -9 es probable que sea un problema del controlador con la llamada a open(2) obtener el bloqueo inicial de la manija del dispositivo. La apertura del dispositivo podría bloquearse si el dispositivo no está en modo local y la entrada CD está baja.

Algunas versiones de esos dispositivos tienen errores de control de flujo por hardware. Podrías intentar un arreglo de hardware de hacer un bucle de RTS a CTS y conectar DTR, DSR y CD en el conector y sólo dejar que los pines de RX, TX y tierra se conecten al puerto de la consola.

Otra posibilidad es ejecutar stty clocal < /dev/cu.usbserial . Esto debería hacer que el dispositivo ignore las señales de control. Merece la pena probarlo desde otro terminal mientras el segundo abierto está bloqueado.

Actualización:

Es necesario ejecutar cu con sudo para que pueda escribir un archivo de bloqueo en /var/spool/uucp. Si no tiene contención de puertos (poco probable en un Mac de un solo usuario), puede cambiar la ruta del directorio de bloqueo usando un archivo de configuración. Cree un directorio vacío, luego cree un archivo de configuración que establezca lockdir a esa ruta del directorio. Algo así como:

lockdir /User/yourname/lockdir

A continuación, ejecute utilizando una línea de comandos como esta:

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

1voto

user38051 Puntos 271

También tuve este problema, exactamente como se describe con un dispositivo USB/serial PL2303.

La solución que elegí fue utilizar el controlador de https://www.mac-usb-serial.com/

La pantalla funcionó bien después de esto para múltiples conexiones.

0voto

jschmier Puntos 8088

Me gustaría mencionar, al no ser mencionado en ningún otro lugar, que tengo exactamente el mismo problema en una Raspberry Pi con el mismo conector USB a serie.

Una pregunta que sigue sin respuesta es cómo desconectarse: Lo descubrí en el cu página de manual: ~.

También descubrí que sudo cu -l /dev/cu.usbserial -s 9600 funciona en la reconexión con el RPi (RPi 1, Modelo B); pero sudo cu -l /dev/cu.usbserial -s 115200 no lo hace; lo que no concuerda con las instrucciones de Adafruit, que dicen screen /dev/cu.usbserial 115200 .

Ahora estoy contento de poder conectarme y desconectarme a la RPi a voluntad. También soy capaz de cu sin sudo . Gracias @janm.

0voto

Kairuri Puntos 41

Para solucionarlo, he eliminado la extensión de FTDI y he vuelto a instalar la versión más actual del "controlador" (v2.3) descargada del sitio web de FTDI.

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

Ahora puedo desconectar y volver a conectar el cable USB a serie sin reiniciar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X