2009-07-15 08:38:42 +0000 2009-07-15 08:38:42 +0000
32
32

Como desinstalar e remover um .kext no Mac OS X?

Comprei um leitor de cartões multimédia X-in-1 e tive de instalar um driver para poder ler cartões SD-HC. Agora, por vezes, quando desconecto o leitor da porta USB, fico em pânico com o kernel.

Então agora gostaria de remover esta extensão do kernel mas o instalador do driver não me dá esta opção.

Como posso desinstalar uma extensão do kernel (.kext) do meu Mac OS X 10.5?

Respostas (5)

32
32
32
2009-07-15 15:45:29 +0000

Se não souber o nome do ficheiro .kext pode descobri-lo usando um plugin QuickLook como Pacote Suspeito se o instalador for um pacote padrão (.pkg ou .mpkg) que abre em Installer.app.

Se não for um pacote pode descobrir o nome do kext a partir do pânico do kernel: Pode encontrar esta informação em ~/Library/Logs/panic.log ou quando reiniciar o seu computador após o pânico ele perguntará se deseja reportar o erro à Apple. Prima Report e depois clique no separador central para ver os detalhes da falha.

Um exemplo seria:

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

Eu separei as linhas relativas. Especificamente, está à procura da primeira linha após “Kernel loadable modules…”. Neste caso, o item é com.apple.iokit.AppleYukon (que é a extensão do driver/kernel Ethernet) pelo que o nome do ficheiro seria com.apple.iokit.AppleYukon.kext.

Antes de passar ao próximo passo seja 110% de certeza* que tem a extensão de kernel correcta. Desactivar a extensão errada do kernel pode tornar a vida really difícil - por exemplo, os dispositivos USB não funcionarão até serem reactivados.

Finalmente para o descarregar:

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

6
6
6
2009-07-15 10:48:19 +0000

É necessário usar o comando kextunload. Poderá ser necessário utilizar o sudo se este tiver sido instalado como kext de todo o Sistema (e não como utilizador individual).

Também pode apagar directamente o pacote kext, e reiniciar.

4
4
4
2009-07-15 10:00:14 +0000

Isto é para hackintoshes, mas tenho a certeza que a linha de comando também funciona para macs normais… http://ihackintosh.blogspot.com/2008/10/how-to-remove-kext-file-in-mac-osx.html

Tenha cuidado com o que escreve :)

2
2
2
2009-07-15 08:44:16 +0000

dê uma vista de olhos em Pacote Suspeito , é um plugin de rápida visualização que lhe permite ver o que um ficheiro .pkg (assumindo que é isso que o instalador é) fará ao sistema, normalmente é então bastante fácil de remover o que instalou.

1
1
1
2016-08-12 20:35:23 +0000

Primeiro, tente descarregar o ficheiro kext. Pode ver que ficheiros kext são carregados com Kext Wizard 3.7.11 no separador “Loaded”:
sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Depois, remova a pasta kext para que não carregue automaticamente no próximo arranque:
sudo rm -r /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Qualquer NAME_OF_THE_KEXT_FILE.kext não é um ficheiro, é uma pasta.