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.

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

     kextload -- load kernel extensions (kexts) into the kernel

     kextload [options] [--] [kext ...]

     The kextload program is used to explicitly load kernel extensions (kexts).  For most kexts, kextload
     must run as the superuser (root).  Kexts installed under /System/ with an OSBundleAllowUserLoad prop-erty property
     erty set to true may be loaded via kextload by non-root users.

     Notice: On Mac OS X 10.6 (Snow Leopard), the developer functionality of kextload has moved to the new
     program kextutil(8); all developer-related options have been removed from kextload and are no longer
     recognized.  On Mac OS X 10.6 (Snow Leopard), kextload simply forwards a load request to kextd(8),
     which performs all communication with the kernel.

     kextload is a formal interface for kext loading in all versions of Darwin OS and Mac OS X.  Software
     and installers can rely on its presence and invoke it in order to load kexts.  Note that long options
     are present as of Mac OS X 10.6 (Snow Leopard).

     Mac OS X 10.6 (Snow Leopard) introduces C functions for loading kexts:
     KextManagerLoadKextWithIdentifier() and KextManagerLoadKextWithURL(), which are described in Apple's
     developer documentation.

     kext     The pathname of a kext bundle to load.  The kext's plugins are available for dependency reso-lution. resolution.
              lution.  Kexts can also be specified by CFBundleIdentifier with the -bundle-id option.

     -b identifier, -bundle-id identifier
              Look up the kext whose CFBundleIdentifier is identifier within the set of known kexts and load
              it.  The kext of the highest CFBundleVersion with the given identifier is used; in the case of
              version ties, the last such kext specified on the command line is used.  See the -dependency
              and -repository options for more information.

     -d kext, -dependency kext
              Add kext and its plugins to the set of known kexts for resolving dependencies.  This is useful
              for adding a single kext from a directory while excluding the others.  See the -repository
              option for more information.

     -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.

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

     -r directory, -repository directory
              Use directory as a repository of kexts.  This adds to the set of known kexts for resolving
              dependencies or looking up by CFBundleIdentifier when using the -bundle-id option.  This is
              not recursive; only kexts directly within the directory, and their plugins, are scanned.  See
              also the -dependency option.

     -v [0-6 | 0x####], -verbose [0-6 | 0x####]
              Verbose mode; print information about program operation.  Higher levels of verbosity include
              all lower levels.  You can specify a level from 0-6, or a bitmask of flags as a hexadecimal
              number prefixed with 0x (as described in kext_logging(8)). Because kextload messages kextd(8),
              to perform the actual work of loading, the decimal levels 1-6 generally have little effect.
              You may wish to use kextutil(8) if you want verbose output about the kext loading operation.

     --       End of all options. Only kext names follow.

     To load a kext, run kextload and supply a kext bundle name; no options are required:

        kextload TabletDriver.kext

     Alternatively, you can use the -bundle-id (-b) option to specify a kext by its CFBundleIdentifier:

        kextload -bundle-id com.mycompany.driver.TabletDriver

     With no additional options kextload looks in the extensions directories (/System/Library/Extensions/
     and /Library/Extensions/) for a kext with the given CFBundleIdentifier.  Adding repository directories
     with the -repository option or individual kexts with the -dependency option expands the set of kexts
     that kextload looks among for dependency resolution and for loading by bundle identifier:

        kextload -repository /Applications/ \

     /System/Library/Extensions/  The standard system repository of kernel extensions
     /Library/Extensions/         The standard repository of non Apple kernel extensions

     kextload exits with a zero status if all kexts specified load successfully (or are already loaded).  If
     any kext fails to load, kextload prints an error message for that kext, continues trying to load any
     remaining kexts, then exits with a nonzero status.

     For a kext to be loadable, it must be valid, authenticated, and all dependencies of the kext must be
     available and loadable.  A valid kext has a well formed bundle, info dictionary, and an executable
     built for the running kernel's architecture.  An authentic kext's component files, not including plug-ins, plugins,
     ins, are owned by root:wheel, with permissions nonwritable by group and other.  If your kext fails to
     load, try using kextutil(8) to examine the kext for problems.

     kextcache(8), kextd(8), kextstat(8), kextunload(8), kextutil(8), kext_logging(8)

Darwin                         November 14, 2012                        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.