Jump to content
2 posts in this topic

Recommended Posts

Hi I am trying to get dual video cards working with Snow Leopard 10.6.4. Here is my setup

  • Gigabyte GA-EP45T0USB3P
  • Core2Duo E6500 (OC to 3.85 Ghz)
  • Geforce 9400 GT
  • Geforce 8400 GS

 

I've used Kakewalk 2.2 installer for GA-EP45-UD3R (closest to my board) which installs the Chameleon 2.0 RC4.

 

These are extra KEXTs that I am running

fakesmc.kext

JMicronATA.kext

VoodooHDA.kext (and removed AppleHDA.kext. Otherwise kernel panic at boot)

 

----------------------------------------------

OK, so here is where I am now. Fresh 10.6.0 will not even boot with the second video cards in the PEG2 position. However, once I've updated to 10.6.3 (and .4 later) it will boot with the card in place, and it somewhat shows the info under the "More Info" (see the attached image). It lists both cards, but the VRAM info on the second card (8400 GS) is wrong.

post-623681-1277496163_thumb.png

 

I've been trying to update DSDT.aml file to get the cards working but no joy so far. I've followed this thread kdawg's http://www.insanelymac.com/forum/index.php...83349&st=20, and particularly kdawg's code for updating the DSDT. Below is the newly added part to my table file to compile the DSDT file.

       Device (PCI0)
       {
//test compile
            Device (PEG1) //<--GeForce 9400
            {
               Name (_ADR, 0x00010000) //<-- Important! Card address, different for every MOBO. Use gfxutil to find yours!
               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }
                               Device (GFX1) // <-- GeForce 9400GT
               {
                   Name (_ADR, Zero)
                   Name (_SUN, 0x0B)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

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

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

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

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

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

                               "NVCAP", //<-- NVCAP is unique for every card. Check yours.
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize",  //<-- VRAM is unique for every card. Check yours.
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x40
                               }, 

                               "device_type",
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x17)
                               {
                                   "NVIDIA Geforce 9400 GT"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3173a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }



           Device (PEG2) //<--GeForce 8400
           {
               Name (_ADR, 0x00060000) //<-- Important! Card address, different for every MOBO. Use gfxutil to find yours!
               Method (_PRW, 0, NotSerialized)
               {
                   Return (Package (0x02)
                   {
                       0x09, 
                       0x05
                   })
               }
           Device (GFX2) // <-- GeForce 8400GS
               {
                   Name (_ADR, Zero)
                   Name (_SUN, 0x0C)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

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

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

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

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

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

                               "NVCAP",  //<-- NVCAP is unique for every card. Check yours.
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize",  //<-- VRAM is unique for every card. Check yours.
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type",
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x17)
                               {
                                   "NVIDIA Geforce 8400 GS"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3169a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }


// end of my insert            

           Name (_HID, EisaId ("PNP0A03"))

 

 

After multiple tries I am still getting kernel panic during the boot with the new DSDT.aml file. Any suggestions?

Link to comment
https://www.insanelymac.com/forum/topic/222752-help-with-dual-video-cards/
Share on other sites

OK, I got it to not kernel panic with the below code. However, the triple monitors via dual video cards is still not working. Can someone take a look at the code below and provide feedback?

 

 Device (PCI0)
       {
           Device (PEG1) { //<-- Geforce 9400 GT
               Name (_ADR, 0x00010000)
               Name (_PRW, Package (0x02){0x09,0x05})
               Device (GFX1) {
                   Name (_ADR, Zero)
                   Name (_PRW, Package (0x02){0x09,0x05}) // <--Test to fix static
                   Name (_SUN, 0x0B)
                   Method (_DSM, 4, NotSerialized) {
                       Store (Package (0x16) {
                               "@0,compatible" ,Buffer (0x0B){"NVDA,NVMac"}, 
                               "@0,device_type",Buffer (0x08){"display"}, 
                               "@0,name"       ,Buffer (0x0F){"NVDA,Display-A"}, 
                               "@1,compatible" ,Buffer (0x0B){"NVDA,NVMac"}, 
                               "@1,device_type",Buffer (0x08){"display"}, 
                               "@1,name"       ,Buffer (0x0F){"NVDA,Display-B"}, 
                               "NVCAP"         ,Buffer (0x18){0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00}, 
                               "VRAM,totalsize",Buffer (0x04){0x00, 0x00, 0x00, 0x40}, 
                               "device_type"   ,Buffer (0x0D){"NVDA,GeForce"},
                               "model"         ,Buffer (0x17){"NVIDIA Geforce 9400 GT"}, 
                               "rom-revision"  ,Buffer (0x06){"3173a"}
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           } 
           Device (PEG2) { //<-- GeForce 8400 GS
               Name (_ADR, 0x00060000)
               Name (_PRW, Package (0x02){0x09,0x05})
               Device (GFX2) {
                   Name (_ADR, Zero)
                   Name (_PRW, Package (0x02){0x09,0x05}) // <--Test to fix static
                   Name (_SUN, 0x0C)
                   Method (_DSM, 4, NotSerialized) {
                       Store (Package (0x16) {
                               "@0,compatible" ,Buffer (0x0B){"NVDA,NVMac"}, 
                               "@0,device_type",Buffer (0x08){"display"},
                               "@0,name"       ,Buffer (0x0F){"NVDA,Display-A"}, 
                               "@1,compatible" ,Buffer (0x0B){"NVDA,NVMac"}, 
                               "@1,device_type",Buffer (0x08){"display"}, 
                               "@1,name"       ,Buffer (0x0F){"NVDA,Display-B"}, 
                               "NVCAP"         ,Buffer (0x18){0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00}, 
                               "VRAM,totalsize",Buffer (0x04){0x00, 0x00, 0x00, 0x20}, 
                               "device_type"   ,Buffer (0x0D){"NVDA,GeForce"}, 
                               "model"         ,Buffer (0x17){"NVIDIA Geforce 8400 GS"}, 
                               "rom-revision"  ,Buffer (0x06){"3169a"}
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }




           Name (_HID, EisaId ("PNP0A03"))

 

a couple things I've learned

  • Create a USB flash drive to boot the DSDT.aml file from, so when you screw up you can recover quickly
  • Hmmm, you actually have to keep the filename DSDT.aml in upper case!. DSDTSE tool spits them out in lower case dsdt.aml
  • DSDTSE tool seems to be very flaky with hidden characters that confuses the compiler. I ended up using BBEDIT and iASL

×
×
  • Create New...