KEXTUNLOAD(8)

NAME
kextunload - terminates objects and unloads code associated with a kernel extension

SYNOPSIS
kextunload [-b bundle_id] ... [-c class_name] ... [-h] [-p] [-v [1-6]] [ extension ] ...

DESCRIPTION
The kextunload program is used to terminate and unregister I/O Kit objects associated with a kernel extension (kext) and to unload the code and personalities for that kext. In order to unload a kext kextunload must be invoked as the superuser.

If another loaded kext has a dependency on a kext being unloaded, the unload will fail. You can determine whether a kext has dependents using the kextstat(8) tool.

kextunload is a formal interface for unloading kexts in the Darwin OS and in Mac OS X. Software and installers can rely on its presence and invoke it in order to unload kexts.

The arguments and options available are these:

extension
    The pathname of a kext to unload. All instances of classes associated with the kext are terminated, and personalities and code are unloaded from the kernel.

-b bundle_id
    Unload code and personalities for the kext whose CFBundleIdentifier is bundle_id.

-c class_name
    Terminate all instances of class class_name if possible but do not unload code or personalities. New load requests for devices driven by these instances may result in the same class being instantiated at any time.

-h  Print a help message describing each option flag.

-m bundle_id
    Same as -m (remains for backward compatibility).

-p  Don't remove personalities when unloading (unnecessary when using the -c option). New load requests for devices driven by the kext may result in the same kext being loaded at any time.

-v [1-6]
    Verbose mode; print information about the kext scanning and loading process (note that this is generally not useful when unloading). See the man page for kextload(8) to see what each verbose level prints.

DIAGNOSTICS
kextunload exits with a zero status upon success, or prints an error message and exits with a nonzero status upon failure. An error when multiple kexts are being unloaded causes kextunload to exit immediately, so that some kexts may remain unloaded even if they could have been unloaded without error.

BUGS
The results of unload requests as given by the kernel don't allow for determining the reason for a failure, such as that the kext wasn't loaded or that another kext has a dependency on it. You can check these conditions using kextstat(8).

SEE ALSO
kextd(8), kextload(8), kextstat(8)