So laden und entfernen Sie Kernel-Erweiterungen in OS X
Kernel-Erweiterungen, kurz "kext" genannt, sind Code-Module, die direkt in den Kernel-Bereich von OS X geladen werden und auf einer niedrigen Ebene ausgeführt werden können, um eine Vielzahl von Aufgaben auszuführen. Die meisten Texte sind Teil der zentralen Mac OS X-Systemsoftware, normalerweise Hardware-Gerätetreiber, aber einige Apps von Drittanbietern installieren auch einen Kext.
Manchmal müssen fortgeschrittene Mac-Benutzer und Systemadministratoren möglicherweise eine Kernel-Erweiterung manuell laden oder entfernen. Da Kernel-Erweiterungen häufig kritische Komponenten von OS X sind, ist dies nur für Benutzer geeignet, die aus einem bestimmten Grund modifizieren, ob ein Kext in den OS X-Kernel-Bereich geladen oder entladen wird. Eine unangemessene Änderung des Verhaltens von kext kann Mac-Hardware nutzlos oder unzugänglich machen und kann auch verhindern, dass OS X überhaupt funktioniert. Versuchen Sie daher nicht, irgendeine Kernel-Erweiterung ohne zwingenden Grund und Verständnis zu ändern.
Laden einer Kernel-Erweiterung in OS X mit Kextload
Um eine Kernel-Erweiterung in OS X zu laden, müssen Sie das Befehlszeilenprogramm kextload verwenden. Die Syntax ist ansonsten einfach genug und erfordert sudo für den administrativen Zugriff, um die Aktion auszuführen:
sudo kextload /path/to/kext.kext
Sie können die Bundle-ID (die häufig die Ziele von Standardbefehlen sind) auch mit dem Flag -b verwenden:
sudo kextload -b com.apple.driver.ExampleBundle
So oder so, drücken Sie Return und mit der Eingabe des Administrator-Passworts wird die Kernel-Erweiterung in OS X geladen.
Sie können bestätigen, dass ein Kernel geladen wurde, indem Sie ihn mit kextstat auflisten, indem Sie grep verwenden, um nach dem gegebenen Namen zu suchen:
$ kextstat |grep com.apple.driver.ExampleBundle
125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 8 7 5 4 2 1
Dies kann hilfreich sein, wenn Sie eine Kernel-Erweiterung manuell in OS X installieren, da dies in manchen Situationen das Neustarten des Macs verhindert.
Moderne Versionen von Mac OS X erlauben auch das Laden der Kernel-Erweiterung mit dem Befehl kextutil, der aus Debugging-Gründen etwas umfangreicher ist, aber beim Laden eines Kext anders ist.
Entladen einer Kernel-Erweiterung mit kextunload
Das Entladen einer Kernel-Erweiterung von OS X ist im Prinzip genau dasselbe wie das Laden eines Kext, außer dass Sie das Dienstprogramm kextunload mit sudo wie folgt verwenden:
sudo kextunload -b com.apple.driver.ExampleBundle
Oder indem Sie direkt auf den Kernel-Erweiterungspfad zeigen:
sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext
Auch hier können Sie bestätigen, dass die Kernel-Erweiterung entladen wurde, indem Sie kextstat und grep verwenden, wo nichts zurückgegeben werden soll.