Jak odinstalować i usunąć plik .kext w systemie Mac OS X?

32

Kupiłem czytnik kart pamięci X-in-1 i musiałem zainstalować sterownik, aby móc czytać karty SD-HC. Czasami, kiedy odłączam czytnik od portu USB, wpadam w panikę jądra.

Chciałbym teraz usunąć to rozszerzenie jądra, ale instalator sterownika nie daje mi tej opcji.

Jak mogę odinstalować rozszerzenie jądra (.kext) z mojego Mac OS X 10.5?

Marc
źródło

Odpowiedzi:

32

Jeśli nie znasz nazwy pliku .kext, możesz to ustalić za pomocą wtyczki QuickLook, takiej jak Suspicious Package, jeśli instalator jest standardowym pakietem (.pkg lub .mpkg), który otwiera się w Installer.app.

Jeśli nie jest to pakiet, możesz znaleźć nazwę kext z paniki jądra: Możesz znaleźć te informacje przy ~/Library/Logs/panic.loglub po ponownym uruchomieniu komputera po panice, zapyta, czy chcesz zgłosić błąd do Apple. Naciśnij Zgłoś, a następnie kliknij środkową kartę, aby wyświetlić szczegóły awarii.

Przykładem może być:

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

Oddzieliłem względne linie od siebie. W szczególności szukasz pierwszej linii po „modułach jądra ładowalnych ...”. W tym przypadku elementem jest com.apple.iokit.AppleYukon (który jest sterownikiem / rozszerzeniem jądra Ethernet), więc nazwa pliku to com.apple.iokit.AppleYukon.kext .

Zanim przejdziesz do następnego kroku, upewnij się , że masz 110% właściwego rozszerzenia jądra. Wyłączenie złego rozszerzenie jądra może uczynić życie naprawdę ciężko - np. Urządzenia USB nie będą działać, dopóki nie zostaną ponownie włączone.

Wreszcie, aby go rozładować:

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

Chealion
źródło
Dziękujemy za szczegółową odpowiedź i wszystkim innym za pomoc.
Marc
3
kextunloading nie jest trwały. Więc 110% to trochę za dużo. Możesz po prostu zrestartować ...
Alec Jacobson,
6

Musisz użyć polecenia kextunload. Może być konieczne użycie sudo, jeśli został on zainstalowany jako systemowy (a nie pojedynczy użytkownik) kext.

Możesz także usunąć pakiet kext bezpośrednio i uruchomić ponownie.

Matthew Schinckel
źródło
1
+1. kextunload zwrócił błąd, ale usunięcie .kext bezpośrednio rozwiązało mój problem, dzięki.
Gary
2

spójrz na Suspicious Package , jest to szybka wtyczka, która pozwala zobaczyć, co zrobi plik .pkg (zakładając, że taki jest instalator) w systemie, zwykle jest to dość łatwe do usunięcia, co zainstalował.

cobbal
źródło
1

Najpierw spróbuj zwolnić plik kext. Możesz zobaczyć, jakie pliki kext są ładowane za pomocą Kext Wizard 3.7.11 w zakładce „Loaded”:
sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Następnie usuń folder kext, aby nie ładował się automatycznie przy następnym uruchomieniu:
sudo rm -r /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Dowolny NAME_OF_THE_KEXT_FILE.kextnie jest plikiem, to folder.

Smeterlink
źródło