Restablecimiento del puerto USB en un MacBook Pro

Estoy tratando de obtener información sobre cómo restablecer el puerto USB en una MacBook Pro usando la línea de comandos de la terminal. Uso el puerto USB para acceder a un dispositivo de red a través de un puerto serie con un ioread GUC232A para realizar la automatización. Cuando finaliza el script, tengo que desconectar físicamente y volver a conectar el adaptador USB<->Serial para liberar el puerto USB del MacBook para una ejecución de automatización posterior. Como puede ver, esto no es viable.

He analizado la siguiente solución, pero no funciona de forma muy fiable y, francamente, no estoy muy interesado en descargar y volver a cargar controladores.

sudo kextunload IOUSBMassStorageClass.kext
sudo kextload /System/Library/Extensions/IOUSBMassStorageClass.kext

Podría usar un servidor de terminal de un solo puerto de Lantronix para acceder al servidor de terminal a través de SSH, que a su vez está conectado a través de RS232, pero esta solución no está sobre la mesa en este momento.

Cualquier sugerencia sobre un servidor de terminal USB a Ethernet, donde el puerto USB actuará como una consola para acceder al dispositivo de red, sería apreciada.

Respuestas (1)

Actualizar:

Hay dos formas de restablecer un USB:

  • Hardware (ver más abajo). Esto actúa como conectar y desconectar un dispositivo. Ideal para cuando se prueba un solo dispositivo que necesita ser reiniciado.
  • Software (¿ Cómo reiniciar el subsistema USB? ). Esto restablecerá completamente el bus USB. Genial para cuando el subsistema USB está colgado.

Vi un escenario similar resuelto al colocar un interruptor momentáneo en línea con la línea USB +5V en el cable USB (generalmente el conector rojo ). Cuando el ingeniero quería restablecer el dispositivo (simular quitarlo y luego volver a insertarlo), presionaba (lo mantenía presionado durante uno o dos segundos) el interruptor que cortaba la energía del dispositivo USB. Cuando lo liberó, la energía se restablecería volviendo a encender el dispositivo y la computadora lo recargaría.

ingrese la descripción de la imagen aquí

La ventaja que esto tenía sobre hacer algo en la Terminal era que solo afectaba al dispositivo en cuestión y no a todos los dispositivos en todo el bus USB.

Haciendo una búsqueda rápida, pude encontrar interruptores prefabricados que logran esto por menos de $10 USD

ingrese la descripción de la imagen aquí

Para una solución menos "torpe", puede obtener un concentrador USB con interruptores de alimentación individuales como el Sabrent 4 Port .

Gracias por la gran explicación y los enlaces. Como se mencionó en la publicación original, estoy buscando una solución que pueda automatizarse. Cualquier sugerencia sobre un servidor de terminal USB a Ethernet, donde el puerto USB actuará como una consola para acceder al dispositivo de red, sería apreciada.
Hace poco vi este producto de Digi que es USB sobre IP, pero si necesita restablecer el puerto automáticamente, ¿qué pasa con Arduino o Rasp? ¿Pi? Puede hacer el cambio que describí con una interfaz que se puede controlar a través del comando ssh. Solo un pensamiento.
Eso suena muy interesante. Pensé en hacer una escofina. Pi, pero solo quería ver si alguien sabía de una solución que ya estaba desarrollada y podría ser una solución "plug-n-play".
¡Parece que tu enlace Digi es el premio gordo! Lo intentaré... Muchas gracias @Allan
Espero que funcione para ti. ¡Buena suerte!
@pythonian: después de investigar un poco sobre otra pregunta similar, encontré una manera de restablecer el USB a través de la línea de comandos. Ver esta pregunta/respuesta