Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

kextunload(8) [mojave man page]

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

NAME
kextunload -- terminate driver I/O Kit driver instances and unload kernel extensions (kexts) SYNOPSIS
kextunload [options] [--] [kext ...] 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. kextunload must run with superuser privileges. If another loaded kext has a dependency on the 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. Note that long options are present as of Mac OS X 10.6 (Snow Leopard). The arguments and options are: kext Unload the loaded kext whose bundle identifier matches the CFBundleIdentifier of kext. All instances of IOService subclasses defined by the loaded kext and in the IOService plane of the I/O Registry are terminated; the kext is checked to make sure no instances of its libkern C++ classes remain; the kext's C++ static destructores and module stop routine are invoked; then the kext's executable and IOKitPersonalities are unloaded from the kernel. Failure at any stage prevents kext unload. -b identifier, -bundle-id identifier Unload executable and IOKitPersonalities (as described immediately above) for the kext whose CFBundleIdentifier is identifier. -c classname, -class classname Terminate all instances of class classname that are in the IOService plane of the I/O Registry, if possible, but do not unload the defining kext or its IOKitPersonalities. New load requests for devices that were driven by these terminated instances may result in the same class being instantiated at any time. -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. -m identifier Same as -b (remains for backward compatibility). -p, -personalities-only Terminate services and remove personalities only; do not unload kexts. -q, -quiet Quiet mode; print 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 kextunload prints only warnings and errors. 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 Prints information about unload stages. 3 Prints information about removal of personalities. 4 Prints information about module stop functions and C++ class destruction. 5 Prints detailed information internal operations such as bookkeping. 6 Identical to level 5 for kextunload. Unlike in other kext tools, the -verbose flag in kextunload applies to all kexts (that is, it turns on hexadecimal bit 0x8 by default). See kext_logging(8) for more information on verbose logging. DIAGNOSTICS
kextunload exits with a zero status upon success, or prints an error message and exits with a nonzero status upon failure. BUGS
Many single-letter options are inconsistent in meaning with (or directly contradictory to) the same letter options in other kext tools. SEE ALSO
kextcache(8), kextd(8), kextload(8), kextstat(8), kext_logging(8) Darwin March 6, 2009 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
Man Page