Как удалить и удалить .kext в Mac OS X?

32

Я купил устройство для чтения карт памяти X-in-1 и должен был установить драйвер, чтобы можно было читать карты SD-HC. Теперь иногда, когда я отключаю ридер от USB-порта, у меня возникает паника ядра.

Так что теперь я хотел бы удалить это расширение ядра, но установщик драйвера не дает мне эту опцию.

Как я могу удалить расширение ядра (.kext) из моего Mac OS X 10.5?

Марк
источник

Ответы:

32

Если вы не знаете имя файла .kext, вы можете выяснить его с помощью плагина QuickLook, такого как Suspicious Package, если установщик представляет собой стандартный пакет (.pkg или .mpkg), который открывается в Installer.app.

Если это не пакет, вы можете узнать имя kext по панике ядра: вы можете найти эту информацию на ~/Library/Logs/panic.logили когда вы перезагрузите компьютер после паники, он спросит, хотите ли вы сообщить об ошибке в Apple. Нажмите «Отчет», а затем щелкните центральную вкладку, чтобы просмотреть подробности сбоя.

Примером может быть:

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

Я установил относительные линии отдельно. В частности, вы ищете первую строку после «Загружаемые модули ядра ...». В этом случае элемент является com.apple.iokit.AppleYukon (который является драйвером Ethernet / расширением ядра), поэтому имя файла будет com.apple.iokit.AppleYukon.kext .

Прежде чем перейти к следующему шагу, убедитесь, что у вас есть правильное расширение ядра на 110% . Отключение неправильного расширения ядра может сделать жизнь очень трудной - например. USB-устройства не будут работать до тех пор, пока они не будут повторно включены.

Наконец, чтобы разгрузить его:

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

Chealion
источник
Спасибо за ваш подробный ответ и спасибо всем остальным за вашу помощь тоже.
Марк
3
kextunloadИнг не является постоянным. Таким образом, 110% немного чрезмерно. Вы можете просто перезапустить ...
Алек Якобсон
6

Вам нужно использовать команду kextunload. Возможно, вам придется использовать sudo, если он был установлен как общесистемный (а не как отдельный пользователь) kext.

Вы также можете удалить пакет kext напрямую и перезагрузиться.

Мэтью Шинкель
источник
1
+1. kextunload вернул ошибку, но удаление .kext напрямую решило мою проблему, спасибо.
Гари
2

взгляните на Suspicious Package , это плагин для быстрого просмотра, который позволяет вам увидеть, что файл .pkg (при условии, что это и есть установщик) будет делать с системой, поэтому обычно довольно легко удалить то, что он установил.

cobbal
источник
1

Сначала попробуйте выгрузить файл kext. Вы можете увидеть, какие kext-файлы загружаются с помощью Kext Wizard 3.7.11 на вкладке «Loaded»:
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это не файл, это папка.

Smeterlink
источник