8

Is there an easy way to make the mapping from kernel extension to the file it came from?

I can get the list of currently loaded kernel extension via kextstat. This gives me the bundle names, like com.AmbrosiaSW.AudioSupport or jp.plentycom.driver.SteerMouse. But how can I then find the actual file locations of these bundles? For example, the Ambrosia bundle is AmbrosiaAudioSupport.kext, and I can only find the bundle name in the Info.plist inside that bundle. I could grep the /System/Library/Extensions/ directory, but this does not necessarily contain extensions loaded after booting, and I assume there is a better way to do it?

4

See kextfind

| improve this answer | |
  • 1
    kextfind is interesting, but it seems it only searched in the standard /System/Library/Extensions/ folder. Is there a way to find the location of bundles that were not loaded from this folder? Something that remembers the -r parameter of kextutil? – Jan Fabry Jan 11 '11 at 8:20
4

You can use kextfind -b <bundlename> to find the file defining a kext you only know the bundle name of.

EDIT: newer versions of kextfind need a -print predicate to show output. Example updated below.

For example:

kextfind -b com.AmbrosiaSW.AudioSupport -print
| improve this answer | |
  • Doesn't work :( - Mac-Pro.local ➜ Extensions kextstat | grep rehab 18 0 0xffffff7f8131f000 0x4000 0x4000 com.rehabman.driver.USBInjectAll (0.6.5) A63DACD5-10FE-3A1C-BCB1-4EEF5308B7CC <13 12 5 3> Mac-Pro.local ➜ Extensions kextfind -b com.rehabman.driver.USBInjectAll Mac-Pro.local ➜ Extensions – Roman Gaufman Apr 5 at 16:17
  • @RomanGaufman newer versions of kextfind need a -print predicate to show output, else it will just return true if the bundle is found. I have updated the answer accordingly – DarrenPMeyer Apr 14 at 2:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .