TROUBLESHOOTING: Video card not seen - kext not loaded

In some case, if a video card is not seen even though it seems to be working fine and drivers are installed, make sure it is not to the new new security measure known as "User-Approved Kernel Extension Loading" that Apple has introduced with macOS High Sierra.

 

What is a "Kext"?

"A kernel extension (or kext) is a dynamically loaded bundle of executable code that runs in kernel space. You can create a kext to perform low-level tasks that cannot be performed in user space."

So this is what the video cards manufacturers use for their drivers. If their driver is not loaded, it means that the card can not be seen...

You can read more about kext on Apple's website

 

What is "User-Approved Kernel Extension Loading" ?

"To improve security on the Mac, user consent is required to load kernel extensions installed with or after installing macOS High Sierra or later. Any user can approve a kernel extension, even if they don’t have administrator privileges."

 

So what does that mean?

This means that when you install your AJA, Blackmagic-Design or Deltacast drivers, you will see a warning saying:

tn2459_blocked.png

If the drivers were installed before an upgrade to High Sierra then there won't be any issue. But if they are installed afterwards, the user will need to approve them. The approval is done in "System Preferences > Security & Privacy". See the following screenshots to approve Blackmagic-Design's kext:

HighSierra_kext_requestApproval.png

 

TROUBLESHOOTING

You missed the warning and it is not shown anymore

If you have missed the warning, the problem is that the text and button in System Preferences > Security is displayed only 30 minutes after it was displayed.

You will need to reboot the computer to see it again.

Note that some kext will only be loaded if a device is connected, so make sure you have connected your video device.

 

You are controlling the computer remotely and can not click

For security reasons again, if you are controlling the computer with a screen sharing service (VNC, Screen Sharing, TeamViewer, etc...), you won't be able to click on the "Allow" button. This can also happen if the mouse or trackpad are emulated by a 3rd party application  such as MagicPrefs, BetterTouchTool, Synergy, etc.

There are 2 solutions:

  • (Recommended but not always possible). Have a user that has a physical access to the Mac to click on the button.
  • A workaround (not sure it will always work), that is a bit tricky is to run an AppleScript which would do the click: tell application "System Events" to click at {890, 460}

 

Check the status of a kext in Terminal

If needed it is possible to check in Terminal with a command line for example with AJA's kext):

~ admin$ sudo kextutil /Library/Extensions/AJANTV2.kext

For Blackmagic-Design it will be:

~ admin$ sudo kextutil /Library/Extensions/DeckLink_Driver.kext

It will ask for the admin password and if the extension can not be loaded it will return something like this:

Kext rejected due to system policy: <OSKext 0x7fb95472b540 [0x7fff97b7e5b0]> { URL = "file:///Library/StagedExtensions/Library/Extensions/AJANTV2.kext/", ID = "com.aja.iokit.ntv2" }
Kext rejected due to system policy: <OSKext 0x7fb95472b540 [0x7fff97b7e5b0]> { URL = "file:///Library/StagedExtensions/Library/Extensions/AJANTV2.kext/", ID = "com.aja.iokit.ntv2" }
Diagnostics for /Library/Extensions/AJANTV2.kext:

 

More links

More info on this can be found here: https://developer.apple.com/library/content/technotes/tn2459/_index.html

Disclaimer: Some of the text here comes from the following document: https://www.apple.com/business/resources/docs/macOS_Security_Overview.pdf

Have more questions? Submit a request

Comments

Powered by Zendesk