Kernel extensions in OS X are add-ons to the core system software that provide low-level functionality to the system. These include device drivers such as graphics cards, trackpads, and input devices, but also for some system features like firewalls.
Most kernel extensions in OS X are provided by Apple, but every now and then programs such as security software, or drivers for third-party devices, may include a kernel extension to provide system-wide services.
Since kernel extensions provide modifications to the system kernel and other low-level services, if they function incorrectly then they can easily destabilize the system and result in a kernel panic, or other unwanted behavior. Therefore, OS X will check whether or not kernel extensions are installed properly, and if not then it will prevent them from being loaded and issue a warning similar to the following in the system console:
The system extension “/System/Library/Extensions/AppleGraphicsControl.kext/Contents/PlugIns/AppleGraphicsDevicePolicy.kext” was installed improperly and cannot be used. Please try reinstalling it, or contact the product’s vendor for an update.
Kexts require specific permissions and properties in order to load properly, and often if you manually adjust kext contents, or even remove them and then copy them manually back into either the Macintosh HD > Library > Extensions or the Macintosh HD > System > Extensions folders, then these properties will change and trigger the system to not load them.
If this happens, then you can try restoring the faulty system extension in a few different ways. The first is to restore from a full-system backup using Time Machine:
- Go to the Extensions folder containing the problematic kext
- Invoke Time Machine from the Time Machine menu (you may have to re-navigate to the Extensions folder)
- Navigate back to a point where you know the problems did not exist, but while still using your current software and OS versions.
- Select the kext in the backup and restore it, replacing the current one
The last options are perhaps the easiest for managing KEXT errors:
- Restore the entire system from a recent Time Machine backupHopefully you have an ongoing Time Machine backup that is updated regularly, in which case you can use Apple’s Recovery volume to restore the system from a recent backup.
- Reinstall OS X if the KEXT is an Apple-provided oneIf you do not have a backup to restore from and the KEXT is one that comes with OS X, then your best bet is to reinstall OS X. The tools to do this are also available in the Recovery volume.
- Reinstall the third-party software for the KEXTIf the KEXT is from a third-party software package, then you can usually just download and run the software’s installer to restore the KEXT again, though contact the developer to ensure you follow the proper installation procedure for fixing their programs.
It would be great to have something like Conflict Catcher (Casady & Greene)
http://en.wikipedia.org/wiki/Conflict_Catcher
to troubleshoot Mac with OS X.
Is there something similar, besides Diablotin?
https://www.macupdate.com/app/mac/8975/diablotin
Thanks!
One big reason that there is no equivalent to Conflict Catcher in OS X is that OS X is much less susceptible to extension conflicts of the sort that were so common in OS 9 and earlier version of the Mac OS. They do happen, of course, as any developer can tell you who has had to modify his program for compatibility with other commonly used apps. Of course, some developers are more conscientious about this sort of thing than others. Still, as Topher suggests, unlike OS 9, OS X leaves a trail of breadcrumbs in the Console logs that can be used for troubleshooting purposes. Though reading those logs can be both tricky and tedious. It’s a skill I certainly haven’t mastered. Maybe if I keep reading Topher’s articles I’ll get better at it. I already learned how to search the logs for specific clues in a recent article about finding out why a computer is waking up seemingly spontaneously.
Also, some apps will leave clues in their log files when something goes wrong. This is the case, for instance, with SuperDuper. Sometimes it will fail to complete a clone or backup because it encounters a corrupt file that it cannot process. The SuperDuper log will note the file that caused the failure. You can then root out and remove that file and resume the backup. This has helped me on a number of occasions.
Another way to start to figure out what’s going wrong is to start up the computer in Safe Mode – by holding down the Shift key at startup. OS 9 had the same feature. This will start the computer with most user installed extensions disabled. If the problem goes away then you know it is localized in the user folder. If the problem persists in Safe Mode, then it is most likely rooted somewhere in the System folder. This will at least narrow down where you have to look for trouble.
Also, when an app crashes, using a free app like TinkerTool (http://www.bresink.com/osx/TinkerTool.html) you can choose what kind of message will be displayed (under the Desktop tab in TinkerTool). This can give you a log report which may or may not be of some use in discovering why an app quit.
Finally, I think it’s reasonable to think that if a utility like Conflict Catcher could be created for OS X, some enterprising developer would have done so. There is certainly a plethora of third party apps that claim to improve system performance, some more useful than others. And Apple has included Disk Utility for the basics. If your computer is on late at night the system will run a set of what are called cron scripts to do some routine core maintenance. I use Cocktail (http://www.maintain.se/cocktail/) to run these and other maintenance routines on a regular basis, but the freeware app Maintenance (http://www.titanium.free.fr/index.php) is even easier to use and works very well.
There were far fewer options for maintaining an OS 9 system than for OS X, so though I too lament the loss of Conflict Catcher, the fact is that taking care of OS X is actually easier in many ways. We have more complete (and sometimes complex) tools for doing so. The Console is one of the more complex and useful of those tools.