Wie deaktiviere (und wieder aktiviere) ich meinen Thunderbolt-Port vom Terminal aus?

8

Ich habe dieses Problem mit meinem Matrox DualHead2Go ME und meinem 15-Zoll-MBP von Ende 2011 (mit 10.9.2). Wenn die Displays aus dem Ruhezustand aufwachen, wird der externe Monitor nicht wieder aktiviert.

Ich habe festgestellt, dass dies daran liegt, dass das Matrox-Gerät in den eigenen Schlafmodus wechselt und nicht durch das Wecksignal des Betriebssystems wieder geweckt wird.

Was funktioniert, ist das Herausziehen und Zurückstecken des Blitzkabels, mit dem mein Matrox verbunden ist. Dies ist jedoch nicht ideal, da ich mir Sorgen über Verschleiß mache, wenn ich das Kabel mehrmals täglich ein- oder ausstecke.

Gibt es eine Möglichkeit, mein Thunderbolt-Laufwerk vom Terminal aus ein- und auszuschalten, um ein ständiges Ein- und Ausstecken des Thunderbolt-Kabels zu vermeiden?

Dennis
quelle
1
Hinweis zur akzeptierten Antwort: Beide waren gut und hilfreich. Ich gab der Antwort die Prämie mit den genaueren Informationen über meinen Fall und akzeptierte die Antwort, die die einfachste (imho) Lösung bietet.
Dennis

Antworten:

2

Die Hackint0sh-Community hat großzügig einige Kext-Management-Tools erstellt, die jeder nutzen kann, auch diejenigen, die einen echten Macintosh besitzen und betreiben.

Mit diesen Tools können Sie experimentieren und schnell herausfinden, was genau für Sie funktioniert. Zumindest SRTools verfügt sogar über Verlaufs- und Rückgängig-Funktionen, mit denen Sie vermeiden können, dass Ihr Computer nicht mehr bootfähig ist. Dies ist möglich, wenn Sie mit OS X-Erweiterungen herumspielen. Sie sehen ... Userland ist Userland, und Kernel Space ist Kernel Space, und niemals werden sich die beiden treffen, außer auf der Wikipedia-Seite .

Die Idee hier und wofür diese Werkzeuge verwendet werden, ist zu experimentieren. Wählen Sie im Finder im Menü "Gehe zu" die Option "Gehe zu Ordner ..." oder geben Sie ⇪ shift- ⌘ command- ein gund geben Sie / System / Library / Extensions in das angezeigte Adressfeld ein. Suchen Sie im daraufhin angezeigten Fenster nach Erweiterungen mit "Thunderbolt" "im Dateinamen. Verwenden Sie eines der oben verlinkten Dienstprogramme, um Ihr Setup mit dem Entladen und Laden der verschiedenen Kexte zu testen und festzustellen, welches, falls es tatsächlich eines gibt, sich als dasjenige herausstellt, das Sie benötigen. Dann können Sie den Prozess optimieren später (wie zB mit einem sehr einfachen Bash - Skript , das war appified zum Entladen / Neuladen eines kext).

Eine großartige Ressource, um herauszufinden, wie Sie Ihr spezielles Setup anpassen können, ist das Durchsuchen der Entwicklerbibliothek. Natürlich ist Wikipedia häufig für die Entdeckung und manchmal für ein glänzendes Verständnis unerlässlich.

Chillin
quelle
3

Apple hat mehrere Schlüssel für die Thunderbolt-Verbindung:

AppleThunderboltDPAdapters.kext
AppleThunderboltEDMService.kext
AppleThunderboltIP.kext
AppleThunderboltNHI.kext
AppleThunderboltPCIAdapters.kext
AppleThunderboltUTDM.kext
IOThunderboltFamily.kext

Ich denke, die Befehle, nach denen Sie suchen, sind entweder:

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

oder

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

Ich habe einen Thunderbolt-Anschluss in meinem Mac Pro, aber derzeit keine Geräte. Ich kann dir also nicht genau sagen, welcher Text den Trick macht.

-- Weitere Informationen :

Thunderbolt ist im Grunde eine PCIe, die über die DisplayPort-Verbindung getunnelt wird. Ich kann mir vorstellen, dass es auf der ACPIPlatform- oder IOPCIFamily-Kernel-Erweiterung basiert. So oder so, wenn Sie diese entladen, würden Sie wahrscheinlich den Ast abschneiden, auf dem Sie sitzen.

Apple hat hier ein Dokument zum Erstellen von Thunderbolt-Treibern und zur Überprüfung, ob das Gerät noch online ist, veröffentlicht .

Außerdem heißt es: "Im Fall von PCI ist die E / A-PCI-Familie (IOPCIFamily) innerhalb des E / A-Kits für die Aufzählung der PCI-Brücke im Controller-Chip und aller nachgeschalteten Brücken oder Geräte verantwortlich."

Außerdem: "PCI-Gerätetreiber können feststellen, ob ein Thunderbolt-Gerät verbunden ist, indem sie rekursiv über Eltern in der E / A-Registrierung nach dem Schlüssel IOPCITunnelled (...) suchen."

Schauen Sie sich auch die Entwicklerbibliothek an .

Thunderbolt ist eine komplizierte Technologie, und Sie können entweder ein kleines Programm schreiben oder ein Startskript schreiben, das den Treiber überprüft und neu lädt, wenn das Gerät offline ist. Sie können dies manuell tun, anstatt den Netzstecker zu ziehen und erneut einzustecken.

rwenz3l
quelle
Ich nehme an, es ist der sudo kext[un]load /System/Library/Extensions/IOThunderboltFamily.kextBefehl, aber ich erhalte die folgende Fehlermeldung: (kernel) Can't remove kext com.apple.iokit.IOThunderboltFamily; services failed to terminate - 0xdc008018. Failed to unload com.apple.iokit.IOThunderboltFamily - (libkern/kext) kext is in use or retained (cannot unload).Irgendeine Idee, wie ich dies überschreiben würde?
Dennis
@ Tennis Ich bin auf das gleiche Problem gestoßen, als ich versucht habe, dies zu tun. Ich habe eine Erklärung zu stackexchange gefunden: stackoverflow.com/questions/13536970/… Und dann habe ich die von chillin aufgelisteten SRTools ausprobiert und das scheint für meinen TB-> Ethernet-Adapter zu funktionieren. Aber ich muss mindestens 3 kexts
rwenz3l entladen
2
@Dennis diese Kexts haben Abhängigkeiten: "Wenn ein anderer geladener Kext eine Abhängigkeit vom zu entladenden Kext hat, schlägt das Entladen fehl. Mit dem Tool kextstat (8) können Sie feststellen, ob ein Kext abhängig ist."
njboot
@ Tennis Versuchen Sie es nach dem Deaktivieren von SIP
Sayan