KEXTD(8) BSD System Manager's Manual KEXTD(8)NAME
kextd -- loads kexts on demand from kernel or client processes
SYNOPSIS
kextd [-c] [-d] [-f] [-h] [-j] [-r directory] ... [-v [1-6]] [-x]
DESCRIPTION
kextd runs as a daemon process to handle requests from the kernel to load kernel extensions (kexts). For proper operation kextd must be
invoked as the superuser.
kextd should not be considered a formal interface in the Darwin OS or in Mac OS X. Neither its usage nor its presence should be relied on by
any software or software installer.
The options available are these:
-c Ignore any repository cache files and scan all kext bundles to gather information. If this option is not given, kextd will attempt
to use cache files and to create them if they are out of date or don't exist.
-d Debug mode; run in the foreground without forking as a daemon process.
-f Don't fork a child task when loading kexts. This option is present for debugging kextd and should never be used otherwise.
-h Print a help message describing each option flag.
-j Don't jettison kernel linker; load NDRVs in the kernel and exit, allowing the kernel to continue handling all load requests. This
option is used in startup scripts for install CDs, along with a properly built mkext cache, in order to speed startup from the CD.
-r directory
Use directory as a repository of known kexts for handling load requests. This is not recursive; only the directory's immediate con-
tents are scanned. By default kextd uses only the kexts in /System/Library/Extensions.
-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.
-x Run kextd in safe boot mode (indicating startup with the Shift key held down). Kexts that don't specify a proper value for the
OSBundleRequired info dictionary property will not be loaded. This option implies the use of the -c option.
DIAGNOSTICS
kextd normally never exits. If an error occurs it exits with a nonzero status. If invoked with the -j option it exits with a zero status
when no error occurs, or a nonzero status if an error does occur.
kextd logs all error and verbose messages to the system log, or to the console if the system log facility isn't available. When running in
debug mode all output is printed to the standard output and error streams.
SEE ALSO kextcache(8), kextload(8), kextstat(8), kextunload(8), syslogd(8)Darwin February 14, 2002 Darwin
Check Out this Related Man Page
KEXTLOAD(8) BSD System Manager's Manual KEXTLOAD(8)NAME
kextload -- load kernel extensions (kexts) into the kernel
SYNOPSIS
kextload [options] [--] [kext ...]
DESCRIPTION
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 property 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.
ARGUMENTS AND OPTIONS
kext The pathname of a kext bundle to load. The kext's plugins are available for dependency resolution. 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 CFBundleI-
dentifier 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.
EXAMPLES
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/MyApp.app/Contents/Resources
TabletDriver.kext
FILES
/System/Library/Extensions/ The standard system repository of kernel extensions
/Library/Extensions/ The standard repository of non Apple kernel extensions
DIAGNOSTICS
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 plugins, 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.
SEE ALSO kextcache(8), kextd(8), kextstat(8), kextunload(8), kextutil(8), kext_logging(8)Darwin November 14, 2012 Darwin