DIY eGPU MacOS Experiences

Discussion in 'e-GPU (External Graphics) Discussion' started by timohour, May 1, 2012.

Thread Status:
Not open for further replies.
  1. EpicBlob

    EpicBlob Notebook Evangelist

    Reputations:
    49
    Messages:
    410
    Likes Received:
    16
    Trophy Points:
    31
    I was really just trying to start a discussion trying to help users with a macbook use an egpu with mac os x. Hardware does not affect that question. I am also wondering how people have gotten their macbooks to work in the past with egpus. Were their cards natively supported in os x? but there has to be a way to download the nvidia drivers without causing kernel panics/using hackintosh tools.. is it possibleto trick your system into thinking it is a mac pro?
     
  2. timohour

    timohour Notebook Consultant

    Reputations:
    201
    Messages:
    170
    Likes Received:
    1
    Trophy Points:
    31
    Anyway. Let's find your problem.

    Regarding the macbook connected with the 4870 mentioned on the first post, the guy flashed his card with a Mac Pro's 4870 ROM. You should know that an OS X installation has all the drivers that are needed for all Apple products that support this OS X release. That means that if you take your hdd out of your MacBook and connect it to a 2009 MacPro or an 2007 MacBook Pro or any other supported Mac (not to a PowerPC) it will boot without issues loading the drivers needed. That being said, if you connect a supported gpu card to your MacBook the card will be detected and work.
    The problem about your 560 (as I mentioned before your purchase) is that , it is not natively supported by OS X. That means that in most times you need to install a specific driver that includes the latest beta driver for your card. That being said we have to find somebody who have make it work on a MacPro (not a Hackintosh). As I have read GTX5XX cards are working with a minor patching on some kext files with only problem that it won't show a picture before full boot.
    Could you pls post a screenshot of your System Profiler the Graphics section with your eGPU connected prior to boot? After that download that driver (I hope you have upgraded to 10.7.3) and install it. It is supposed to provide GTX580 support OTB. Post a screenshot of your System Profiler again even if your connected screen doesn't work. Do not use any DVI-VGA adapter on your card. If possible connect to the first dvi port. If it won't work we will find out what we have to change in the NVDAGF100Hal.kext to make it work. Make sure that everything is working with W7 first...
     
  3. kizwan

    kizwan Lord Pringles

    Reputations:
    1,502
    Messages:
    3,229
    Likes Received:
    10
    Trophy Points:
    106
    Chameleon you're referring to is not a driver. It's bootloader for hackintosh. One of the feature in the bootloader called "GraphicsEnabler" is required by hackintosh to enabled the graphic card in OS X. For real Macbook, you don't need this. What you only need is patching/edit the Nvidia kexts. Basically, there are two ways, sometime you only need to do one but sometime both:-
    1. Edit the Info.plist to add your GPU PCI ID.
    2. Edit the kext binary file

    For first attempt, add your GPU PCI ID in Info.plist file:-
    Code:
    /System/Library/Extensions/NVDAGF100Hal.kext/Contents/Info.plist
    find IOPCIPrimaryMatch & add GPU PCI ID in it. For example (see the last entry: 0x108410de&0xffc0ffff):-
    * GTX560 Ti: DEV ID 1082
    * GTX560: DEV ID 1084
    HTML:
    <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
        0x108410de&amp;0xffc0ffff
    </string>
    Then, update kernelcache in Terminal:-
    Code:
    touch /System/Library/Extensions ; kextcache -system-prelinked-kernel ; kextcache -system-caches
    Try this first & see whether it detect the GPU on next reboot or not.
     
  4. EpicBlob

    EpicBlob Notebook Evangelist

    Reputations:
    49
    Messages:
    410
    Likes Received:
    16
    Trophy Points:
    31
    Ah this makes more sense. Heres my info.plist-

    <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
    0x108410de&amp;0xffc0ffff
    </string>

    Mine had the &amp; in it, so I just added it to the 560 id. Also, when I put
    touch /System/Library/Extensions ; kextcache -system-prelinked-kernel ; kextcache -system-caches into terminal, it shows up with this:

    Bobbys-MacBook-Pro:~ EpicBlob$ touch /System/Library/Extensions ; kextcache -system-prelinked-kernel ; kextcache -system-caches
    touch: /System/Library/Extensions: Permission denied
    You must be running as root to update system kext caches.
    You must be running as root to update system kext caches.

    Any ideas how to be running at root?

    @Timohour,

    The only problem is that the official mac nvidia drivers only work with mac pros :( On the installer a message pops up saying:

    This computer will not support this NVIDIA graphics solution.
     
  5. kizwan

    kizwan Lord Pringles

    Reputations:
    1,502
    Messages:
    3,229
    Likes Received:
    10
    Trophy Points:
    106
    To get root priviledge, enter this command in Terminal & when it ask for password, just enter your password:-
    Code:
    sudo -s
     
  6. EpicBlob

    EpicBlob Notebook Evangelist

    Reputations:
    49
    Messages:
    410
    Likes Received:
    16
    Trophy Points:
    31
    Ok so I put the edited info.plist into the contents folder, ran sudo -s in terminal, put in what I needed, then this appeared in terminal:

    "bash-3.2# touch /System/Library/Extensions ; kextcache -system-prelinked-kernel ; kextcache -system-caches
    JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
    JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
    JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
    bash-3.2#

    A message also popped up saying:

    The system extension &#8220;/System/Library/Extensions/NVDAGF100Hal.kext&#8221; was installed improperly and cannot be used. Please try reinstalling it, or contact the product&#8217;s vendor for an update.

    If I take the amp; out of the info.plist, this appears in terminal:


    bash-3.2# touch /System/Library/Extensions ; kextcache -system-prelinked-kernel ; kextcache -system-caches
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
    JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
    JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    Can't read info dictionary for NVDAGF100Hal.kext: IOCFUnserialize: syntax error near line 45.
    bash-3.2#
     
  7. kizwan

    kizwan Lord Pringles

    Reputations:
    1,502
    Messages:
    3,229
    Likes Received:
    10
    Trophy Points:
    106
    You can ignore the "JMicronATA.kext" message.

    The "system extension “/System/Library/Extensions/NVDAGF100Hal.kext” was installed improperly" because the file permission is not correct. When you put back Info.plist in "Contents" folder, the file permission changed & you need to fixed it. This is how to do this in Terminal:-
    Code:
    sudo -s
    chown -R root:wheel /System/Library/Extensions/NVDAGF100Hal.kext
    chmod -R 755 /System/Library/Extensions/NVDAGF100Hal.kext
    Then, lastly update kernelcache:-
    Code:
    touch /System/Library/Extensions ; kextcache -system-prelinked-kernel ; kextcache -system-caches
     
  8. cyph3rz

    cyph3rz Notebook Enthusiast

    Reputations:
    0
    Messages:
    12
    Likes Received:
    0
    Trophy Points:
    5
    I think I can help with that.

    What about you copy the installer off of the disk image, right-click to open it, then find and edit distribution.dist inside with textedit and change "var system_models" to match your Macbook model (MacBookPro8,1).
     
  9. EpicBlob

    EpicBlob Notebook Evangelist

    Reputations:
    49
    Messages:
    410
    Likes Received:
    16
    Trophy Points:
    31
    Kizwan,

    I am currently at a star wars marathon (be jealous :D) and will test if it works when I come home.

    cyph3rz,

    Ahh the drivers installed! :DD Once I get home I'll check my system and see if the card is detected. Thank you so much man I hope this works.
     
  10. EpicBlob

    EpicBlob Notebook Evangelist

    Reputations:
    49
    Messages:
    410
    Likes Received:
    16
    Trophy Points:
    31
    Ok well the card is still not detected. Here are some screenshots of my system profile and info.plist after downloading the nvidia 270 drivers.
     

    Attached Files:

Loading...
Thread Status:
Not open for further replies.

Share This Page