Comment charger et décharger des extensions du noyau dans Mac OS X

Les extensions du noyau, appelées kext en abrégé, sont des modules de code qui sont chargés directement dans l'espace du noyau de Mac OS X, capables de fonctionner à un niveau bas pour effectuer une variété de tâches. La plupart des kexts font partie du logiciel de base du système Mac OS X, généralement des pilotes de périphériques matériels, mais certaines applications tierces installent également un kext.

Parfois, les utilisateurs avancés de Mac et les administrateurs de systèmes peuvent avoir besoin de charger ou de décharger manuellement une extension du noyau. Comme les extensions de noyau sont souvent des composants critiques de MacOS, cela n'est approprié que pour les utilisateurs qui ont une raison spécifique de modifier le chargement ou le déchargement d'une extension de noyau dans l'espace de noyau de MacOS X. Une modification inappropriée du comportement d'une clé peut rendre le matériel Mac inutile ou inaccessible, et peut également empêcher Mac OS X de fonctionner du tout, donc n'essayez pas de modifier une extension du noyau sans une raison impérieuse et sans comprendre son utilisation.

Chargement d'une extension du noyau dans Mac OS X avec kextload

Pour charger une extension du noyau dans Mac OS X, vous devez utiliser l'utilitaire kextload en ligne de commande. La syntaxe est par ailleurs assez simple, nécessitant sudo pour l'accès administratif afin d'effectuer l'action :

sudo kextload /path/to/kext.kext

Vous pouvez également utiliser l'identificateur de paquet (qui sont souvent la cible des commandes par défaut) avec le drapeau -b :

sudo kextload -b com.apple.driver.ExampleBundle

Dans tous les cas, appuyez sur retour et avec la saisie du mot de passe de l'administrateur, l'extension du noyau sera chargée dans Mac OS X.

Vous pouvez confirmer qu'un noyau a été chargé en le listant avec kextstat, en utilisant grep pour rechercher le prénom comme tel :

$ kextstat |grep com.apple.driver.ExampleBundle

125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 8 7 5 4 2 1

Cela peut être utile après avoir installé manuellement une extension du noyau dans Mac OS X car, dans certaines situations, cela évite d'avoir à redémarrer le Mac.

Les versions modernes de Mac OS X permettent également de compléter le chargement des extensions du noyau avec la commande kextutil, qui est un peu plus complète pour des raisons de débogage, mais qui est par ailleurs identique pour le chargement d'un kext.

Déchargement d'une extension de noyau avec kextunload

Décharger une extension du noyau de Mac OS X est en gros la même chose que charger un kext, sauf que vous utiliserez l'utilitaire kextunload avec sudo comme suit :

sudo kextunload -b com.apple.driver.ExampleBundle

Ou en pointant directement sur le chemin des extensions du noyau :

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

Là encore, vous pouvez confirmer que l'extension du noyau a été déchargée en utilisant kextstat et grep, où elle ne devrait rien renvoyer.

Click to rate this post!
[Total: 0 Average: 0]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *