Como desabilito (e reabilito) minha porta Thunderbolt do terminal?

8

Estou enfrentando esse problema com o Matrox DualHead2Go ME e com o meu MBP de 15 "no final de 2011 (executando 10.9.2). Quando os monitores acordam do modo de suspensão, o monitor externo não é reativado.

Entendi que isso ocorre porque a unidade Matrox entra em seu próprio modo de suspensão e não é reativada pelo sinal de ativação do sistema operacional.

O que funciona é desconectar e reconectar o cabo de raio ao qual meu Matrox está conectado. Isso é menos do que o ideal, no entanto, pois me preocupo com o desgaste causado pela conexão / desconexão do cabo várias vezes ao dia.

Existe alguma maneira de ligar e desligar minha unidade de raio do terminal para evitar o constante ligar / desligar do cabo do raio?

Dennis
fonte
1
Nota sobre a resposta aceita: ambas foram boas e úteis. Dei a recompensa à resposta com as informações mais específicas sobre o meu caso e aceitei a resposta que fornece a solução mais fácil (imho).
Dennis

Respostas:

2

A Comunidade Hackint0sh criou generosamente algumas ferramentas de gerenciamento de kext para que todos possam usar, mesmo aquelas que possuem e operam um Macintosh genuíno.

Você pode usar essas ferramentas para experimentar e descobrir rapidamente exatamente o que funcionará para você. O SRTools, pelo menos, ainda possui funções de histórico e desfazer para ajudar a evitar deixar sua máquina em um estado não inicializável, o que é possível ao mexer nas extensões do OS X. Você vê ... userland é userland, e o espaço do kernel é o espaço do kernel, e nunca os dois se encontrarão, exceto na página da wikipedia .

A idéia aqui, e para que essas ferramentas são usadas, é experimentar. No Localizador, no menu Ir, selecione "Ir para a pasta ..." ou digite ⇪ shift- ⌘ command- ge digite / Sistema / Biblioteca / Extensões no campo de endereço que aparece e, na janela que é aberta, procure por extensões com "raio "no nome do arquivo. Use um dos utilitários vinculados acima para testar sua configuração, descarregando e carregando os vários kexts, para ver qual deles, se houver algum, se revelará o que você precisa. Em seguida, você pode otimizar o processo posteriormente (como um script bash muito simples, que foi solicitado a descarregar / recarregar um kext).

Um ótimo recurso para descobrir como personalizar sua configuração específica é navegar pela Biblioteca do desenvolvedor e, é claro, a wikipedia é muitas vezes essencial para a descoberta e, às vezes, para a compreensão brilhante.

relaxando
fonte
3

A Apple possui vários kexts para a conexão Thunderbolt:

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

Eu acho que os comandos que você está procurando são:

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

ou

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

Eu tenho uma porta Thunderbolt no meu Mac Pro, mas atualmente não tenho dispositivos. Portanto, não posso dizer exatamente qual kext faz o truque.

-- Outras informações :

O Thunderbolt é basicamente um túnel PCIe através da conexão DisplayPort. Eu posso imaginar que ele é baseado na extensão do kernel ACPIPlatform ou IOPCIFamily. De qualquer maneira, se você descarregar aqueles, provavelmente cortaria o galho em que está sentado.

A Apple lançou um documento sobre a criação de drivers Thunderbolt e como você verifica se o dispositivo ainda está online aqui .

Ele também diz: "No caso do PCI, a família de E / S PCI (IOPCIFamily) no Kit de E / S é responsável por enumerar a ponte PCI no chip do controlador e quaisquer pontes ou dispositivos a jusante".

Além disso: "Os drivers de dispositivo PCI podem determinar se um dispositivo Thunderbolt está conectado pesquisando recursivamente nos pais no registro de E / S a chave IOPCITnão selecionada (...)."

Dê uma olhada também na Biblioteca do desenvolvedor .

Thunderbolt é uma tecnologia complicada e você pode escrever um pequeno programa ou escrever um script de inicialização que verifica e recarrega o driver se o dispositivo estiver offline. Você poderia fazê-lo manualmente, em vez de desconectá-lo e conectá-lo novamente.

rwenz3l
fonte
Acho que é o sudo kext[un]load /System/Library/Extensions/IOThunderboltFamily.kextcomando, mas estou recebendo o seguinte erro: (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).Alguma idéia de como eu iria sobrepor isso?
Dennis
@ Dennis Me deparei com o mesmo problema ao tentar fazer isso. Encontrei uma explicação sobre stackexchange: stackoverflow.com/questions/13536970/… E então tentei o SRTools listado por chillin e que parece funcionar no meu adaptador TB-> Ethernet .. Mas tenho que descarregar pelo menos 3 kexts
rwenz3l
2
@Dennis, esses Kexts têm dependências: "Se outro kext carregado tiver uma dependência do kext sendo descarregado, o descarregamento falhará. Você pode determinar se um kext tem dependentes usando a ferramenta kextstat (8)."
Njboot 27/05
@Dennis Experimente depois de desativar o SIP #
Sayan