Unix/Linux Go Back    


OpenDarwin 7.2.1 - man page for kextcache (opendarwin section 8)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


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

NAME
     kextcache -- creates or updates kext caches

SYNOPSIS
     kextcache [-a arch] [-c kernel_cache_filename] [-e] [-F] [-h] [-k] [-K kernel_filename]
	       [-l | -L] [-m mkext_filename] [-n | -N] [-r] [-s | -S] [-t] [-v [1-6]] [-z]
	       [kext_or_directory] ...

DESCRIPTION
     The kextcache program creates or updates kext caches, which are used to speed up kext load-
     ing operations and to prepare kexts for inclusion in such media as device ROM.

     There are three 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 repository 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.

     The third type of cache is the kernel cache, which contains the kernel code, linked kext
     code, and info dictionaries for an arbitrary set of kexts. Having the kernel code and kexts
     already linked speeds the startup of tools such as kextload(8) and kextd(8).  To create or
     update a kernel cache use the -c 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.  If multiple -a options are
	      used, a fat file will be created containing multiple mkext archives that are
	      thinned for each of the specified architectures.

     -c kernel_cache_filename
	      The name of the kernel cache file to create. If none is specified, a cache file is
	      created in the /System/Library/Caches/com.apple.kernelcaches/ folder.

     -e       This option is a convenience to update the mkext cache for the /Sys-
	      tem/Library/Extensions folder.

     -F       Fork a child process and exit immediately.  This allows a cache update during sys-
	      tem startup to continue without delaying startup.

     -h       Extended usage statement

     -k       Create or update the kext cache for any repository directories specified.

     -K kernel_filename
	      The name of the kernel file to use as the base of a kernel cache file (default is
	      /mach_kernel).

     -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 unconditionally; to apply this restriction to all kexts, use the -L
	      option.  May be combined with the -n, -N, -s, or -S options to archive network-root
	      and safe boot extensions as well.

     -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, -N, -s, or -S options to archive network-root
	      and safe boot extensions as well.

     -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 explicitly 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, -L, -s, or -S options to archive local-root
	      and safe boot extensions as well.

     -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, -L, -s, or -S options to archive local-root
	      and safe boot extensions as well.

     -r       Include all kexts that have been loaded by the machine running this command during
	      this boot. This include kexts loaded and later unloaded.

     -s       Specifies that for directory arguments, only extensions required for safe boot be
	      included in an mkext cache.  Kexts explicitly named on the command line are
	      included unconditionally; to apply this restriction to all kexts, use the -S
	      option.  May be combined with the -l, -L, -n, or -N options to archive local- and
	      network-root extensions as well.

     -S       Specifies that only extensions required for safe boot be included in an mkext
	      cache.  To apply this restriction only to repository directories, use the -s
	      option.  May be combined with the -l, -L, -n, or -N options to archive local- and
	      network-root extensions as well.

     -t       Perform all possible tests on the named kext(s) and indicate whether the kext is
	      loadable (and therefore eligible for inclusion in the cache), or if not, what prob-
	      lems it has.  Note that tests are performed in three stages, validation, authenti-
	      cation, 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 lev-
	      els 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 uncompresses 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 OSBundleDebu-
	      gLevel top-level info dictionary property.  Its values are 1 and 2, for basic and
	      detailed information, respectively.

     -z       Don't authenticate kexts.  This option is for convenience in building archive and
	      cache files.  Mkext archives and kext repository caches must have proper ownership
	      (root:wheel) and permissions (0644) in order to be used by the system.

     --       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), kextstat(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
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:36 PM.