Jump to content
Cassio

Enable nVidia drivers

Recommended Posts

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

ASUS N53Jq • CPU: Intel Core i7-740QM 1.73GHz • RAM: 6,0GB • HD: 500GB • GPU: GeForce GT 425M 1GB 1920x1080 • OS: OS X 10.8.4 • Linux Mint 15 • Windows 8

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

Hello,


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

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

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...
The popup will be closed in 15 seconds...