Comment désinstaller et supprimer un fichier .kext sous Mac OS X?

32

J'ai acheté un lecteur de carte média X-in-1 et j'ai dû installer un pilote pour pouvoir lire les cartes SD-HC. Maintenant, parfois, lorsque je débranche le lecteur du port USB, je suis pris de panique.

Alors maintenant, j'aimerais supprimer cette extension du noyau, mais le programme d'installation du pilote ne me donne pas cette option.

Comment désinstaller une extension de noyau (.kext) de mon Mac OS X 10.5?

Marc
la source

Réponses:

32

Si vous ne connaissez pas le nom du fichier .kext, vous pouvez le trouver à l'aide d'un plug-in QuickLook tel que Suspicious Package si le programme d'installation est un package standard (.pkg ou .mpkg) qui s'ouvre dans Installer.app.

Si ce n'est pas un paquet, vous pouvez trouver le nom du kext dans la panique du noyau: Vous pouvez trouver cette information à ~/Library/Logs/panic.logou lorsque vous redémarrez votre ordinateur après la panique, il vous sera demandé si vous souhaitez signaler l'erreur à Apple. Appuyez sur Rapport, puis cliquez sur l'onglet central pour afficher les détails de l'incident.

Un exemple serait:

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

J'ai mis les lignes relatives à part. Plus précisément, vous recherchez la première ligne après "Modules chargeables dans le noyau ...". Dans ce cas, l'élément est com.apple.iokit.AppleYukon (qui correspond au pilote Ethernet / extension du noyau), de sorte que le nom du fichier est com.apple.iokit.AppleYukon.kext .

Avant de passer à l’étape suivante, assurez- vous à 100% que vous avez la bonne extension de noyau. Désactiver la mauvaise extension de noyau peut rendre la vie vraiment difficile - par exemple. Les périphériques USB ne fonctionneront pas jusqu'à ce qu'il soit réactivé.

Enfin pour le décharger:

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

Chealion
la source
Merci pour votre réponse détaillée et merci à tous les autres pour votre aide aussi.
Marc
3
kextunloading n'est pas permanent. Donc, 110% est un peu excessif. Vous pouvez simplement redémarrer ...
Alec Jacobson le
6

Vous devez utiliser la commande kextunload. Vous devrez peut-être utiliser sudo s'il était installé en tant que système kext (plutôt que utilisateur individuel).

Vous pouvez également supprimer directement le paquet kext et redémarrer.

Matthew Schinckel
la source
1
+1 kextunload a renvoyé une erreur, mais la suppression du fichier .kext a directement résolu mon problème, merci.
gary
2

Jetez un coup d'oeil au paquet suspect , c'est un plugin rapide qui vous permet de voir ce qu'un fichier .pkg (en supposant que c'est ce que l'installateur est) fera au système, il est généralement assez facile ensuite de supprimer ce qu'il a installé.

cobbal
la source
1

Commencez par essayer de décharger le fichier kext. Vous pouvez voir quels fichiers kext sont chargés avec Kext Wizard 3.7.11 dans l'onglet "Chargé":
sudo kextunload /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Ensuite, supprimez le dossier kext pour ne pas charger automatiquement au prochain démarrage:
sudo rm -r /System/Library/Extensions/NAME_OF_THE_KEXT_FILE.kext

Any NAME_OF_THE_KEXT_FILE.kextn'est pas un fichier, c'est un dossier.

Smeterlink
la source