Bagaimana cara menghapus dan menghapus .kext di Mac OS X?

32

Saya membeli pembaca kartu media X-in-1 dan harus menginstal driver agar dapat membaca kartu SD-HC. Sekarang kadang-kadang ketika saya mencabut pembaca dari port USB saya mendapatkan panik kernel.

Jadi sekarang saya ingin menghapus ekstensi kernel ini tetapi installer driver tidak memberikan saya opsi ini.

Bagaimana saya bisa menghapus instalan ekstensi kernel (.kext) dari Mac OS X 10.5 saya?

Marc
sumber

Jawaban:

31

Jika Anda tidak tahu nama file .kext Anda dapat mengetahuinya dengan menggunakan plugin QuickLook seperti Paket Mencurigakan jika installer adalah paket standar (.pkg atau .mpkg) yang terbuka di Installer.app.

Jika ini bukan paket, Anda dapat mengetahui nama kext dari panik kernel: Anda dapat menemukan informasi ini di ~/Library/Logs/panic.log atau ketika Anda me-restart komputer Anda setelah panik itu akan menanyakan apakah Anda ingin melaporkan kesalahan ke Apple. Tekan Laporan lalu klik tab tengah untuk melihat detail kerusakan.

Contohnya adalah:

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

Saya telah menetapkan garis relatif terpisah. Khususnya Anda sedang mencari baris pertama setelah "Kernel loadable modules ...". Dalam hal ini itemnya adalah com.apple.iokit.AppleYukon (yang merupakan ekstensi driver / kernel Ethernet) sehingga nama file akan com.apple.iokit.AppleYukon.kext .

Sebelum Anda melanjutkan ke langkah selanjutnya menjadi 110% yakin Anda memiliki ekstensi kernel yang tepat. Menonaktifkan ekstensi kernel yang salah dapat membuat hidup sangat keras - misalnya. Perangkat USB tidak akan berfungsi sampai diaktifkan kembali.

Akhirnya untuk membongkar:

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

Chealion
sumber
Terima kasih atas jawaban terinci Anda dan terima kasih semua orang atas bantuan Anda juga.
Marc
3
kextunload tidak permanen. Begitu 110% sedikit berlebihan. Anda bisa memulai kembali ...
Alec Jacobson
6

Anda perlu menggunakan perintah kextunload. Anda mungkin perlu menggunakan sudo jika itu diinstal sebagai kext seluruh sistem (bukan pengguna individu).

Anda juga dapat menghapus bundel kext secara langsung, dan reboot.

Matthew Schinckel
sumber
+1. kextunload mengembalikan kesalahan, tetapi menghapus .kext langsung menyelesaikan masalah saya, terima kasih.
gary
2

lihat Paket Mencurigakan , ini adalah plugin tampilan cepat yang memungkinkan Anda untuk melihat apa yang akan dilakukan oleh file .pkg (dengan asumsi penginstalnya) pada sistem, biasanya cukup mudah untuk menghapus apa yang diinstal.

cobbal
sumber
1

Pertama, coba bongkar file kext. Anda dapat melihat file kext apa yang dimuat Kext Wizard 3.7.11 di tab "Dimuat":
sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Kemudian, hapus folder kext agar tidak dimuat secara otomatis pada boot berikutnya:
sudo rm -r /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Apa saja NAME_OF_THE_KEXT_FILE.kext bukan file, ini folder.

Smeterlink
sumber