¿Cómo desinstalo y elimino un .kext en Mac OS X?

32

Compré un lector de tarjetas multimedia X-in-1 y tuve que instalar un controlador para poder leer las tarjetas SD-HC. Ahora, a veces, cuando desconecto el lector del puerto USB, aparece un kernel panic.

Así que ahora me gustaría eliminar esta extensión del kernel, pero el instalador del controlador no me da esta opción.

¿Cómo puedo desinstalar una extensión del núcleo (.kext) de mi Mac OS X 10.5?

Bagazo
fuente

Respuestas:

32

Si no conoce el nombre del archivo .kext, puede averiguarlo utilizando un complemento QuickLook como Paquete sospechoso si el instalador es un paquete estándar (.pkg o .mpkg) que se abre en Installer.app.

Si no es un paquete, puede encontrar el nombre del kext en el kernel panic: puede encontrar esta información en ~/Library/Logs/panic.logo cuando reinicie su computadora después del pánico, le preguntará si desea informar el error a Apple. Presione Informe y luego haga clic en la pestaña central para ver los detalles del bloqueo.

Un ejemplo sería:

panic(cpu 0 caller 0x0035C330): freeing free mbuf
Backtrace, Format - Frame : Return Address (4 potential args on stack) 
0x2545bc08 : 0x128d08 (0x3c9afc 0x2545bc2c 0x131de5 0x0) 
0x2545bc48 : 0x35c330 (0x3ea258 0x3ae65000 0x23935100 0x493e0) 
0x2545bc88 : 0x7424a4 (0x36f19300 0x493e0 0x0 0x134b11) 
0x2545bca8 : 0x9f1458 (0x23935000 0x36f19300 0x0 0x0) 
0x2545bcd8 : 0x9ef6d6 (0x23935000 0x36f19300 0x0 0x0) 
0x2545bcf8 : 0x9fa0ce (0x23935000 0x36f15f00 0x1000000 0x0) 
0x2545bea8 : 0x9f375a (0x23935000 0x3a14880 0x40000000 0x34fb8b) 
0x2545bf08 : 0x398f79 (0x23935000 0x3a14880 0x1 0x13becf) 
0x2545bf58 : 0x39814b (0x3a14880 0x4121d48 0x4121d8c 0x0) 
0x2545bf88 : 0x397e81 (0x3a184c0 0x5d3734 0x452084 0x40431f4) 
0x2545bfc8 : 0x19a77c (0x3a184c0 0x0 0x19d0b5 0x696543c) Backtrace terminated-invalid frame pointer 0x0  

Kernel loadable modules in backtrace (with dependencies):
com.apple.iokit.AppleYukon(1.0.9b3)@0x9ed000  

dependency: com.apple.iokit.IONetworkingFamily(1.5.1)@0x73b000
dependency: com.apple.iokit.IOPCIFamily(2.2)@0x60a000
dependency: com.apple.iokit.IOACPIFamily(1.2.0)@0x6b6000
com.apple.iokit.IONetworkingFamily(1.5.1)@0x73b000

Kernel version:
Darwin Kernel Version 8.8.2: Thu Sep 28 20:43:26 PDT 2006; root:xnu-792.14.14.obj~1/RELEASE_I386

He separado las líneas relativas. Específicamente, está buscando la primera línea después de "Módulos cargables del núcleo ...". En este caso, el elemento es com.apple.iokit.AppleYukon (que es el controlador Ethernet / extensión del núcleo), por lo que el nombre del archivo sería com.apple.iokit.AppleYukon.kext .

Antes de continuar con el siguiente paso, asegúrese 110% de que tiene la extensión correcta del núcleo. Deshabilitar la extensión incorrecta del núcleo puede hacer la vida realmente difícil, por ejemplo. Los dispositivos USB no funcionarán hasta que se vuelva a habilitar.

Finalmente para descargarlo:

sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Chealion
fuente
Gracias por su respuesta detallada y gracias a todos los demás por su ayuda también.
Marc
3
kextunloading no es permanente. Entonces 110% es un poco excesivo. Puede reiniciar ...
Alec Jacobson
6

Necesita usar el comando kextunload. Es posible que necesite usar sudo si se instaló como un kext en todo el sistema (en lugar de un usuario individual).

También puede eliminar el paquete kext directamente y reiniciar.

Matthew Schinckel
fuente
1
+1. kextunload devolvió un error, pero eliminar el .kext resolvió mi problema directamente, gracias.
Gary
2

eche un vistazo al Paquete sospechoso , es un complemento de búsqueda rápida que le permite ver qué hará un archivo .pkg (suponiendo que eso sea el instalador) al sistema, por lo general, es bastante fácil eliminar lo que instaló.

cobbal
fuente
1

Primero, intente descargar el archivo kext. Puede ver qué archivos kext se cargan con Kext Wizard 3.7.11 en la pestaña "Cargado":
sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Luego, elimine la carpeta kext para que no se cargue automáticamente en el próximo arranque:
sudo rm -r /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Cualquiera NAME_OF_THE_KEXT_FILE.kextno es un archivo, es una carpeta.

Smeterlink
fuente