This took me quite some time to figure out. Even though I had the right Device Path for both video cards and correct EFI strings, the system would constantly kernel panic upon switching to GUI mode (NVDAResman). NVInject for Leopard seemed to work, but disabled QE/CI and it wasn't 64-bit unless I compiled it myself.
Eventually I got it working with JUST EFI strings but I had to change my BIOS to boot with PEG2 (so my secondary card would be my primary display). This wasn't a solution for me. I read up and found that Gigabyte boards seemed to have trouble with two cards and that you'd need to use PEG2 and switch cards around each time you wanted to enter (Snow)Leopard. Well, NO LONGER. Here's the solution. Hoorah! (This may even work in Leopard)
Firstly, you will need to modify your EFI Strings. Make sure you have the correct Device Root for each device. Usually PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0) and PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0). To find these, take out your secondary card, boot, run gfxutil -f display, and note it. Shutdown, take out your primary card, insert your secondary card (into it's secondary slot) and repeat.
You will then need to add some keys. A typical dual-video card EFI plist is outlined below, the parts that are bolded are what you need to add, the parts in red need to be changed.
In my example below I use a NVIDIA GeForce GTX 260 (896MB DVI/DVI) and NVIDIA GeForce 8500 GT (256MB DVI/VGA). You should make sure that the parts I haven't highlighted are also the same in your current EFI string.
<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0) (OR THE PCI ROOT OF YOUR PRIMARY CARD use gfxutil)</key>
<dict>
<key>@0,AAPL,boot-display</key>
<data></data>
<key>@0,can-hot-plug</key>
<data></data>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,connector-type</key>
<data>AAAABA==</data>
<key>@0,device_type</key>
<string>display</string>
<key>@0,display-connect-flags</key>
<data>AAAAAA==</data>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,AAPL,boot-display</key>
<data></data>
<key>@1,can-hot-plug</key>
<data></data>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,connector-type</key>
<data>AAAABA==</data>
<key>@1,device_type</key>
<string>display</string>
<key>@1,display-connect-flags</key>
<data>AAAAAA==</data>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>NVCAP</key>
<data>BAAAAAAAAwAMAAAAAAAABwAAAAA=THIS IS DVI/DVI (change it depending in your card)</data>
<key>NVPM</key>
<data>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</data>
<key>built-in</key>
<data>AA==</data>
<key>VRAM,totalsize</key>
<string>0x38000000 THIS IS 896MB RAM (change it depending on your card)</string>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce GTX 260 (change depending on card)</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rm_multiboard_capable</key>
<data>AAAAAQ==</data>
<key>rom-revision</key>
<string>NVIDIA GeForce GTX 260 (change depending on card) OpenGL Engine</string>
</dict>
<key>PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0) (OR THE PCI ROOT OF YOUR SECONDARY CARD use gfxutil)</key>
<dict>
<key>@0,AAPL,boot-display</key>
<data></data>
<key>@0,can-hot-plug</key>
<data></data>
<key>@0,compatible</key>
<string>NVDA,NVMac</string>
<key>@0,connector-type</key>
<data>AAAABA==</data>
<key>@0,device_type</key>
<string>display</string>
<key>@0,display-connect-flags</key>
<data>AAAAAA==</data>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,AAPL,boot-display</key>
<data></data>
<key>@1,can-hot-plug</key>
<data></data>
<key>@1,compatible</key>
<string>NVDA,NVMac</string>
<key>@1,connector-type</key>
<data>AAAABA==</data>
<key>@1,device_type</key>
<string>display</string>
<key>@1,display-connect-flags</key>
<data>AAAAAA==</data>
<key>@1,name</key>
<string>NVDA,Display-B</string>
<key>NVCAP</key>
<data>BAAAAAAAAwAEAAAAAAAABwAAAAA=THIS IS DVI/VGA (change it depending in your card)</data>
<key>NVPM</key>
<data>AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</data>
<key>built-in</key>
<data>AA==</data>
<key>VRAM,totalsize</key>
<string>0x10000000THIS IS 256MB RAM (change it depending on your card)</string>
<key>device_type</key>
<string>NVDA,GeForce</string>
<key>model</key>
<string>NVIDIA GeForce 8500 GT(change depending on card)</string>
<key>name</key>
<string>NVDA,Parent</string>
<key>rm_multiboard_capable</key>
<data>AAAAAQ==</data>
<key>rom-revision</key>
<string>NVIDIA GeForce 8500 GT(change depending on card) OpenGL Engine</string>
</dict>
That should allow you to boot to Snow Leopard under PEG2, with CI/QE. No more Kernel Panics! But we're not done. Lets finish the job to allow no BIOS changes (i.e. booting from PEG1):
Now we need to patch DSDT.aml. Gather your DSDT.dsl file using iasl (or whatever you prefer). Open it up in TextEdit and search for:
Device (PCI0)
Add the following devices under it:
Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
}
}
Device (GFX1)
{
Name (_ADR, 0x00060000)
}
It should look like:
Device (PCI0)
{
Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
}
}
Device (GFX1)
{
Name (_ADR, 0x00060000)
}
Name (_HID, EisaId ("PNP0A03"))
Replace the _ADR fields with the Device Path Number. For example, in my EFI string above I have PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0) and PciRoot(0x1)/Pci(0x6,0x0)/Pci(0x0,0x0). Replace these numbers in those fields. If you have something like..."1C" instead of just "6" you'll have something like Name (_ADR, 0x001C0000).
Recompile the DSDT with iasl -sa and replace the file. Reboot and hoorah, you're done. If you have a translucent bar at the top, QE/CI is working. Boot up time will be about 30-40 seconds longer. I don't know why this is, but it's a good trade off. If you need help with NVCAP or VRAM values try here.
Oh and sorry for the horrible spacing
Have fun!



Sign In
Create Account









