Disclaimer: This is essentially an update, so read this original post first if you haven't and once again, I'm not responsible if you cock up your machine, it comes with the territory. You'll need to learn how to de-cock your machine sooner or later.

I know, I know, I said I wouldn't update ever again, but I was having a weird issue with iTunes and the icons in 10.7.2's Launcher were bigger, I got dazzled. Anyway here are the fixes I needed to make to boot up my hackintosh with my EVGA NVIDIA GTX 570 with full resolution and openGL...

Using my system in the state from the initial guide, I installed the Mac OS X Lion 10.7.2 Update and rebooted. Results were expected, my NVIDIA GTX 465 worked perfectly, but my GTX 570 came up single monitor at 1024×768.

So, we need to make the same modifications we did previously to get things working with a couple little differences...

$ sudo su
Password:
# mkdir /Users//Desktop/Backup-GTX570-Mods-10.7.2/
# rsync -av /System/Library/Extensions/NVDAGF100Hal.kext/ /Users//Desktop/Backup-GTX570-Mods-10.7.2/NVDAGF100Hal.kext/

Now let's add our device IDs..

# nano -wT2 /System/Library/Extensions/NVDAGF100Hal.kext/Contents/Info.plist

Add your device ID to the IOPCIPrimaryMatch key list, mine is 1081 but yours may be 1086.

  <key>IOPCIPrimaryMatch</key>
  <string>
    0x06c010de&amp;0xffe0ffff
    0x0dc010de&amp;0xffc0ffff
    0x0e2010de&amp;0xffe0ffff
    0x0ee010de&amp;0xffe0ffff
    0x0f0010de&amp;0xffc0ffff
    0x104010de&amp;0xffc0ffff
    0x124010de&amp;0xffc0ffff

    0x108110de&amp;0xffc0ffff
  </string>

Next, install the July 22, 2011 version of ATY_Init.kext from netkas.

The updated version of GeForceBundle needs to be fixed. This time we're replacing the following hex codes:

eb a8 83 f8 02 7c 15
will be replaced with
eb a8 83 f8 03 7c 15

78 e8 83 f8 02 7c 11
will be replaced with
78 e8 83 f8 03 7c 11

Back things up first...

# rsync -av /System/Library/Extensions/GeForceGLDriver.bundle/ /Users//Desktop/Backup-GTX570-Mods-10.7.2/GeForceGLDriver.bundle/

You can do this fix using this helpful perl command line script.

# perl -pi -e '$c++ if s|xebxa8x83xf8x02x7cx15|xebxa8x83xf8x03x7cx15|; s|x78xe8x83xf8x02x7cx11|x78xe8x83xf8x03x7cx11|; END { unless ($c) { warn "No substitutions maden"; $? =1 } }' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/GeForceGLDriver

A step I didn't do previously is to modify libclh.dylib to allow OpenCL 2.0. It shouldn't be necessary for GTX 570 cards but for complete hack-ness, I opted to do it anyway...

8b 87 1c 0c 00 00 89 06 8b 87 20 0c 00 00 89 02
will be replaced with
31 c0 ff c0 ff c0 89 06 31 c0 89 02 90 90 90 90

# perl -pi -e '$c++ if s|x8bx87x1cx0cx00x00x89x06x8bx87x20x0cx00x00x89x02|x31xc0xffxc0xffxc0x89x06x31xc0x89x02x90x90x90x90|; END { unless ($c) { warn "No substitutions maden"; $? =1 } }' /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/libclh.dylib

Now we edit the AppleGraphicsPowerManagement.kext to add power management for our card. Once again our system is set to be an iMac 12,2 so that's where I've added the following (in black)...


        <key>iMac12,2</key>
        <dict>
        ...
          <key>Vendor1002Device6740</key>
          <dict>
            <key>control-id</key>
            <integer>17</integer>
            <key>max-power-state</key>
            <integer>2</integer>
          <dict>

          <key>Vendor10deDevice1081</key>
          <dict>
          <key>Heuristic</key>
          <dict>
            <key>ID</key>
            <integer>0</integer>
            <key>IdleInterval</key>
            <integer>250</integer>
            <key>SensorOption</key>
            <integer>1</integer>
            <key>SensorSampleRate</key>
            <integer>4</integer>
            <key>TargetCount</key>
            <integer>5</integer>
            <key>Threshold_High</key>
            <array>
              <integer>93</integer>
              <integer>93</integer>
              <integer>93</integer>
              <integer>100</integer>
            </array>
            <key>Threshold_Low</key>
            <array>
              <integer>0</integer>
              <integer>97</integer>
              <integer>97</integer>
              <integer>100</integer>
            </array>
          </dict>
          <key>LogControl</key>
          <integer>1</integer>
          <key>control-id</key>
          <integer>18</integer>
        </dict>
        <key>default-control-id</key>
        <integer>18</integer>
      </dict>
      <key>iMac 9,1</key>
      <dict>
        <key>IGPU</key>

