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

如何在 Mac OS X 上卸载和删除 .kext?

我买了一个X-in-1媒体读卡器,为了能够读取SD-HC卡,我必须安装一个驱动程序。现在有时当我把读卡器从USB端口拔出时,我得到一个内核恐慌。

所以现在我想删除这个内核扩展,但是驱动安装程序没有给我这个选项。

我如何从我的Mac OS X 10.5中卸载内核扩展(.kext)?

答案 (5)

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

如果你不知道.kext文件的名字,你可以通过使用像 可疑包这样的QuickLook插件来找出它,如果安装程序是一个标准包(.pkg或.mpkg),在Installer.app中打开。

如果不是包,你可以从内核恐慌中找出kext的名字:你可以在~/Library/Logs/panic.log找到这个信息,或者当你在恐慌后重启电脑时,它会问你是否要向苹果报告这个错误。按 “报告",然后点击中心选项卡,查看崩溃的详细信息。

一个例子是。

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

我已经把相对的行分开了。具体来说,你要找的是 "Kernel loadable modules… "之后的第一行。在本例中,这个项目是com.apple.iokit.AppleYukon(这是以太网驱动/内核扩展),所以文件名应该是com.apple.iokit.AppleYukon.kext

在你继续下一步之前,请110%确定你的内核扩展名是正确的。禁用错误的内核扩展会使生活变得非常困难 - 例如,USB设备将无法工作,直到它被重新启用。

最后卸载它。

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

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

您需要使用 kextunload 命令。如果它是作为一个系统范围的(而不是单个用户)kext安装的,你可能需要使用sudo。

你也可以直接删除kext bundle,然后重新启动。

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

这是针对黑客软件的,但我很确定这个命令行也适用于普通的mac……。 http://ihackintosh.blogspot.com/2008/10/how-to-remove-kext-file-in-mac-osx.html

小心你输入的内容:)

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

看一下可疑包, 它是一个快速查看插件,让你看到一个.pkg (假设安装程序是什么)文件会对系统做什么, 它通常然后相当容易删除它安装的东西.

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

首先,试着卸载kext文件。你可以在 “加载 "选项卡中看到用 Kext Wizard 3.7.11 加载了哪些kext文件。
sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

然后,删除kext文件夹,这样下次启动时就不会自动加载了。
sudo rm -r /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

任何NAME_OF_THE_KEXT_FILE.kext都不是一个文件,而是一个文件夹。