Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Please, test the new pre-release.

No difference I'm afraid. Just the LogControl integer change again.

FYI I've also tried Julian's utility and that successfully patched the kext's Info.plist. Prior to testing your pre-release, I reverted that change so I was starting with the original Apple kext from my TimeMachine backup.

I've attached a copy of my original Info.plist for your reference.
 

Attachments

  • Original Info.plist.zip
    8.3 KB · Views: 278
  • Like
Reactions: fabioroberto
No difference I'm afraid. Just the LogControl integer change again.

FYI I've also tried Julian's utility and that successfully patched the kext's Info.plist. Prior to testing your pre-release, I reverted that change so I was starting with the original Apple kext from my TimeMachine backup.

I've attached a copy of my original Info.plist for your reference.
Okay.
I tested it from 10.12 to 10.14.1 and it's working. I will install 10.11.6 in the next few days and check the problem. Thank you.
 
I wrote a simple script to apply the kext patch or remove it.
Download here: https://github.com/fabioiop/MBP-2010-GPU-Panic-fix

(System Preferences and go to “Security & Privacy” and the “General” tab and allow it to run)

So glad I found this thread. I have started having crashes at least once a day. Fingers crossed this works! I ran the utility as directed. I see that the AppleGraphicsPowerManagement.kext info.plist file has been updated to run at speed 2 only.

plist.png

I did reenable SIP after running the utility. The kext still loads. It just fails validation.

System Info.png


I will report back in a few days or weeks whether I have had any crashes, and if there have been any issues related to SIP and the modified kext.
 
So glad I found this thread. I have started having crashes at least once a day. Fingers crossed this works! I ran the utility as directed. I see that the AppleGraphicsPowerManagement.kext info.plist file has been updated to run at speed 2 only.

I did reenable SIP after running the utility. The kext still loads. It just fails validation.


I will report back in a few days or weeks whether I have had any crashes, and if there have been any issues related to SIP and the modified kext.
Great.
If you want to enable SIP, the correct one is: csrutil enable --without kext
(Enable SIP and enable the installation of unsigned kernel extensions)
 
Great.
If you want to enable SIP, the correct one is: csrutil enable --without kext
(Enable SIP and enable the installation of unsigned kernel extensions)

I recommend `csrutil enable ` after making the fix. It should be fully enabled for security. It only needs to be disabled temporarily while we make the change.
 
No difference I'm afraid. Just the LogControl integer change again.

FYI I've also tried Julian's utility and that successfully patched the kext's Info.plist. Prior to testing your pre-release, I reverted that change so I was starting with the original Apple kext from my TimeMachine backup.

I've attached a copy of my original Info.plist for your reference.
fixed.
 
Last edited:
I've just applied v1.4, and before restarting I thought I'd just check the newly created Info.plist for my own sanity.

Please forgive the question, I'm not familiar with how kexts process their plists, but you seem to have changed a simple list array:

<key>MacBookPro6,2</key>
<dict>
<key>LogControl</key>
<integer>0</integer>
<key>Vendor10deDevice0a29</key>
<dict>
<key>BoostPState</key>
<array>
<integer>0</integer>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
</array>

... into a hash with key-value pairs instead:

<key>MacBookPro6,2</key>
<dict>
<key>LogControl</key>
<integer>1</integer>
<key>Vendor10deDevice0a29</key>
<dict>
<key>BoostPState</key>
<dict>
<key>0</key>
<integer>2</integer>
<key>1</key>
<integer>2</integer>
<key>2</key>
<integer>2</integer>
<key>3</key>
<integer>2</integer>
</dict>

This change of how the integer values were originally presented in the plist occurs for BoostPState, BoostTime, Threshold_High, Threshold_High_v, Threshold_Low and Threshold_Low_v in your modified file.

Having noticed this, I reverted to my original copy before restarting to avoid any potential issues.

I'm primarily a Perl programmer, so - to me - there's a fundamental difference between a list and a hash, so unless there's some underlying cleverness (that I don't know about) in the way the plist is being interpreted by the system it feels like this isn't going to work.

Would your new version have worked correctly?

Cheers
Simon
 
I've just applied v1.4, and before restarting I thought I'd just check the newly created Info.plist for my own sanity.


This change of how the integer values were originally presented in the plist occurs for BoostPState, BoostTime, Threshold_High, Threshold_High_v, Threshold_Low and Threshold_Low_v in your modified file.

Having noticed this, I reverted to my original copy before restarting to avoid any potential issues.

I'm primarily a Perl programmer, so - to me - there's a fundamental difference between a list and a hash, so unless there's some underlying cleverness (that I don't know about) in the way the plist is being interpreted by the system it feels like this isn't going to work.

