1 votos

Comando de terminal para restablecer los puertos USB-C en los Mac

¿Hay algún comando de terminal que restablezca el puerto USB sin tener que desenchufar y enchufar el dispositivo? A veces mi concentrador USB (HDMI, Ethernet, USB3) funciona mal, y la única solución es desenchufar/enchufar o reiniciar el ordenador.

En mi caso, mi monitor externo conectado por HDMI a veces no se detecta al despertar del sueño. Lo que ocurre es que mi Macbook Air M1 sigue pensando que el externo está conectado, pero el monitor está en negro. La pantalla integrada sigue comportándose como el monitor extendido. He probado a detectar las pantallas en las opciones de pantalla o en el escalado para intentar forzar al sistema a volver a detectar el monitor. La solución es siempre reiniciar o desconectar el concentrador USB.

Hay una aplicación llamada "uhubctl", pero no funcionó en el puerto para HDMI. Tuve problemas similares cuando usé Linux con concentradores USB. A veces Ethernet no se detectaba en el arranque, pero había un comando de terminal que reiniciaba el puerto que escribía en un script y lo tecleaba en caliente. Por lo tanto, estoy tratando de hacer lo mismo con mi Mac.

1voto

Jose Chavez Puntos 645

No, no existe ese comando de terminal en MacOS.

uhubctl se utiliza para ordenar a un concentrador USB externo que apague/encienda uno o más de sus puertos USB. No se puede utilizar para apagar/encender un puerto HDMI, ni para encender/apagar el propio concentrador.

Si pudieras recordar el comando de Terminal que usaste en el pasado, quizás sería posible encontrar un equivalente para MacOS - pero si no tienes idea de cuál podría ser, entonces es por supuesto difícil. El fabricante de tu dock puede haber añadido todo tipo de características propietarias, pero sin saber qué dock tienes, o los detalles del comando de Linux, no es posible darte más orientación aquí.

ACTUALIZACIÓN:

En los comentarios indicas que has utilizado este comando en Linux para este fin:

echo -n "0000:00:00" | tee /sys/bus/pci/drivers/ehci_hcd/unbind

Sin embargo, esto no apaga un puerto USB, sino que reinicia (apaga) todo el controlador USB2, es decir, mata todos los puertos USB2.

Probablemente se pueda hacer algo similar en MacOS aunque no sé lo práctico que sería. Según la descripción que has dado en tu pregunta, ahí no estás usando puertos USB2, sino que tienes puertos USB3. Así que ya no es el controlador EHCI, sino el controlador XHCI, el que potencialmente quieres resetear.

Podrías hacerlo utilizando comandos como:

kmutil unload -b com.apple.driver.AppleUSBXHCI
kmutil load -b com.apple.driver.AppleUSBXHCI

Dependiendo del tipo de hardware que tengas y de lo que tengas conectado, puede que haya otras extensiones del kernel que quieras descargar de antemano. Por ejemplo, podría ser com.apple.driver.usb.AppleUSBXHCIPCI . Echa un vistazo a la salida de la ejecución de kextstat para ver qué tiene en marcha antes de hacer nada.

0 votos

Gracias por la respuesta. En linux, he utilizado este comando echo -n "0000:00:00" | tee /sys/bus/pci/drivers/ehci_hcd/unbind

0 votos

Ese comando no reinicia un solo puerto - reinicia todo el controlador USB2 - así que es un poco diferente.

0 votos

He actualizado la respuesta con algo similar para MacOS.

0voto

ReduX Puntos 1

Puedo confirmar que la solución UHUBCTL funciona para Dell D6000 usb problemas. Macbook Air M1

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