Mac Developer Library Developer


This manual page is for Mac OS X version 10.9

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

KEXTUNLOAD(8)             BSD System Manager's Manual            KEXTUNLOAD(8)

     kextunload -- terminate driver I/O Kit driver instances and unload kernel extensions (kexts)

     kextunload [options] [--] [kext ...]

     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.  kextunload must run with
     superuser privileges.

     If another loaded kext has a dependency on the 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.  Note that long options are
     present as of Mac OS X 10.6 (Snow Leopard).

     The arguments and options are:

     kext     Unload the loaded kext whose bundle identifier matches the CFBundleIdentifier of kext.  All
              instances of IOService subclasses defined by the loaded kext and in the IOService plane of the
              I/O Registry are terminated; the kext is checked to make sure no instances of its libkern C++
              classes remain; the kext's C++ static destructores and module stop routine are invoked; then
              the kext's executable and IOKitPersonalities are unloaded from the kernel.  Failure at any
              stage prevents kext unload.

     -b identifier, -bundle-id identifier
              Unload executable and IOKitPersonalities (as described immediately above) for the kext whose
              CFBundleIdentifier is identifier.

     -c classname, -class classname
              Terminate all instances of class classname that are in the IOService plane of the I/O Reg-istry, Registry,
              istry, if possible, but do not unload the defining kext or its IOKitPersonalities.  New load
              requests for devices that were driven by these terminated instances may result in the same
              class being instantiated at any time.

     -h, -help
              Print a help message describing each option flag and exit with a success result, regardless of
              any other options on the command line.

     -m identifier
              Same as -b (remains for backward compatibility).

     -p, -personalities-only
              Terminate services and remove personalities only; do not unload kexts.

     -q, -quiet
              Quiet mode; print no informational or error messages.

     -v [0-6 | 0x####], -verbose [0-6 | 0x####]
              Verbose mode; print information about program operation.  Higher levels of verbosity include
              all lower levels.  By default kextunload prints only warnings and errors.  You can specify a
              level from 0-6, or a hexadecimal log specification (as described in kext_logging(8)). The lev-els levels
              els of verbose output are:

              0            Print only errors (that is, suppress warnings); see also -quiet.

              1 (or none)  Print basic information about program operation.

              2            Prints information about unload stages.

              3            Prints information about removal of personalities.

              4            Prints information about module stop functions and C++ class destruction.

              5            Prints detailed information internal operations such as bookkeping.

              6            Identical to level 5 for kextunload.

              Unlike in other kext tools, the -verbose flag in kextunload applies to all kexts (that is, it
              turns on hexadecimal bit 0x8 by default).  See kext_logging(8) for more information on verbose

     kextunload exits with a zero status upon success, or prints an error message and exits with a nonzero
     status upon failure.

     Many single-letter options are inconsistent in meaning with (or directly contradictory to) the same
     letter options in other kext tools.

     kextcache(8), kextd(8), kextload(8), kextstat(8), kext_logging(8)

Darwin                           March 6, 2009                          Darwin

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.