Would your new version have worked correctly?

Cheers
Simon
My mistake. I sent my test file.
Coming home I send the correct one. Thank you

Fixed with the new version.
 
Last edited:
  • Like
Reactions: SimonBanton
Hey guys, new to the forum (been reading since 2009 before I got my first Mac, the mid-2010 15.4" with the 330M graphics card. I've been using my MacBook Pro since 2010 and haven't had a GPU panic that I remember. 8 years later, is a GPU panic coming and I haven't experienced it or is it that I don't use cinebench so haven't run into it?

I'm hoping to use my 2010 MacBook Pro until it stops working
 
Fixed with the new version.

Closer :) But still one issue. In your original post in this thread, these are the values you give for the Heuristic key:

<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>10</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>SensorSampleRate</key>
<integer>10000</integer>
<key>TargetCount</key>
<integer>1</integer>

In v1.5, these are what those values are set to:

<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>10000</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>SensorSampleRate</key>
<integer>10</integer>
<key>TargetCount</key>
<integer>1</integer>

... so it looks like you've got IdleInterval and SensorSampleRate the wrong way around.

Everything else looks OK apart from this.

Cheers
Simon
 
  • Like
Reactions: fabioroberto
Closer :) But still one issue. In your original post in this thread, these are the values you give for the Heuristic key:

... so it looks like you've got IdleInterval and SensorSampleRate the wrong way around.

Everything else looks OK apart from this.

Cheers
Simon
Hi, thanks for posting.
Do not worry, it's not a mistake. This apparent "inversion" corrected a KP using virtual machine (Win10) with photoshop.
Soon, I'll update my first post.

If you (or someone else) get KP with this change, please let me know.
Cheers!
 
Hi Fabio,

Thanks - your v1.5 fix is now installed and working (I performed an SMC reset and PRAM/NVRAM reset afterwards as recommended). CINEBENCH runs the OpenGL test without crashing, frame rate 10.32fps.

I really appreciate your efforts, and those of others too, in helping to identify and workaround this issue. I'm hoping to be able to have someone carry out the hardware fix eventually, I've already bought the recommended replacement capacitor (Panasonic EEFLT0D331R).

Update: 26th Nov, found someone to replace the cap and system now restored to full operation with original kext and CINEBENCH reporting 15.32fps.

Thanks again
Simon
 
Last edited:
  • Like
Reactions: fabioroberto
I am completely new to this forum, but have been following this thread for some months.



Finally decided to try the bash method, and it works!
I moved from ElCapitan 10.11.6 to High Sierra 10.13.6.

Thanks btmm a ton for suggesting a super simple fix. I can keep my MBP 2010 for at least two more years now!
and Thanks to everyone including fabioroberto, for suggesting and hacking this marvellous solution. Thanks everyone!

Here is my 2 cents contribution: :))

If you want to check that this method works (check gfx0 messages in console as suggested by fabioroberto)
then you can add following line to the bash script:

sudo plutil -replace IOKitPersonalities.AGPM.Machines.MacBookPro6,2.LogControl -integer 1 $KEXT/Contents/Info.plist

btmm did not include it in his script, but I finally hacked it ! :-D

Here is screenshot that this method works!

dumb question. How do you check in console? Since sierra, the console has changed so much and i dont see any gfx0 messages in system.log and the computer name icon
 
Well, I am still having GPU panics, so the fix did not work for me. :(
it does not work for me either. I have applied the aggressivei option and when restarting I get the distorted screen.
I will try applying the patch, turn off the computer and start to see if it is solved.

However, thank you very much for your time.
 
What you guys wrote in your posts and this YouTuber linked below is why I will never purchased a MacBook Pro until this is resolved which I don’t believe it will.

Must watch entire video...

 
Hi @fabioroberto

Currently using gfxCardStatus 1.8.1 in integrated mode. This only works without an external monitor. When I plug in an external DELL monitor, the mode switches back to NVIDIA and there is no way to switch it back to Intel HD. Will the kext fix allow me to use the external DELL monitor and prevent kernel panic?
 
Hi @fabioroberto

Currently using gfxCardStatus 1.8.1 in integrated mode. This only works without an external monitor. When I plug in an external DELL monitor, the mode switches back to NVIDIA and there is no way to switch it back to Intel HD. Will the kext fix allow me to use the external DELL monitor and prevent kernel panic?
No. The kext fix only works without an external monitor. To use an external monitor it is necessary to replace the capacitor c9560.
 
I'm still willing to be a guinea pig if anyone will help me,
since everyone told me to get lost last time i asked for help...
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.