¿Cómo deshabilito (y vuelvo a habilitar) mi puerto Thunderbolt desde el terminal?

8

He tenido este problema con mi Matrox DualHead2Go ME y mi MBP de 15 "de finales de 2011 (con 10.9.2). Cuando las pantallas se despiertan, el monitor externo no se reactiva.

He deducido que esto se debe a que la unidad Matrox entra en su propio modo de suspensión y no es reactivada por la señal de activación del sistema operativo.

Lo que funciona es desenchufar y volver a enchufar el cable del rayo con el que está conectado mi Matrox. Sin embargo, esto es menos que ideal, ya que me preocupa el desgaste por enchufar / desenchufar el cable varias veces al día.

¿Hay alguna forma de que pueda activar y desactivar mi unidad de rayo desde el terminal para evitar la constante conexión / desconexión del cable de rayo?

Dennis
fuente
1
Nota sobre la respuesta aceptada: ambos fueron buenos y útiles. Di la recompensa por la respuesta con la información más específica sobre mi caso y acepté la respuesta que proporciona la solución más fácil (en mi humilde opinión).
Dennis

Respuestas:

2

La comunidad Hackint0sh ha creado generosamente algunas herramientas de administración de kext para que todos las usen, incluso aquellas que poseen y operan un Macintosh genuino.

Puede usar estas herramientas para experimentar y descubrir rápidamente exactamente lo que funcionará para usted. SRTools, al menos, incluso tiene funciones de historial y deshacer para ayudarlo a evitar dejar su máquina en un estado que no se puede arrancar, lo cual es posible al jugar con las extensiones OS X. Usted ve ... userland es userland, y el espacio del kernel es el espacio del kernel, y los dos nunca se encontrarán, excepto en la página de wikipedia .

La idea aquí, y para qué se utilizan estas herramientas, es experimentar. En el Finder, bajo el menú Ir, seleccione "Ir a la carpeta ..." o de tipo ⇪ shift- ⌘ command- gy el tipo / System / Library / Extensiones en el campo de dirección que aparece, y en la ventana que se abre, busca las extensiones con "rayo "en el nombre del archivo. Use una de las utilidades vinculadas anteriores para probar su configuración descargando y cargando los diversos kexts, para ver cuál, si es que hay uno, se revelará como el que necesita. Luego, puede simplificar el proceso más tarde (como con un script bash muy simple que se ha aplicado para descargar / volver a cargar un kext).

Un gran recurso para descubrir cómo personalizar su configuración particular es navegar a través de la Biblioteca del desarrollador y, por supuesto, la wikipedia es a menudo esencial para el descubrimiento y, a veces, para la comprensión brillante.

chillin
fuente
3

Apple tiene varios kexts para Thunderbolt-Connection:

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

Creo que los comandos que estás buscando son:

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

o

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

Tengo un puerto Thunderbolt en mi Mac Pro, pero actualmente no tengo dispositivos. Así que no puedo decirte exactamente qué kext funciona.

-- Más información :

Thunderbolt es básicamente PCIe tunelizado a través de la conexión DisplayPort. Me imagino que se basa en la extensión del núcleo ACPIPlatform o IOPCIFamily. De cualquier manera, si descarga esos, probablemente cortaría la rama en la que está sentado.

Apple lanzó un documento sobre la creación de controladores Thunderbolt y cómo verificar si el dispositivo todavía está en línea aquí .

También dice: "En el caso de PCI, la familia de E / S PCI (IOPCIFamily) dentro del Kit de E / S es responsable de enumerar el puente PCI en el chip del controlador y cualquier puente o dispositivo aguas abajo".

Además: "los controladores de dispositivos PCI pueden determinar si un dispositivo Thunderbolt está conectado mediante la búsqueda recursiva en los padres en el Registro de E / S para la clave IOPCITunnelled (...)".

También eche un vistazo a la Biblioteca de desarrolladores .

Thunderbolt es una tecnología complicada y puede escribir un pequeño programa o puede escribir un script de inicio que verifique y vuelva a cargar el controlador si el dispositivo está fuera de línea. Puede hacerlo manualmente en lugar de desenchufarlo y volver a enchufarlo.

rwenz3l
fuente
Entiendo que es el sudo kext[un]load /System/Library/Extensions/IOThunderboltFamily.kextcomando, pero recibo el siguiente error: ¿ (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).Alguna idea de cómo haría para anular esto?
Dennis
@ Dennis Me encontré con el mismo problema al intentar hacer esto. Encontré una explicación sobre stackexchange: stackoverflow.com/questions/13536970/… Y luego probé las SRTools enumeradas por chillin y parece funcionar para mi TB-> Adaptador Ethernet. Pero tengo que descargar al menos 3 kexts
rwenz3l
2
@Dennis estos Kexts tienen dependencias: "Si otro kext cargado tiene una dependencia del kext que se está descargando, la descarga fallará. Puede determinar si un kext tiene dependientes utilizando la herramienta kextstat (8)".
njboot
@Dennis Pruébelo después de deshabilitar SIP
Sayan