Jump to content

Recommended Posts

Posted

You can use a patch to enable nVidia drivers by injecting the needed properties in DSDT.


Please see this topic for more information about device-properties http://Olarila.com/forum/viewtopic.php?f=18&t=154


To find out where to insert the patch, you can use IORegistryExplorer.


file.php?id=6000


Sample code to be inserted (into P0P2 in the above example)

                Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package ()
                           {
                               "@0,compatible", 
                               Buffer ()
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer ()
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer ()
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer ()
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer ()
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer ()
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer ()
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "NVPM", 
                               Buffer ()
                               {
                                   /* 0000 */    0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                   /* 0018 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer ()
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer ()
                               {
                                   "NVDA,Parent"
                               }, 

                               "model", 
                               Buffer ()
                               {
                                   "nVidia GeForce 9800 GTX"
                               }, 

                               "rom-revision", 
                               Buffer ()
                               {
                                   "nVidia GeForce 9800 GTX OpenGL Engine"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }

 

In some motherboards the device where GFX0 resides is not present in DSDT, so you need to insert it as well (into PCI0)

			Device (PEG1)
		{
			Name (_ADR, 0x00010000)
			Device (GFX0)
			{
				... same as above
			}
		}

 

Sample patches to be applied using DSDT Editor:


Asus motherboards

nVidia 9800 GTX 512 MB


Gigabyte motherboards

nVidia 9600 GT 1GB PCI0

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Posted

Hi cassio,

I edited DSDT as you posted: in my system profiler it shows up as "nVidia Quadro NVS 295,,,,,256 Mb"

Of course i injected proper name and rom revision, but my question is: what about those dots before "256"?

Am I missing something in dsdt editing?

my rig:

zotac z77itx

intel i7 3770T

nVidia Quadro NVS 295


Adding efi string (without DSDT edits) system profiler shows the card name correctly, but I prefer DSDT edit rather than efi string in org.chameleon.boot.plist.

Any ideas?

Posted

Hello,


you probably forgot to adjust the buffer size, just leave it blank (remove 0x?? from Buffer)

                                "model",
                               Buffer ()
                               {
                                   "nVidia Quadro NVS 295"
                               },

-Guides and Tutorials HERE

-Hackintosh Tutorial Database - HERE

-The largest EFI folder collection for Hackintosh HERE

-Support Olarila Vanilla Hackintosh by making a donation HERE

-Professional Consulting for macOS Hackintosh since 2006 HERE

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...