We have to inject some properties in the device tree. The Chameleon v2 bootloader does that automatically for many cards, you just have to enable the GraphicsEnabler option and configure the PciRoot (only if it's not zero).


In the file com.apple.Boot.plist


        <key>GraphicsEnabler</key>


        <string>y</string>


        <key>PciRoot</key>


        <string>1</string>



You can use the app Lizard (LINK).
Check the Graphics Injection option, click on Auto-detect value in PCIRoot and save.



Posted Image



In Lizard preferences, configure the Extra folder Path. Select the Extra folder in the partition where you installed Chameleon.



Posted Image



There are kexts for that (NVenabler, NVinject, EvoEnabler, among others) but they do exactly the same thing, inject properties, they are not the drivers themselves.







It's also possible to pass the properties manually to Chameleon.



In the file com.apple.Boot.plist (or using Lizard)


        <key>device-properties</key>


        <string>[hexadecimal EFI string]</string>



To get the currently injected properties you can use the command

ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;' > device-properties.hex


To convert the file device-properties.hex (hexadecimal EFI string) to plist (property list file) you can use OSX86Tools (osx86tools).



Posted Image



OSX86Tools can also be used to generate an EFI string.



Posted Image