KEXTUNLOAD(8) BSD System Manager's Manual KEXTUNLOAD(8)NAME
kextunload -- terminates objects and unloads code associated with a kernel extension
SYNOPSIS
kextunload [-b bundle_id] ... [-c class_name] ... [-h] [-p] [ -v [0-6] | -q ] [ extension ] ...
DESCRIPTION
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. In order to unload a kext kextunload must be invoked as the superuser.
If another loaded kext has a dependency on a 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.
The arguments and options available are these:
extension
The pathname of a kext to unload. All instances of classes associated with the kext are terminated, and personalities and code are
unloaded from the kernel.
-b bundle_id
Unload code and personalities for the kext whose CFBundleIdentifier is bundle_id.
-c class_name
Terminate all instances of class class_name if possible but do not unload code or personalities. New load requests for devices
driven by these instances may result in the same class being instantiated at any time.
-h Print a help message describing each option flag.
-m bundle_id
Same as -m (remains for backward compatibility).
-p Don't remove personalities when unloading (unnecessary when using the -c option). New load requests for devices driven by the kext
may result in the same kext being loaded at any time.
-q Quiet mode; print no informational or error messages. This option excludes -v.
-v [0-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. This option excludes - q .
DIAGNOSTICS
kextunload exits with a zero status upon success, or prints an error message and exits with a nonzero status upon failure. An error when
multiple kexts are being unloaded causes kextunload to exit immediately, so that some kexts may remain unloaded even if they could have been
unloaded without error.
BUGS
The results of unload requests as given by the kernel don't allow for determining the reason for a failure, such as that the kext wasn't
loaded or that another kext has a dependency on it. You can check these conditions using kextstat(8).
SEE ALSO kextcache(8), kextd(8), kextload(8), kextstat(8)Darwin April 17, 2002 Darwin
Check Out this Related Man Page
KEXTD(8) BSD System Manager's Manual KEXTD(8)NAME
kextd -- kernel extension server
SYNOPSIS
kextd [options]
DESCRIPTION
kextd is the kernel extension server. It runs as a standalone launchd(8) daemon to handle requests from the kernel and from other user-space
processes to load kernel extensions (kexts) or provide information about them.
OPTIONS
These options are available:
-c, -no-caches
Ignore any repository cache files and scan all kext bundles to gather information. If this option is not given, kextd attempts to
use cache files and to create them if they are out of date or don't exist.
-d, -debug
Debug mode; print messages to stdout/stderr rather than the sysem log.
-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; log 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 kextd
logs at verbose level 1. You can specify a level from 0-6, or a hexadecimal log specification (as described in kext_logging(8)).
The levels 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 Print information about program operation progress, client requests, and files created.
3 Print information about individual kexts with an OSBundleEnableKextLogging property set to true.
4 Print information about spawned child processes.
5 Print debug-level information.
6 Identical to level 5 but for all kexts read by the program.
See kext_logging(8) for more information on verbose logging.
-x, -safe-boot
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. As of Mac OS X 10.5 (Leopard), kextd determines from the kernel
whether the system has started in safe boot mode, so this flag is no longer necessary (but may be used for testing). In safe boot
mode, kextd does not use caches (that is, this option implies the use of the -no-caches option).
RESETTING KEXTD
On Mac OS X 10.3 and later, it is possible to reset kextd without terminating and restarting it, by sending it a HUP signal. This causes
kextd to rescan the Extensions folder, rebuild all its caches, and send all I/O Kit drivers' personalities to the kernel for a new round of
driver matching. As of Mac OS X 10.5 (Leopard), kextd watches /System/Library/Extensions/ and automatically invokes kextcache(8) to rebuild
kext caches when its modification time changes. It also sends new drivers' personalities to the kernel at this time.
Installers that add new drivers can signal kextd in these ways instead of requiring the computer to be restarted. Note that if a hardware
device has a driver attached when this is done, a newly-installed driver will not match on it. For more information, see ``Apple Developer
Technical Q&A QA1319: Installing an I/O Kit Kext Without Rebooting''.
FILES
/System/Library/Extensions/ The standard system repository of kernel extensions.
/System/Library/Caches/com.apple.kext.caches/
Contains all kext caches for a Mac OS X 10.6 (Snow Leopard) system: prelinked kernel, mkext, and system kext
info caches.
/usr/standalone/bootcaches.plist
Describes specific kext cache files for a Mac OS X volume.
/System/Library/LaunchDaemons/com.apple.kextd.plist
The launchd.plist(5) controlling the kextd job.
DIAGNOSTICS
kextd normally never exits. If an error occurs it exits with a nonzero status.
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), kextutil(8), kextstat(8), kextunload(8), kextfind(8), syslogd(8), launchd.plist(5)Darwin March 6, 2009 Darwin