Desconectar/conectar dispositivo USB desde la línea de comandos

Supongamos que tengo un teléfono Galaxy conectado a través de USB a mi mac

Enumerar dispositivos USB es fácil y puedo ver mi teléfono conectado:

ioreg -p IOUSB -l -w 0

¿Es posible, dado que tengo la salida ioreg, desconectar un dispositivo específico (sin desconectarlo FÍSICAMENTE)?

Para aclarar, por "desconectar", ¿quiere decir que desea desmontarlo del sistema de archivos o hacerlo invisible para su computadora? Además, si es lo primero, ¿le gustaría poder volver a conectarlo sin necesidad de desenchufarlo y volver a enchufarlo?
@timothymh independientemente de lo que pregunte, me gusta saber cómo eliminar un dispositivo de diskutil y volver a agregarlo. El comando Desmontar no elimina un dispositivo. Haga clic derecho en el ícono del dispositivo y seleccione expulsar es diferente, PUEDE eliminar un dispositivo del diskutil, y la única forma de volver a agregarlo es volver a conectarlo físicamente.
Dentro de un contexto diferente, hay una pregunta similar aquí (por el momento, sin respuesta): apple.stackexchange.com/questions/423571/…

Respuestas (1)

Resulta que hay una manera de hacer esto no solo en macOS, sino en todos los sistemas *NIX gracias al repositorio mvp/uhubctl en GitHub. El programa se llama uhubctl y le permite alternar y apagar y encender puertos individuales para concentradores USB compatibles.

Como implica la descripción, deberá saber a qué puerto USB está conectado el dispositivo en cuestión (o recorrer todo el concentrador si está seguro de que no causará problemas con otros periféricos), y aun así recomiendo usar diskutil eject diskX(o sudo umount /dev/sdXpara Linux y umount diskXBSD) antes de apagar y encender el puerto para asegurarse de que el dispositivo se desmonte correctamente.

La página de inicio de uhubctl está aquí (puede obtener el código fuente usando git clone https://github.com/mvp/uhubctl).

Deberá compilarlo desde la fuente de una forma u otra, ya sea con makeo mediante brew. La forma más fácil de instalarlo de una sola vez con brew :

brew tap mvp/uhubctl https://github.com/mvp/uhubctl  
brew install uhubctl

Probado y puede confirmar que funciona con concentradores USB de Apple y de terceros en macOS 10.13-10.15, y también en macOS 11 Big Sur (incluidas las Mac M1).

¿Cómo hacer que funcione con puertos USB-C de portátiles? Solo me muestra puertos en concentradores USB conectados. Gracias.
Sí, la documentación de uhubctl establece claramente que solo se aplica a "concentradores USB inteligentes": "uhubctl es una utilidad para controlar la alimentación USB por puerto en concentradores USB inteligentes".