1.Dd March 6, 2009 2.Os Darwin 3.Dt KEXTD 8 4.Sh NAME 5.Nm kextd 6.Nd kernel extension server 7.Sh SYNOPSIS 8.Nm 9.Op Ar options 10.Sh DESCRIPTION 11.Nm 12is the kernel extension server. 13It runs as a standalone 14.Xr launchd 8 daemon to handle requests from the kernel 15and from other user-space processes 16to load kernel extensions (kexts) or provide information about them. 17.Sh OPTIONS 18These options are available: 19.Bl -tag -width -indent 20.It Fl c , Fl no-caches 21Ignore any repository cache files and scan all kext bundles 22to gather information. 23If this option is not given, 24.Nm 25attempts to use cache files and to create them 26if they are out of date or don't exist. 27.It Fl d , Fl debug 28Debug mode; print messages to stdout/stderr rather than 29the sysem log. 30.It Fl h , Fl help 31Print a help message describing each option flag and exit with a success result, 32regardless of any other options on the command line. 33.It Fl q , Fl quiet 34Quiet mode; log no informational or error messages. 35.It Fl v Li [ 0-6 | 0x#### Ns Li ] , Fl verbose Li [ 0-6 | 0x#### Ns Li ] 36Verbose mode; print information about program operation. 37Higher levels of verbosity include all lower levels. 38By default 39.Nm 40logs at verbose level 1. 41You can specify a level from 0-6, 42or a hexadecimal log specification 43(as described in 44.Xr kext_logging 8 Ns No ). 45The levels of verbose output are: 46.Bl -tag -width "1 (or none)" 47.It 0 48Print only errors (that is, suppress warnings); see also 49.Fl quiet . 50.It 1 (or none) 51Print basic information about program operation. 52.It 2 53Print information about program operation progress, client requests, and files created. 54.It 3 55Print information about individual kexts with an 56OSBundleEnableKextLogging property set to true. 57.It 4 58Print information about spawned child processes. 59.It 5 60Print debug-level information. 61.It 6 62Identical to level 5 but for all kexts read by the program. 63.El 64.Pp 65See 66.Xr kext_logging 8 67for more information on verbose logging. 68.It Fl x , Fl safe-boot 69Run 70.Nm 71in safe boot mode (indicating startup with the Shift key held down). 72Kexts that don't specify a proper value for the OSBundleRequired 73info dictionary property will not be loaded. 74As of Mac OS X 10.5 (Leopard), 75.Nm 76determines from the kernel 77whether the system has started in safe boot mode, 78so this flag is no longer necessary (but may be used for testing). 79In safe boot mode, 80.Nm 81does not use caches 82(that is, this option implies the use of the 83.Fl no-caches 84option). 85.El 86.Sh RESETTING KEXTD 87On Mac OS X 10.3 and later, it is possible to reset 88.Nm 89without terminating and restarting it, by sending it a HUP signal. This 90causes 91.Nm 92to rescan the Extensions folder, rebuild all its caches, 93and send all I/O Kit drivers' personalities to the kernel 94for a new round of driver matching. 95As of Mac OS X 10.5 (Leopard), 96.Nm 97watches 98.Pa /System/Library/Extensions/ 99and automatically invokes 100.Xr kextcache 8 101to rebuild kext caches when its modification time changes. 102It also sends new drivers' 103personalities to the kernel at this time. 104.Pp 105Installers that add new drivers can signal 106.Nm 107in these ways instead of requiring the computer to be restarted. 108Note that if a hardware device has a driver attached when this is done, 109a newly-installed driver will not match on it. 110For more information, see 111.Dq "Apple Developer Technical Q&A QA1319: Installing an I/O Kit Kext Without Rebooting" . 112.Sh FILES 113.Bl -tag -width "/System/Library/Extensions/" 114.It Pa /System/Library/Extensions/ 115The standard system repository of kernel extensions. 116.It Pa /System/Library/Caches/com.apple.kext.caches/ 117Contains all kext caches for a Mac OS X 10.6 (Snow Leopard) system: prelinked kernel, 118mkext, and system kext info caches. 119.It Pa /usr/standalone/bootcaches.plist 120Describes specific kext cache files for a Mac OS X volume. 121.It Pa /System/Library/LaunchDaemons/com.apple.kextd.plist 122The 123.Xr launchd.plist 5 124controlling the 125.Nm 126job. 127.El 128.Sh DIAGNOSTICS 129.Nm 130normally never exits. 131If an error occurs it exits with a nonzero status. 132.Pp 133.Nm 134logs all error and verbose messages to the system log, 135or to the console if the system log facility isn't available. 136When running in debug mode all output is printed 137to the standard output and error streams. 138.Sh SEE ALSO 139.Xr kextcache 8 , 140.Xr kextload 8 , 141.Xr kextutil 8 , 142.Xr kextstat 8 , 143.Xr kextunload 8 , 144.Xr kextfind 8 , 145.Xr syslogd 8 , 146.Xr launchd.plist 5 147