Wie deaktiviere ich einzelne USB-Anschlüsse per Skript?

7

Ich suche nach einem Skript, mit dem ich einen bestimmten USB-Anschluss auf meinem Mac mini deaktivieren kann. Es würde nur dann einen Zweck erfüllen, wenn es in Echtzeit funktioniert und keinen Neustart erfordert. Ich habe Skripte für verschiedene Linux-Distributionen gefunden, die etwas Ähnliches zu tun schienen - die meisten erforderten jedoch einen Neustart.

Ich habe Umgebungslicht hinter meinem Monitor, der über USB mit Strom versorgt wird und sich nicht ausschaltet, wenn das System in den Ruhezustand wechselt. Mein Büro ist also ständig beleuchtet. Es wäre schön, wenn ich ein Skript schreiben könnte, das diesen bestimmten USB-Anschluss deaktiviert.

Wie deaktiviere ich einzelne USB-Anschlüsse per Skript?

cstrat
quelle

Antworten:

2

Hast du diesen Thread und den Code hier gesehen ? Möglicherweise kann die Shell verwendet werden, um die Geräte-ID oder den Port "manuell" in etwas Seltsames umzubenennen, das bei einem bestimmten Ereignis nicht funktioniert, und es dann in das umzubenennen, was später sein soll.

Elliott
quelle
1
Hey, ich habe mir den empfohlenen Thread angesehen, aber der angegebene Code ist auf der Apple-Website nicht mehr verfügbar. Könnten Sie es bitte in Ihre Antwort einfügen, wenn Sie noch eine Kopie haben?
Deesbek
Ich habe den Google-Cache des Codes gefunden und meinen Kommentar oben bearbeitet. Ich hoffe, es hilft - ich weiß nicht, ob das funktioniert oder nicht, es war nur eine Idee.
Elliott
Vielen Dank, ich bin nur interessiert, da ich zufällige Fragen durchforste und nach dem Lesen der folgenden Antwort daran interessiert war, Ihre Lösung selbst auszuprobieren.
Deesbek
0

Eine andere Möglichkeit, das Problem anzugreifen, besteht darin, dem System einen USB-Hub hinzuzufügen und die Umgebungsbeleuchtung daran anzuschließen.

Einige USB-Hubs unterstützen das Aktivieren / Deaktivieren einzelner Ports in der Software - dies wird als "Ganged Power Switching" bezeichnet. Auf diese Weise können Sie die Beleuchtung über ein Skript steuern. Sie müssen jedoch einen unterstützten USB-Hub auswählen.

Ich habe diese Methode zur Steuerung der Stromversorgung unter Linux verwendet - aber dieselbe Methode konnte auch unter Mac OS X verwendet werden. Der USB-Hub war sehr billig.

Den Quellcode zur Steuerung der externen Hub-Stromversorgung finden Sie hier:

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

Ich weiß nicht, ob es mit libusb unter Mac OS X erstellt wird, aber es könnte sein.

jksoegaard
quelle
Ist nicht "Pro Port Power Switching", wenn Sie die Stromversorgung einzelner Ports steuern können, und "Ganged Power Switching", wenn Sie nur alle gleichzeitig ein- und ausschalten können.
Joakim
-1

Leider ist das, was Sie fragen, mit keiner OS X-API oder AppleScript-Hook möglich. Dies wird von der Hardwareschicht des Betriebssystems gesteuert und erfordert weit mehr Arbeit als es wert ist. Obwohl es für Linux ähnliche Skripte gibt, müssen Sie bedenken, dass OS X und Linux zwar entfernte Cousins ​​sind, OS X jedoch nicht für eine so fein abgestimmte Kontrolle über seine Komponenten wie Linux entwickelt wurde. Leider haben Sie in diesem Fall nur die Möglichkeit, das Gerät vom Stromnetz zu trennen oder die USB-Schnittstelle vollständig zu deaktivieren. Letzteres ist für Sie natürlich nicht machbar, daher gibt es leider keine Lösung für dieses Problem. Es tut uns leid. :(

Viel Glück und viel Spaß beim Schlafen!

Corey Edwards
quelle
2
Können Sie einen Grund oder eine Dokumentation für "OS X wurde nicht für eine so fein abgestimmte Kontrolle über seine Komponenten wie Linux entwickelt" anführen? Sicherlich sind sowohl Linux als auch OSX Unix-ähnliche Betriebssysteme und haben die gleiche Kontrolle über Schnittstellen
user151019
Ich denke, die USB-Stromversorgung wird separat von der Software gesteuert. Ich habe vorübergehend alle IOUSB * .kext entfernt, und während das eingebaute Trackpad und die Tastatur tot waren, wurde mein Kindle immer noch aufgeladen. (Das iPhone würde nicht; aber das könnte ein Apple Voodoo sein). Entfernen Sie übrigens nicht alle IOUSB * .kext-Dateien, es sei denn, Sie haben eine gute Wiederherstellungsstrategie (dieses spezielle MacBook verfügt über mehrere Startpartitionen, sodass es leicht zu reparieren ist).
Kent