Now we rebuild the caches..

# rm -rf /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache
# kextcache -system-prelinked-kernel
# kextcache -system-caches

And I needed to update my EFI string, I had to remove a section because it wasn't being recognized or something. Here's my updated org.chameleon.Boot.plist

<plist version="1.0″>
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>-v arch=i386 npci=0x2000</string>
  <key>Timeout</key>
  <string>2</string>
  <key>Legacy Logo</key>
  <string>Yes</string>
  <key>PCIRootUID</key>
  <string>1</string>
  <key>EthernetBuiltIn</key>
  <string>Yes</string>
  <key>UseKernelCache</key>
  <string>Yes</string>
  <key>GraphicsEnabler</key>
  <string></string>
  <key>Graphics Mode</key>
  <string></string>
  <key>device-properties</key>
  <string>530200000100000001000000470200000c00000002010c00d041030a000000000101060000030101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820353730204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c000000000000070000000014000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203537300e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000005020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74</string>
</dict>
</plist>

Once I rebooted with that, all was perfect but then I figured out what I'd screwed up and so I was able to combine my EFI strings using OSX86Tools so I updated my EFI string to have both video cards in it and an ethernet card...

<plist version="1.0″>
<dict>
  <key>Kernel</key>
  <string>mach_kernel</string>
  <key>Kernel Flags</key>
  <string>-v arch=i386 npci=0x2000</string>
  <key>Timeout</key>
  <string>2</string>
  <key>Legacy Logo</key>
  <string>Yes</string>
  <key>PCIRootUID</key>
  <string>1</string>
  <key>EthernetBuiltIn</key>
  <string>Yes</string>
  <key>UseKernelCache</key>
  <string>Yes</string>
  <key>GraphicsEnabler</key>
  <string></string>
  <key>Graphics Mode</key>
  <string></string>
  <key>device-properties</key>
  <string>d804000001000000030000003f0000000100000002010c00d041030a0000000001010600021c0101060000007fff0400160000006200750069006c0074002d0069006e0000000500000001470200000c00000002010c00d041030a000000000101060000030101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820353730204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c000000000000070000000014000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203537300e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000005020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000f0000004e5644412c506172656e74460200000c00000002010c00d041030a000000000101060000070101060000007fff04001e00000072006f006d002d007200650076006900730069006f006e0000002e0000004e5649444941204765466f7263652047545820343635204f70656e474c20456e67696e65205b4546495d22000000400030002c006400650076006900630065005f00740079007000650000000b000000646973706c6179100000004e00560043004100500000001800000004000000000003000c000000000000070000000014000000400030002c006e0061006d0065000000120000004e5644412c446973706c61792d41100000006d006f00640065006c0000001a0000004e5649444941204765466f72636520475458203436350e0000004e00560050004d000000200000000100000000000000000000000000000000000000000000000000000014000000400031002c006e0061006d0065000000120000004e5644412c446973706c61792d4220000000400031002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d6163220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000000000004020000000400030002c0063006f006d00700061007400690062006c00650000000e0000004e5644412c4e564d616322000000400031002c006400650076006900630065005f00740079007000650000000b000000646973706c61791c0000006400650076006900630065005f00740079007000650000000e0000004e5644412c4368696c64</string>
</dict>
</plist>

Now the system boots happily and actually shows the 1GB of VRAM on the NVIDIA GTX 465.

Check it out...

Big source for material compiled above is this forum post

anon - 2012-01-30 06:04:34
kext: osx86 . net/view/1738-applegraphicspowermanagement_gtx_580,570_10.7.2.html
anon - 2012-01-30 06:03:51
I had to use this kext and change my smbios.plist, but finally, I can watch flash videos, and there's no UI lag!

thanks for the tips.
Toby T - 2012-01-24 14:14:31
Can you confirm if you have QE/CI working? I have full resolution, correct system profiler info, OpenCL and OpenGL working but no QE/CI )-:

If you do, do you have any tips??
edwardbeckettx - 2012-01-03 17:12:38
I just wanted to thank you for the share ... following your examples I've successfully installed Lion 10.7.2 with nVidia GTX 570 and full support for both OpenGL and OpenCL over my Asus p-67 Sabertooth and i7@2600K ...

Thanks again Ian ... :-)
Guile - 2011-12-05 20:40:31
Thanks !!
mmesh - 2011-11-19 15:55:42
Hi!

Can You help, please. I treid this on fresh install of 10.7.2. I used kakewalk 4.1.1 on Gigabyte X58A-UD3R v2 MBO with Point of View GTX570 GPU for install and then got 1024x768 resolution. After trying your modifications I got black screen (no video input) after reboot.
Gord - 2011-10-25 15:53:21
Oh damn, now that's weezy!

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>