Jak mogę wyłączyć (i ponownie włączyć) mój port Thunderbolt z terminala?

8

Mam ten problem z moim Matrox DualHead2Go ME i moim 15-calowym MBP pod koniec 2011 roku (z systemem 10.9.2). Gdy wyświetlacze budzą się ze snu, monitor zewnętrzny nie budzi się ponownie.

Zrozumiałem, że dzieje się tak, ponieważ jednostka Matrox przechodzi we własny tryb uśpienia i nie jest ponownie budzona przez sygnał wybudzania systemu operacyjnego.

To, co działa, to odłączanie i ponowne podłączanie kabla piorunowego, z którym jest podłączony mój Matrox. Jest to jednak mniej niż idealne, ponieważ martwię się o zużycie spowodowane podłączaniem / odłączaniem kabla kilka razy dziennie.

Czy jest jakiś sposób, aby włączyć lub wyłączyć napęd piorunów z terminala, aby uniknąć ciągłego podłączania / odłączania kabla piorunowego?

Dennis
źródło
1
Uwaga na zaakceptowaną odpowiedź: obie były dobre i pomocne. Dałem nagrodę za odpowiedź z bardziej szczegółowymi informacjami na temat mojej sprawy i zaakceptowałem odpowiedź, która zapewnia najłatwiejsze (imho) rozwiązanie.
Dennis

Odpowiedzi:

2

Społeczność Hackint0sh hojnie stworzyła pewne narzędzia do zarządzania kextem, z których każdy może korzystać, nawet te, które są właścicielami prawdziwego Macintosha.

Możesz użyć tych narzędzi do eksperymentowania i szybkiego odkrycia, co będzie dla Ciebie odpowiednie. SRTools ma przynajmniej funkcje historii i cofania, które pomagają uniknąć pozostawiania komputera w stanie niemożliwym do rozruchu, co jest możliwe, gdy masz problemy z rozszerzeniami OS X. Widzisz ... userland to userland, a przestrzeń jądra to przestrzeń jądra i nigdy twain się nie spotkają, z wyjątkiem strony Wikipedii .

Pomysł tutaj i do czego służą te narzędzia, to eksperymentowanie. W Finderze w menu Idź wybierz „Idź do folderu ...” lub wpisz ⇪ shift- ⌘ command- gi wpisz / System / Library / Extensions w polu adresu, które się pojawi, aw oknie, które zostanie otwarte, wyszukaj rozszerzenia z „piorunem” ”w nazwie pliku. Użyj jednego z powyższych połączonych narzędzi, aby przetestować konfigurację z rozładowywaniem i ładowaniem różnych tekstów, aby zobaczyć, które z nich, jeśli rzeczywiście istnieje, ujawni się jako potrzebne. Następnie możesz usprawnić proces później (na przykład za pomocą bardzo prostego skryptu bash , który został zatwierdzony do rozładowywania / przeładowywania kext).

Świetnym źródłem informacji o tym, jak dostosować konkretną konfigurację, jest przeglądanie Biblioteki programistów , a wikipedia jest oczywiście często niezbędna do odkrycia, a czasem i do zrozumienia.

wyluzowana
źródło
3

Apple ma kilka tekstów do połączenia Thunderbolt:

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

Myślę, że polecenia, których szukasz, to:

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

lub

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

Mam port Thunderbolt w komputerze Mac Pro, ale obecnie nie mam żadnych urządzeń. Więc nie mogę ci dokładnie powiedzieć, który kext ma sens.

-- Dalsza informacja :

Thunderbolt jest w zasadzie PCIe tunelowany przez złącze DisplayPort. Mogę sobie wyobrazić, że jest oparty na rozszerzeniu jądra rodziny ACPIPlatform lub IOPCIF. Tak czy inaczej, jeśli rozładujesz te, prawdopodobnie odetniesz gałąź, na której siedzisz.

Apple wydało dokument o tworzeniu sterowników Thunderbolt i jak sprawdzić, czy urządzenie jest nadal w Internecie tutaj .

Mówi także: „W przypadku PCI rodzina I / O PCI (rodzina IOPCIF) w zestawie I / O jest odpowiedzialna za wyliczenie mostka PCI w układzie kontrolera oraz wszelkich mostków lub urządzeń w dalszej części”.

Ponadto: „Sterowniki urządzeń PCI mogą ustalić, czy urządzenie Thunderbolt jest podłączone, poprzez rekurencyjne przeszukiwanie rodziców w rejestrze I / O klucza IOPCITunnelled (...)”.

Zajrzyj również do Biblioteki programistów .

Thunderbolt jest skomplikowaną technologią i możesz albo napisać mały program, albo napisać skrypt uruchamiania, który sprawdza i ponownie ładuje sterownik, jeśli urządzenie jest w trybie offline. Możesz to zrobić ręcznie zamiast odłączać i ponownie podłączać.

rwenz3l
źródło
Rozumiem, że to sudo kext[un]load /System/Library/Extensions/IOThunderboltFamily.kextpolecenie, ale pojawia się następujący błąd: Czy (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).masz pomysł, jak to zmienić?
Dennis
@Dennis Natknąłem się na ten sam problem, próbując to zrobić. Znalazłem wyjaśnienie na stackexchange : stackoverflow.com/questions/13536970/... A potem wypróbowałem SRTools wymienione przez chillin i wydaje się, że działa na moim TB-> Ethernet Adapter .. Ale muszę rozładować co najmniej 3 kexts
rwenz3l
2
@Dennis te Kext mają zależności: „Jeśli inny załadowany kext ma zależność od rozładowanego kext, rozładowanie zakończy się niepowodzeniem. Możesz określić, czy kext ma zależności za pomocą narzędzia kextstat (8).”
njboot
@Dennis Wypróbuj po wyłączeniu SIP
Sayan