¿Cómo deshabilitar puertos USB individuales por script?

Estoy buscando un script que me permita desactivar un puerto USB específico en mi Mac mini. Solo tendría un propósito si funciona en tiempo real y no requiere un reinicio. Encontré scripts para varias distribuciones de Linux que parecían hacer algo similar; sin embargo, la mayoría requería un reinicio.

Tengo iluminación ambiental detrás de mi monitor que funciona con USB y no se apaga cuando el sistema duerme. Entonces mi oficina está constantemente iluminada, sería bueno si pudiera escribir un script que deshabilitara ese puerto USB específico.

¿Cómo deshabilitar puertos USB individuales por script?

Respuestas (3)

¿Has visto este hilo y el código aquí ? Tal vez shell podría usarse para cambiar "manualmente" el ID del dispositivo o el puerto a algo extraño que no funcionará, en un evento específico, luego lo cambia a lo que se supone que debe ser más tarde.

He mirado el hilo recomendado pero el código especificado ya no está disponible en el sitio de Apple. ¿Podría pegarlo en su respuesta si todavía tiene una copia?
Encontré el caché de Google del código y edité mi comentario anterior. Espero que ayude, no sé si esto funciona o no, solo era una idea.
Gracias, solo estoy interesado, ya que estoy rastreando preguntas aleatorias y, después de leer la respuesta a continuación, estaba ansioso por probar su solución yo mismo.

Otra forma de atacar el problema podría ser agregar un concentrador USB al sistema y conectar la iluminación ambiental a él.

Algunos concentradores USB permiten habilitar/deshabilitar puertos individuales desde el software; se denomina "conmutación de alimentación combinada". De esa forma puedes controlar la iluminación desde un guión. Sin embargo, deberá seleccionar un concentrador USB compatible.

Usé este método para controlar la energía en Linux, pero el mismo método también podría usarse en Mac OS X. El concentrador USB era muy barato.

Puede encontrar el código fuente para controlar la alimentación del concentrador externo aquí:

http://www.advistatech.com/software/hub-ctrl-20060120.c

No sé si se construye con libusb en Mac OS X, pero podría.

¿No es "Conmutación de alimentación por puerto" cuando puede controlar la alimentación de puerto individual, y "Conmutación de alimentación agrupada" cuando solo puede encender/apagar todo a la vez?

Desafortunadamente, lo que está preguntando no es posible con ninguna API OS X o gancho AppleScript. Esto es algo controlado por la capa de hardware del sistema operativo e implica mucho más trabajo de lo que vale. Si bien existen secuencias de comandos similares para Linux, debe tener en cuenta que, aunque OS X y Linux son primos lejanos, OS X no fue creado para un control tan detallado sobre sus componentes como lo fue Linux. Lamentablemente, las únicas opciones que tiene en este caso son desconectar el dispositivo o desactivar completamente la interfaz USB. Este último, por supuesto, no es factible para usted, por lo que, lamentablemente, no hay solución para este problema. Perdón. :(

¡Buena suerte y feliz sueño!

¿Puede citar una razón o documentación para "OS X no fue creado para un control tan detallado sobre sus componentes como lo fue Linux" Seguramente tanto Linux como OSX son sistemas operativos similares a Unix y tienen el mismo control sobre las interfaces
Creo que la alimentación USB se controla por separado del software. Eliminé temporalmente todo el IOUSB*.kext, y aunque el trackpad y el teclado integrados estaban muertos, mi Kindle aún se cargaba. (El iPhone no lo haría, pero eso puede ser un vudú de Apple). Por cierto, no elimine todos los archivos IOUSB*.kext a menos que tenga una buena estrategia de recuperación (este macbook en particular tiene varias particiones de arranque, por lo que será fácil de arreglar).