KEXTCACHE(8) System Manager's Manual KEXTCACHE(8)
NAME
kextcache - creates or updates kext repository caches and mkext caches
SYNOPSIS
kextcache [-a arch] [-e] [-F] [-k] [-l | -L] [-m mkext_filename]
[-n | -N] [-t] [-v [1-6]] [-z] [kext_or_directory] ...
DESCRIPTION
The kextcache program creates or updates kext caches, which are used to
speed up kext loading operations and to prepare kexts for inclusion in
such media as device ROM.
There are two kinds of kext cache. The first is the mkext cache, which
contains the info dictionaries and binary files for an arbitrary set of
kexts. Mkext caches are used during early system startup to load drivers
essential to mounting the root filesystem and providing basic hardware
services. They're also used to package drivers in device ROM. To create
an mkext cache use the -m option.
The second type of cache is the kext repository cache, which contains the
info dictionaries for all the kexts in a single repository directory,
including their plugins, in a file with a .kextcache extension. A repos-
itory cache speeds the startup of tools such as kextload(8) and kextd(8).
A repository cache must exist alongside its repository directory for the
kext tools to find and use it. The kext tools normally build or update
repository caches as needed. To create or update a kext cache use the -k
option.
kextcache accepts these arguments and options:
kext_or_directory
A kext bundle or a repository directory containing kexts to add
to the cache. When using the -m option only, any number may be
specified. When using the -k option, only a single directory
may be named.
-a arch Include in an mkext archive only kexts whose executable files
contain code for the given arch, stripping the binaries before
inclusion.
-e This option is a convenience to update the mkext cache for the
/System/Library/Extensions folder.
-F Fork a child process and exit immediately. This allows a cache
update during system startup to continue without delaying
startup.
-k Create or update the kext cache for any repository directories
specified.
-l Specifies that for directory arguments, only extensions required
for local disk boot be included in an mkext cache. Kexts
explicitly named on the command line are included uncondition-
ally; to apply this restriction to all kexts, use the -L option.
May be combined with the -n or -N option to archive both local-
and network-root extensions.
-L Specifies that only extensions required for local disk boot be
included in an mkext cache. To apply this restriction only to
repository directories, use the -l option. May be combined with
the -n or -N option to archive both local- and network-root
extensions.
-m mkext_filename
The name of the mkext cache file to create.
-n Specifies that for directory arguments, only extensions required
for network boot be included in an mkext cache. Kexts explic-
itly named on the command line are included unconditionally; to
apply this restriction to all kexts, use the -N option. May be
combined with the -l or -L option to archive both local- and
network-root extensions.
-N Specifies that only extensions required for network boot be
included in an mkext cache. To apply this restriction only to
repository directories, use the -n option. May be combined with
the -l or -L option to archive both local- and network-root
extensions.
-t Perform all possible tests on the named kext(s) and indicate
whether the kext is loadable (and therefore eligible for inclu-
sion in the cache), or if not, what problems it has. Note that
tests are performed in three stages, validation, authentication,
and dependency resolution; a failure at any stage can make tests
in further stages impossible. Thus, a kext with validation
failures may have unreported authentication problems or missing
dependencies.
-v [1-6]
Verbose mode; print information about the kext scanning and
loading process. Higher levels of verbosity include all lower
levels. With this program only verbose levels 1-3 are useful.
The levels of verbose output are these:
1 prints basic kext scanning and archiving information
2 prints basic compression information
3 prints detailed kext scanning information; also uncom-
presses mkext cache entries to make sure they do so without
error
4 prints basic information on every kext encountered
5 prints detailed information on every kext encountered
6 prints detailed load information (not applicable)
A kext can also specify verbose printing for just itself using
the OSBundleDebugLevel top-level info dictionary property. Its
values are 1 and 2, for basic and detailed information, respec-
tively.
-z Don't authenticate kexts before loading. This option is for
convenience during development.
-- End of all options. Only kext or directory names follow.
DIAGNOSTICS
kextcache exits with a zero status upon success. Upon failure, it prints
an error message and exits with a nonzero status. When the -F option is
used, however, kextcache exits with a nonzero status only if the fork(2)
operation fails.
SEE ALSO
kextd(8), kextload(8), kextunload(8)
BUGS
Upon encountering a kext with validation errors, kextcache typically
prints an error message about that kext, even if it isn't involved in the
cacheing request.
Darwin April 8, 2002 Darwin