Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

nsgr

macrumors 6502
May 22, 2017
317
117
Ah, okay. Thanks for taking the time, I'm curious to hear about your findings.

__________
Edit: hmm but it just occurred to me, the AMDRadeonX3000.kext was loaded in recovery mode.
__________

kext AMD 1.5.1 in folder /DisableExtensions - your video card AMD device id: 6740 - vendor: 1002

cd /DisableExtensions

cat AMDRadeonX3000.kext/Contents/Info.plist | grep 6740

<string>0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002</string>


AMDRadeonX3000.kext is for your AMD video card. Device ID of the AMD video card confirmed.


Update:

The strange thing is that AppleGraphicsPowerManagement.kext only reported something with device id 6740 on Imac 12.2.


cat /System/Library/Extensions/AppleGraphicsPowerManagement.kext/Contents/Info.plist


<key>iMac12,2</key>
<key>Vendor1002Device6740</key>

<dict>

<key>control-id</key>

<integer>17</integer>

<key>max-power-state</key>

<integer>2</integer>

</dict>


<key>MacBookPro8,3</key>

<dict>

<key>GFX0</key>

<dict>

<key>QSC</key>

<dict>

<key>Enabled</key>

<integer>1</integer>

<key>Mode</key>

<integer>1</integer>

<key>hwPState</key>

<array>

<integer>0</integer>

<integer>0</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>1</integer>

<integer>2</integer>

</array>

<key>qscOnTime</key>

<array>

<integer>0</integer>

<integer>1440</integer>

<integer>0</integer>

<integer>2400</integer>

<integer>4000</integer>

<integer>5760</integer>

<integer>7680</integer>

<integer>9760</integer>

<integer>0</integer>

</array>

</dict>

<key>control-id</key>

<integer>17</integer>

<key>max-power-state</key>

<integer>8</integer>

</dict>
 
Last edited:

SirMeowington5

macrumors member
May 21, 2017
95
6
Yes, I can confirm I get the same results with my kext, so the issue must lie elsewhere.

kext AMD 1.5.1 in folder /DisableExtensions - your video card AMD device id: 6740 - vendor: 1002

cd /DisableExtensions

cat AMDRadeonX3000.kext/Contents/Info.plist | grep 6740

<string>0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002</string>


AMDRadeonX3000.kext is for your AMD video card. Device ID of the AMD video card confirmed.
 

nsgr

macrumors 6502
May 22, 2017
317
117
Yes, I can confirm I get the same results with my kext, so the issue must lie elsewhere.

Your kexts AMD are AMD6000Controller.kext and AMDRadeonX3000.kext .

AMDFramebuffer.kext
and AMDSupport.kext serve for all AMD video cards.


cat AMD6000Controller.kext/Contents/Info.plist | grep 6740


<string>0x67681002 0x67701002 0x67791002 0x67601002 0x67611002 0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002 0x67381002 0x67391002 0x67201002 0x67221002 0x67181002 0x67191002 0x68401002 0x68411002 0x67041002</string>
[doublepost=1499129074][/doublepost]And I thinking that Macbook would be all the same in the settings. But some here in the forum did not even have to load the AMD kexts to solve the temperature problem.

I really would like to understand.
 
Last edited:

SirMeowington5

macrumors member
May 21, 2017
95
6
Hmm, okay, so now we have confirmation that I was loading the correct kexts.

Does the problem then come from the AppleGraphicsPowerManagement.kext?


Your kexts AMD are AMD6000Controller.kext and AMDRadeonX3000.kext .

AMDFramebuffer.kext
and AMDSupport.kext serve for all AMD video cards.


cat AMD6000Controller.kext/Contents/Info.plist | grep 6740


<string>0x67681002 0x67701002 0x67791002 0x67601002 0x67611002 0x67501002 0x67581002 0x67591002 0x67401002 0x67411002 0x67451002 0x67381002 0x67391002 0x67201002 0x67221002 0x67181002 0x67191002 0x68401002 0x68411002 0x67041002</string>
 

nsgr

macrumors 6502
May 22, 2017
317
117
Hmm, okay, so now we have confirmation that I was loading the correct kexts.

Does the problem then come from the AppleGraphicsPowerManagement.kext?

I think not. These would be default settings.

You will have to do tests by loading the kexts AMDSupport.kext and AMDFramebuffer.kext.

Then another test with AMDLegacySupport.kext and AMDLegacyFramebuffer.kext.

The AMD6000Controller.kext kexts and AMDRadeonX3000.kext should be loaded because they are specific to your AMD video card.

Do not forget, to test with another kext AMD, restart the Macbook Pro to unload the kexts AMD.

If you try the kextunload command it will probably give Kernel Panic and freeze the system. It happened to me.
 
Last edited:

SirMeowington5

macrumors member
May 21, 2017
95
6
Okay, I tried with both normal and legacy kexts with no success.

Does your AMD chip still show up in system report -> graphics or does it turn to " AMD Radeon HD 6xxx" like mine?

Also, should I be able to see AppleGraphicsPowerManagment.kext when I load kextstat? It's not showing up as loaded for me.


I think not. These would be default settings.

You will have to do tests by loading the kexts AMDSupport.kext and AMDFramebuffer.kext.

Then another test with AMDLegacySupport.kext and AMDLegacyFramebuffer.kext.

The AMD6000Controller.kext kexts and AMDRadeonX3000.kext should be loaded because they are specific to your AMD video card.

Do not forget, to test with another kext AMD, restart the Macbook Pro to unload the kexts AMD.

If you try the kextunload command it will probably give Kernel Panic and freeze the system. It happened to me.
 
Last edited:

nsgr

macrumors 6502
May 22, 2017
317
117
Okay, I tried with both normal and legacy kexts with no success.

Does your AMD chip still show up in system report -> graphics or does it turn to " AMD Radeon HD 6xxx" like mine?

Also, should I be able to see AppleGraphicsPowerManagment.kext when I load kextstat? It's not showing up as loaded for me.

Yes, show up in System Report:

About this Mac -> System Report -> Hardware -> Model Identifier: MacBookPro8,2

About this Mac -> System Report -> Graphics / Displays -> AMD Radeon HD 6750M:

Vendor: ATI (0x1002)

Device ID: 0x6741


Does not appear for me either.

kextstat | grep Graphics

com.apple.iokit.IOGraphicsFamily
(515.3) A423518D-758D-3021-A111-A59F44D760A8 <12 7 5 4 3 1>

com.apple.driver.AppleIntelSNBGraphicsFB (10.0.2) 3670FF2F-C5C6-316F-8170-8E509CB022F8 <104 12 11 7 6 5 4 3 1>

com.apple.AppleGraphicsDeviceControl (3.14.47) 396A06E0-FB78-3045-AD37-F21ED2172191 <7 6 5 4 3 1>

com.apple.driver.AppleGraphicsControl (3.14.47) E4846CE5-E177-38EE-A979-ECE8409B957D <7 5 4 3 1>

com.apple.driver.AppleIntelHD3000Graphics (10.0.2) ABFF03E6-62C4-3E62-A579-D4B183A788A2 <104 12 7 5 4 3 1


Update:

Only show Loaded in:

System Report -> Extensions -> AppleGraphicsPowerManagement -> Loaded: Yes

-------

Important:

Disable Apple Update:

System Preferences -> App Store -> Automaticaly check for Update: unchecked

This prevents Apple Update from putting the AMD kexts back into a future automatic update.

View updates in App Store (dock) -> tab Updates.

So you have more control over what will be updated in the system before downloading.
 
Last edited:

SirMeowington5

macrumors member
May 21, 2017
95
6
Very strange. I can still see the Vendor and the Device ID but the name of the graphics card is messed up for me.

I tried manually loading AppleGraphicsPowerManagement.kext using sudo kextutil -r /System/Library/Extensions AppleGraphicsPowerManagement.kext. It still doesn't show up in kextstat and as far as I can tell my thermals aren't affected.

Ah okay, I can see it in System Report as loaded.


Yes, show up in System Report:

About this Mac -> System Report -> Hardware -> Model Identifier: MacBookPro8,2

About this Mac -> System Report -> Graphics / Displays -> AMD Radeon HD 6750M:

Vendor: ATI (0x1002)

Device ID: 0x6741


Does not appear for me either.

kextstat | grep Graphics

com.apple.iokit.IOGraphicsFamily
(515.3) A423518D-758D-3021-A111-A59F44D760A8 <12 7 5 4 3 1>

com.apple.driver.AppleIntelSNBGraphicsFB (10.0.2) 3670FF2F-C5C6-316F-8170-8E509CB022F8 <104 12 11 7 6 5 4 3 1>

com.apple.AppleGraphicsDeviceControl (3.14.47) 396A06E0-FB78-3045-AD37-F21ED2172191 <7 6 5 4 3 1>

com.apple.driver.AppleGraphicsControl (3.14.47) E4846CE5-E177-38EE-A979-ECE8409B957D <7 5 4 3 1>

com.apple.driver.AppleIntelHD3000Graphics (10.0.2) ABFF03E6-62C4-3E62-A579-D4B183A788A2 <104 12 7 5 4 3 1
 

nsgr

macrumors 6502
May 22, 2017
317
117
Very strange. I can still see the Vendor and the Device ID but the name of the graphics card is messed up for me.

I tried manually loading AppleGraphicsPowerManagement.kext using sudo kextutil -r /System/Library/Extensions AppleGraphicsPowerManagement.kext. It still doesn't show up in kextstat and as far as I can tell my thermals aren't affected.

Ah okay, I can see it in System Report as loaded.


Kexts inside /System/Library/Extensions do not need the -r option to load.

Only need:

sudo kextload /System/Library/Extensions/AppleGraphicsPowerManagement.kext

This kext will not be shown with kextstat. Mysteries of Apple.
 

nsgr

macrumors 6502
May 22, 2017
317
117
File with the thermal settings.

/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

Macbook Pro 8,3 :

/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacBookPro8_3.plist

Use Plistedit - view plist file
https://www.fatcatsoftware.com/plisteditpro/

https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip


1 - This file has a connection with the SMC.

Have you tried resetting SMC?

Reset the SMC on Mac notebook computers:

https://support.apple.com/en-us/HT201295


Using the built-in keyboard, press Shift-Control-Option on the left side of the keyboard, then press the power button at the same time. Hold these keys and the power button for 10 seconds.


2 - Have you tried clear NVRAM? I do not know if there is in your NVRAM the gpu-active and gpu-policy variables. They may be not letting the AMD kexts work properly.

sudo nvram -c


My NVRAM:

sudo nvram -p
bluetoothInternalControllerInfo %1a.......

fmm-computer-name xxxxxx

bluetoothActiveControllerInfo %1a....

SystemAudioVolumeDB 4

SystemAudioVolume %db

backlight-level %d3%00

boot-args -v


3 - Have you tried load AMD kexts 1.4.8 from macOS Sierra 10.12.2 Combo Update - with kextutil -r option?

Example kexts AMD 1.4.8 in folder DisableExtensions-kexts-1.4.8:

Load first AMDRadeonX3000.kext and see what kexts AMD it loads as dependency.


cd /DisableExtensions-kexts-1.4.8

kextutil -r /DisableExtensions-kexts-1.4.8 AMDRadeonX3000.kext

kextstat | grep AMD


3 months ago, when my Macbook Pro did not have the AMD GPU problem, I did a kextstat and saw only these AMD kexts loaded. Normal temperature 36 degrees Celsius.

gfxcardstatus -> Integrated Only

AMDRadeonX3000.kext

AMDLegacySupport.kext

AMDLegacyFramebuffer.kext


I think the AMD kexts work this way. It's just a guess. See the result of the ioreg command below (power-state, ActiveGPU).

GPU AMD active -> mac os system -> load AMD6000Controller.kext -> PowerState up GPU AMD.

GPU integrated Intel active -> mac os system -> load AMDRadeonX3000.kext -> PowerState down GPU AMD.


But if none of the AMD kexts are loaded, then the AMD GPU stays on all the time.

The AMD kext that actually lowered the temperature was AMDRadeonX3000.kext. This kext decreased by 15 degrees Celsius on my test.


Macbook Pro 8,2 - AMD Radeon HD 6750M - vendor: 1002 - device id: 6741

ioreg -l "MacBookPro8" | grep IGPU

| | | "PCITopLevel" = ("MCHC","P0P2","PEG1","IGPU","UHC5","EHC2","HDEF","RP01","RP02","RP03","UHC1","EHC1","LPCB","SATA","SBUS")

| | | "IOPPFDiagDict" = {"ResourceName"="MacBookPro8_2.plist","IGPUPLimitDict"={"SecondaryGPU"=Yes,"pMax"=0,"pMin"=15,"currentLimit"=0,"handlerRegistered"=Yes},"DownstreamASPM"={"featureSupported"=Yes,"handlerRegistered"=Yes},"EGPUPLimitDict"={"pMax"=0,"pMin"=8,"PrimaryGPU"=Yes,"currentLimit"=0,"handlerRegistered"=Yes},"CPUPLimitDict"={"handlerRegistered"=Yes,"currentLimit"=0,"pMin"=25,"pMax"=0},"IdlePLimitDict"={"handlerRegistered"=Yes,"currentLimit"=0,"pMin"=14,"pMax"=0},"UpstreamASPM"={"featureSupported"=Yes,"handlerRegistered"=Yes},"PLimitVersion"=2}

| | "Machine" = {"MacBookPro8,2"={"IGPU"={"max-power-state"=15,"min-power-state"=0,"control-id"=16,"Heuristic"={"EvaluateUpInterval"=66000,"BusyDownThresholdPercent"=70,"BusyUpThresholdPercent"=90,"DiagnosticModeDefault"=0,"SensorOption"=1,"EvaluateDownInterval"=350000,"ID"=2}},"Vendor1002Device6741"={"QSC"={"qscOnTime"=(0,1440,0,2400,4000,5760,7680,9760,0),"Mode"=1,"Enabled"=1,"hwPState"=(0,0,1,1,1,1,1,1,2)},"control-id"=17,"max-power-state"=8},"Vendor1002Device6760"={"QSC"={"qscOnTime"=(0,2240,3520,0,3680,4960,6720,9120,0),"Mode"=1,"Enabled"=1,"hwPState"=(0,0,0,1,1,1,1,1,2)},"control-id"=17,"max-power-state"=8}}}
.
.
.
| | | "ActiveGPU" = "IGPU"
 
Last edited:

SirMeowington5

macrumors member
May 21, 2017
95
6
Doesn't resetting the SMC/NVRAM undo the initial fix of moving the kext files out of the Extensions folder?

I tried kextuil -r for the 1.4.8 kexts I pulled from the combo update and also for the 1.5.0 kexts I took from Recovery Mode.

Sudo nvram -p does not show anything with gpu.

bluetoothInternalControllerInfo %1a%82%ac%05%000%11%fa%b8%8d%12@%7f%93
bluetoothActiveControllerInfo %1a%82%ac%05%00%00%000%11%fa%b8%8d%12@%7f%93
SystemAudioVolumeDB %e4
SystemAudioVolume :
backlight-level %ff%03
csr-active-config %10%00%00%00


MacBook-Pro:AMD_1.4.8_Kexts ****$ sudo kextutil -r /AMD_1.4.8_Kexts AMDRadeonX3000.kext

(kernel) kxld[com.apple.AMDRadeonX3000]: The following symbols are unresolved for this kext:

(kernel) kxld[com.apple.AMDRadeonX3000]: __ZN23IOAccelSharedNamespace24initEP22IOGraphicsAccelerator2P4taskP11IOAccelTask

(kernel) Can't load kext com.apple.AMDRadeonX3000 - link failed.

(kernel) Failed to load executable for kext com.apple.AMDRadeonX3000.

(kernel) Kext com.apple.AMDRadeonX3000 failed to load (0xdc008016).

(kernel) Failed to load kext com.apple.AMDRadeonX3000 (error 0xdc008016).

Failed to load AMDRadeonX3000.kext - (libkern/kext) link error.

Check library declarations for your kext with kextlibs(8).x

MacBook-Pro:AMD_Temperature_Kexts ****$ sudo kextutil -r /AMD_1.5.0_Kexts/ AMDRadeonX3000.kext

Diagnostics for AMDRadeonX3000.kext:

Authentication Failures:

File owner/permissions are incorrect (must be root:wheel, nonwritable by group/other):

AMDRadeonX3000.kext

Contents

_CodeSignature

CodeResources

Info.plist

MacOS

AMDRadeonX3000

PkgInfo

version.plistxxxx


MacBook-Pro:~ ****$ ioreg -l "MacBookPro8" | grep IGPU

| | | "PCITopLevel" = ("MCHC","P0P2","PEG1","IGPU","UHC5","EHC2","HDEF","RP01","RP02","RP03","RP04","UHC1","EHC1","LPCB","SATA","SBUS")

| | | "IOPPFDiagDict" = {"ResourceName"="MacBookPro8_3.plist","IGPUPLimitDict"={"SecondaryGPU"=Yes,"pMax"=0,"pMin"=15,"currentLimit"=0,"handlerRegistered"=Yes},"DownstreamASPM"={"featureSupported"=Yes,"handlerRegistered"=Yes},"EGPUPLimitDict"={"pMax"=0,"pMin"=8,"PrimaryGPU"=Yes,"currentLimit"=0,"handlerRegistered"=Yes},"CPUPLimitDict"={"handlerRegistered"=Yes,"currentLimit"=0,"pMin"=27,"pMax"=0},"IdlePLimitDict"={"handlerRegistered"=Yes,"currentLimit"=0,"pMin"=14,"pMax"=0},"UpstreamASPM"={"featureSupported"=Yes,"handlerRegistered"=Yes},"PLimitVersion"=2}

| | "Machine" = {"MacBookPro8,3"={"IGPU"={"max-power-state"=15,"min-power-state"=0,"control-id"=16,"Heuristic"={"EvaluateUpInterval"=66000,"BusyDownThresholdPercent"=70,"BusyUpThresholdPercent"=90,"DiagnosticModeDefault"=0,"SensorOption"=1,"EvaluateDownInterval"=350000,"ID"=2}},"GFX0"={"QSC"={"qscOnTime"=(0,1440,0,2400,4000,5760,7680,9760,0),"Mode"=1,"Enabled"=1,"hwPState"=(0,0,1,1,1,1,1,1,2)},"control-id"=17,"max-power-state"=8}}}

| | +-o IGPU@2 <class IOPCIDevice, id 0x1000001ab, registered, matched, active, busy 0 (448 ms), retain 21>

| | | | "compatible" = <"pci106b,de","pci8086,126","pciclass,030000","IGPU">

| | | | "attached-gpu-control-path" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/AGPM"

| | | | "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((5291294645182070784,4295098369," First Level Interrupt Handler Count"),(5291294645182070785,4295098369," Second Level Interrupt Handler Count"),(5291294645182070786,4295098369," First Level Interrupt Handler Time (MATUs)"),(5291294645182070787,4295098369," Second Level Interrupt Handler CPU Time (MATUs)"),(5291294645182070788,4295098369,"Second Level Interrupt Handler System Time (MATUs)")),"IOReportChannelInfo"={"IOReportChannelUnit"=0},"IOReportSubGroupName"="IGPU 1"})

| | | | "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/IGPU@20000"

| | | | | "IOAccelTypes" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/Gen6Accelerator"

| | | | | "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-610-9ccd"

| | | "ActiveGPU" = "IGPU"








File with the thermal settings.

/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

Macbook Pro 8,3 :

/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/MacBookPro8_3.plist

Use Plistedit - view plist file
https://www.fatcatsoftware.com/plisteditpro/

https://www.fatcatsoftware.com/plisteditpro/PlistEditPro.zip


1 - This file has a connection with the SMC.

Have you tried resetting SMC?

Reset the SMC on Mac notebook computers:

https://support.apple.com/en-us/HT201295


Using the built-in keyboard, press Shift-Control-Option on the left side of the keyboard, then press the power button at the same time. Hold these keys and the power button for 10 seconds.


2 - Have you tried clear NVRAM? I do not know if there is in your NVRAM the gpu-active and gpu-policy variables. They may be not letting the AMD kexts work properly.

sudo nvram -c


My NVRAM:

sudo nvram -p
bluetoothInternalControllerInfo %1a.......

fmm-computer-name xxxxxx

bluetoothActiveControllerInfo %1a....

SystemAudioVolumeDB 4

SystemAudioVolume %db

backlight-level %d3%00

boot-args -v


3 - Have you tried load AMD kexts 1.4.8 from macOS Sierra 10.12.2 Combo Update - with kextutil -r option?

Example kexts AMD 1.4.8 in folder DisableExtensions-kexts-1.4.8:

Load first AMDRadeonX3000.kext and see what kexts AMD it loads as dependency.


cd /DisableExtensions-kexts-1.4.8

kextutil -r /DisableExtensions-kexts-1.4.8 AMDRadeonX3000.kext

kextstat | grep AMD


3 months ago, when my Macbook Pro did not have the AMD GPU problem, I did a kextstat and saw only these AMD kexts loaded. Normal temperature 36 degrees Celsius.

gfxcardstatus -> Integrated Only

AMDRadeonX3000.kext

AMDLegacySupport.kext

AMDLegacyFramebuffer.kext


I think the AMD kexts work this way. It's just a guess. See the result of the ioreg command below (power-state, ActiveGPU).

GPU AMD active -> mac os system -> load AMD6000Controller.kext -> PowerState up GPU AMD.

GPU integrated Intel active -> mac os system -> load AMDRadeonX3000.kext -> PowerState down GPU AMD.


But if none of the AMD kexts are loaded, then the AMD GPU stays on all the time.

The AMD kext that actually lowered the temperature was AMDRadeonX3000.kext. This kext decreased by 15 degrees Celsius on my test.


Macbook Pro 8,2 - AMD Radeon HD 6750M - vendor: 1002 - device id: 6741

ioreg -l "MacBookPro8" | grep IGPU

| | | "PCITopLevel" = ("MCHC","P0P2","PEG1","IGPU","UHC5","EHC2","HDEF","RP01","RP02","RP03","UHC1","EHC1","LPCB","SATA","SBUS")

| | | "IOPPFDiagDict" = {"ResourceName"="MacBookPro8_2.plist","IGPUPLimitDict"={"SecondaryGPU"=Yes,"pMax"=0,"pMin"=15,"currentLimit"=0,"handlerRegistered"=Yes},"DownstreamASPM"={"featureSupported"=Yes,"handlerRegistered"=Yes},"EGPUPLimitDict"={"pMax"=0,"pMin"=8,"PrimaryGPU"=Yes,"currentLimit"=0,"handlerRegistered"=Yes},"CPUPLimitDict"={"handlerRegistered"=Yes,"currentLimit"=0,"pMin"=25,"pMax"=0},"IdlePLimitDict"={"handlerRegistered"=Yes,"currentLimit"=0,"pMin"=14,"pMax"=0},"UpstreamASPM"={"featureSupported"=Yes,"handlerRegistered"=Yes},"PLimitVersion"=2}

| | "Machine" = {"MacBookPro8,2"={"IGPU"={"max-power-state"=15,"min-power-state"=0,"control-id"=16,"Heuristic"={"EvaluateUpInterval"=66000,"BusyDownThresholdPercent"=70,"BusyUpThresholdPercent"=90,"DiagnosticModeDefault"=0,"SensorOption"=1,"EvaluateDownInterval"=350000,"ID"=2}},"Vendor1002Device6741"={"QSC"={"qscOnTime"=(0,1440,0,2400,4000,5760,7680,9760,0),"Mode"=1,"Enabled"=1,"hwPState"=(0,0,1,1,1,1,1,1,2)},"control-id"=17,"max-power-state"=8},"Vendor1002Device6760"={"QSC"={"qscOnTime"=(0,2240,3520,0,3680,4960,6720,9120,0),"Mode"=1,"Enabled"=1,"hwPState"=(0,0,0,1,1,1,1,1,2)},"control-id"=17,"max-power-state"=8}}}
.
.
.
| | | "ActiveGPU" = "IGPU"
 
Last edited:

rlebleu

macrumors member
Jul 1, 2017
52
5
Doesn't resetting the SMC/NVRAM undo the initial fix of moving the kext files out of the Extensions folder?


I believe it does. But I quickly restored the Integrated GPU with:

Single-User mode (Command + S) with red background screen and white stripes.


sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

But right after I executed nvram -p, it did not show this setting... Perhaps -p does not display all nvram settings?

I don't think reseting smc and nvram moves any files in and out of Extensions... At the time, all my AMD Kexts had been moved to AMD_Kexts, so reseting SMC and NVRAM did not move anything in Extensions. But I'm pretty sure it initialized a number of other possible variables that control the boot process...

I'm learning so much from this conversation you are having with nsgr... It's better than watching a Mystery on TV! Can't wait for the next episode... :)
 
  • Like
Reactions: SirMeowington5

SirMeowington5

macrumors member
May 21, 2017
95
6
Well, the mystery continues Rlebleu, I reset both the SMC & NVRAM then tried loading the 1.5.1 kexts. No success unfortunately, still running very hot.

 

rlebleu

macrumors member
Jul 1, 2017
52
5
Oh! I am not using the 1.51 kexts! I thought those were the ones that permitted the MBP to choose the AMD GPU to startup? All 1.51 kexts were moved to AMD_Kexts folder, and 1.44 versions taken from a Sierra USB boot disk were copied to Extensions. Only the AMDRadeonX3000 kext was loaded manually from AMD_Kexts. When I tried to put it in the Extensions folder with the 1.44 kexts, I ran into an MBP attempt to use AMD graphics...

1.44 versions of

AMDRadeonX3000.kext
AMDSupport.kext
AMDFramebuffer.kext

Load automatically from being in the /Systems/Library/Extensions folder.

AMDRadeonX3000.kext is loaded via terminal after the system has booted. This has to be repeated every reboot. Since I use safe sleep mode, I seldom reboot, so I'm all set to go when I lift the lid...
 

SirMeowington5

macrumors member
May 21, 2017
95
6
Unfortunately I'm using the 1.5.1 versions because both the 1.4.8 kexts I retrieved from the Sierra installer and the 1.5.0 kexts I retrieved from Recovery Mode have some kind of permissions issue and I can't load them no matter what I try.

+++++

Edit: I just successfully loaded 1.4.8 versions using sudo kextutil -r /.../ of AMDSupport.kext, AMDFramebuffer.kext & AMD6000Controller.kext followed by 1.5.1 version of AMDRadeonX3000.kext.

But still no sign of improved thermals unfortunately.




Oh! I am not using the 1.51 kexts! I thought those were the ones that permitted the MBP to choose the AMD GPU to startup? All 1.51 kexts were moved to AMD_Kexts folder, and 1.44 versions taken from a Sierra USB boot disk were copied to Extensions. Only the AMDRadeonX3000 kext was loaded manually from AMD_Kexts. When I tried to put it in the Extensions folder with the 1.44 kexts, I ran into an MBP attempt to use AMD graphics...

1.44 versions of

AMDRadeonX3000.kext
AMDSupport.kext
AMDFramebuffer.kext


Load automatically from being in the /Systems/Library/Extensions folder.

AMDRadeonX3000.kext is loaded via terminal after the system has booted. This has to be repeated every reboot. Since I use safe sleep mode, I seldom reboot, so I'm all set to go when I lift the lid...
 
Last edited:

rlebleu

macrumors member
Jul 1, 2017
52
5
Unfortunately I'm using the 1.5.1 versions because both the 1.4.8 kexts I retrieved from the Sierra installer and the 1.5.0 kexts I retrieved from Recovery Mode have some kind of permissions issue and I can't load them no matter what I try.

I'd be happy to share my 1.44 versions, but I think we have different versions of Discrete Graphics.. I have a HD 6750 (Id 6741) and I think you have a HD 6770? (Id 6740). My Sys ID is MacbookPro8_2 and yours is MacbookPro8_3?
 

SirMeowington5

macrumors member
May 21, 2017
95
6
Correct, we have different versions unfortunately. I'll download the oldest version of Sierra, the one you used I believe(?) and attempt to use those.

++++++++++
Eh, 10.12.1 is the oldest version I can find in their support downloads section. I'll have to give that one a shot.

++++++++++
They were version 1.4.6

I loaded the Support, Framebuffer & 6000Controller kexts from it plus the 1.5.1 RadeonX3000 kext, still sitting at about 50-54C idle.

Maybe @nsgr can chime in here too. Do you guys think there is a difference between simply extracting the kexts from the Sierra package and actually booting into it from a USB stick and then using terminal to move them over?


I'd be happy to share my 1.44 versions, but I think we have different versions of Discrete Graphics.. I have a HD 6750 (Id 6741) and I think you have a HD 6770? (Id 6740). My Sys ID is MacbookPro8_2 and yours is MacbookPro8_3?
 
Last edited:

Dewdman42

macrumors 6502a
Jul 25, 2008
511
103
whew...what a thread! First huge thank you to AppleMacFinder for this fix... a couple quick questions..

  1. I have seen instructions to boot in single user mode (OSX) and use the nvram command to change the gpu power policy variable. This is monumentally simpler then using the linux approach that has been suggested on this thread, but the question I have is, do both approaches produce the same result or is there something better or more permanent about the the linux approach for setting the gpu power policy variable?
  2. If I have any problem can I simply do an nvram or pram reset or something to get my machine back to factory settings?
  3. I also see gpu-policy and gpu-active as a couple of variables in nvram...anyone know how they are related?
  4. I'm actually on a 2010 MBP with nVidia. gfxCardStatus has pretty much solved my problem for now as the nVidia seems to be less problematic then AMD, I'm not sure why. I'm just wondering about this nvram trick as a bit more permanent solution, and also even with gfxCardStatus, it does not default to integrated-only on boot...and also OSX switches to discrete graphics when exiting apps (gfxCardStatus quickly changes back to integrated). So the nvram trick seems much more stable to me, even with the nVidia, I just want to be sure before I try it.
Someone really needs to make a webpage FAQ on this subject with the definitive solution for each MBP model known to have this problem...its quite confusing to follow this thread and know for sure what to do. Its unbelievable that Apple hasn't provided this solution.
 
  • Like
Reactions: tommyball

SirMeowington5

macrumors member
May 21, 2017
95
6
1. I'm not 100% certain but I think the Linux method might give more control over disabling the AMD chip. Currently asking around in some Linux hubs if they can confirm because it's not looking like I'll be able to get my thermal issue under control in MacOS.

2. From what I understand an nvram reset will not fully restore your machine back to factory settings, you will have to manually move back all the kexts you moved away following AppleMacFinder's guide.

3. Can't help you here, sorry.

4. It is a bit more of a permanent solution (at least for our AMD chips). You can even use gfxCardStatus to try and switch to discrete only and the MacBook will still remain on integrated. I accidentally miss clicked the toggle to discrete earlier, it remained on integrated and my MacBook didn't crash (I used gfxCardStatus to swap to discrete only before applying the fix to confirm the issue with the AMD chip and I used to crash instantly when doing so).



whew...what a thread! First huge thank you to AppleMacFinder for this fix... a couple quick questions..

  1. I have seen instructions to boot in single user mode (OSX) and use the nvram command to change the gpu power policy variable. This is monumentally simpler then using the linux approach that has been suggested on this thread, but the question I have is, do both approaches produce the same result or is there something better or more permanent about the the linux approach for setting the gpu power policy variable?
  2. If I have any problem can I simply do an nvram or pram reset or something to get my machine back to factory settings?
  3. I also see gpu-policy and gpu-active as a couple of variables in nvram...anyone know how they are related?
  4. I'm actually on a 2010 MBP with nVidia. gfxCardStatus has pretty much solved my problem for now as the nVidia seems to be less problematic then AMD, I'm not sure why. I'm just wondering about this nvram trick as a bit more permanent solution, and also even with gfxCardStatus, it does not default to integrated-only on boot...and also OSX switches to discrete graphics when exiting apps (gfxCardStatus quickly changes back to integrated). So the nvram trick seems much more stable to me, even with the nVidia, I just want to be sure before I try it.
Someone really needs to make a webpage FAQ on this subject with the definitive solution for each MBP model known to have this problem...its quite confusing to follow this thread and know for sure what to do. Its unbelievable that Apple hasn't provided this solution.
 

nsgr

macrumors 6502
May 22, 2017
317
117

Show in nvram -p - It is not effective to switch to the Intel video card.

sudo nvram gpu-power-prefs=%01%00%00%00


Not show in nvram -p - Effective to switch to the Intel video card.

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00


To modify EFI, you have to follow the rule - specific to gpu-power-prefs:

sudo nvram GUID:NVRAM_variable=value_in_hexadecimal



GUID: fa4ce28d-b62f-4c99-9cc3-6815686e30f9

NVRAM_variable: gpu-power-prefs

Value in Hexadecimal with nvram (%): %01%00%00%00

%01%00%00%00
it's equivalent to printf ArchLinux \x07\x00\x00\x00\x01\x00\x00\x00

%01%00%00%00
= Intel video card

%00%00%00%00
= AMD video card

printf
ArchLinux \x07\x00\x00\x00\x01\x00\x00\x00 = Intel video card

printf
ArchLinux \x07\x00\x00\x00\x00\x00\x00\x00 = AMD video card


When you use

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00


then gpu-power-prefs is stored in /sys/firmware/efi/efivars/ with value \x07\x00\x00\x00\x01\x00\x00\x00 .


Reset SMC and clear NVRAM do not move any kext on partition.

Reset NVRAM do not move any kext on partition.

Reset SMC = restore SMC from factory values

Clear NVRAM = nvram -c -> c equal Clear - Do not touch the EFI partition.

------------------
Reset NVRAM / PRAM = restore EFI from factory NVRAM Variables and values. Erase gpu-power-prefs, gpu-policy, gpu-active from EFI -> switch to AMD video card (red background screen with white stripes).

Immediately press and hold the Option-Command-P-R keys, before the black screen with the Apple logo appears.

https://support.apple.com/kb/PH25631?locale=en_US

Then :

ArchLinux -> printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9

chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"

reboot

Or

Mac OS X -> Single User Mode (Command + S)

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

reboot


[doublepost=1499196808][/doublepost]
Unfortunately I'm using the 1.5.1 versions because both the 1.4.8 kexts I retrieved from the Sierra installer and the 1.5.0 kexts I retrieved from Recovery Mode have some kind of permissions issue and I can't load them no matter what I try.

+++++

Edit: I just successfully loaded 1.4.8 versions using sudo kextutil -r /.../ of AMDSupport.kext, AMDFramebuffer.kext & AMD6000Controller.kext followed by 1.5.1 version of AMDRadeonX3000.kext.

But still no sign of improved thermals unfortunately.


The USB Stick on which you copied the kexts was formatted for which filesystem?

If FAT32 file system, then the permissions are not preserved.

The pendrive must be formatted as a Mac OS Extended file system.

Change kext permissions on hard disk - Example kexts 1.4.8 in folder /DisableExtensions-1.4.8

cd /DisableExtensions-1.4.8

sudo chmod -R 755 AMDRadeonX3000.kext

sudo chown -R root:wheel AMDRadeonX3000.kext

Repeat for others AMD kexts - AMD6000Controller, AMDFramebuffer, AMDSupport, AMDLegacyFramebuffer, AMDLegacySupport

http://osxdaily.com/2012/01/12/how-to-manually-install-kernel-extensions-in-mac-os-x/
 
Last edited:

SirMeowington5

macrumors member
May 21, 2017
95
6
Are these instructions or just your findings from experimenting?

I first shut down the computer and reset the SMC. Then I reset the NVRAM using Option-Command-P-R which brought back the artifacts on my screen (short green horizontal lines in numerous vertical columns).

I then loaded up Single User Mode and ran sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 followed by reboot.

The USB stick was formatted to Fat32.



Show in nvram -p - It is not effective to switch to the Intel video card.

sudo nvram gpu-power-prefs=%01%00%00%00


Not show in nvram -p - Effective to switch to the Intel video card.

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00


To modify EFI, you have to follow the rule - specific to gpu-power-prefs:

sudo nvram GUID:NVRAM_variable=value_in_hexadecimal



GUID: fa4ce28d-b62f-4c99-9cc3-6815686e30f9

NVRAM_variable: gpu-power-prefs

Value in Hexadecimal with nvram (%): %01%00%00%00

%01%00%00%00
it's equivalent to printf ArchLinux \x07\x00\x00\x00\x01\x00\x00\x00

%01%00%00%00
= Intel video card

%00%00%00%00
= AMD video card

printf
ArchLinux \x07\x00\x00\x00\x01\x00\x00\x00 = Intel video card

printf
ArchLinux \x07\x00\x00\x00\x00\x00\x00\x00 = AMD video card


When you use

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00


then gpu-power-prefs is stored in /sys/firmware/efi/efivars/ with value \x07\x00\x00\x00\x01\x00\x00\x00 .


Reset SMC and clear NVRAM do not move any kext on partition.

Reset NVRAM do not move any kext on partition.

Reset SMC = restore SMC from factory values

Clear NVRAM = nvram -c -> c equal Clear - Do not touch the EFI partition.

------------------
Reset NVRAM / PRAM = restore EFI from factory NVRAM Variables and values. Erase gpu-power-prefs, gpu-policy, gpu-active from EFI -> switch to AMD video card (red background screen with white stripes).

Immediately press and hold the Option-Command-P-R keys, before the black screen with the Apple logo appears.

https://support.apple.com/kb/PH25631?locale=en_US

Then :

ArchLinux -> printf "\x07\x00\x00\x00\x01\x00\x00\x00" > /sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9

chattr +i "/sys/firmware/efi/efivars/gpu-power-prefs-fa4ce28d-b62f-4c99-9cc3-6815686e30f9"

reboot

Or

Mac OS X -> Single User Mode (Command + S)

sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00

reboot
 

nsgr

macrumors 6502
May 22, 2017
317
117
Are these instructions or just your findings from experimenting?

I first shut down the computer and reset the SMC. Then I reset the NVRAM using Option-Command-P-R which brought back the artifacts on my screen (short green horizontal lines in numerous vertical columns).

I then loaded up Single User Mode and ran sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 followed by reboot.

The USB stick was formatted to Fat32.

When I go to install the Mac OS system, I first do the SMC reset and the NVRAM / PRAM reset.

Then Single User Mode (Command + S) -> sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 followed by reboot.

I have done these procedures several times.
 

Dewdman42

macrumors 6502a
Jul 25, 2008
511
103
ok I tried the nvram method on my 2010 15" MBP (nVideo discrete). It does not work. I followed the above instructions, including the nvram reset before setting the variable. reboot. After reboot, the mac starts up, but as soon as I run LogicPro, a program that I know will try to use discrete graphics if available, I can see from another monitor app that discrete graphics are still being enabled. When I quit Logic, the screen goes completely black...but the computer is not crashed, as i hit the mouse button I can hear sounds and stuff, but it effectively made the mac useless with a dark screen. gfxCardStatus was not running during that test.

In another test I launch gfxCardStatus and that causes the screen to go black, while the above 01000000 setting is set.

Fortunately, performing nvram reset brings everything back to normal and gfxCardStatus is still working well as before.

Either there is something else missing, or this hack does not work with 2010 MBP's that have nvidia card This appears to be useful only for the AMD GPU cards.
 

SirMeowington5

macrumors member
May 21, 2017
95
6
Okay, this is exactly what I did before loading MacOS and loading the 1.5.1, 1.4.8 and 1.4.6 kexts but my thermal issue was still there.


When I go to install the Mac OS system, I first do the SMC reset and the NVRAM / PRAM reset.

Then Single User Mode (Command + S) -> sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 followed by reboot.

I have done these procedures several times.
 

nsgr

macrumors 6502
May 22, 2017
317
117
ok I tried the nvram method on my 2010 15" MBP (nVideo discrete). It does not work. I followed the above instructions, including the nvram reset before setting the variable. reboot. After reboot, the mac starts up, but as soon as I run LogicPro, a program that I know will try to use discrete graphics if available, I can see from another monitor app that discrete graphics are still being enabled. When I quit Logic, the screen goes completely black...but the computer is not crashed, as i hit the mouse button I can hear sounds and stuff, but it effectively made the mac useless with a dark screen. gfxCardStatus was not running during that test.

In another test I launch gfxCardStatus and that causes the screen to go black, while the above 01000000 setting is set.

Fortunately, performing nvram reset brings everything back to normal and gfxCardStatus is still working well as before.

Either there is something else missing, or this hack does not work with 2010 MBP's that have nvidia card This appears to be useful only for the AMD GPU cards.

Name and version for your Mac OS?

My Macbook Pro 2011 - AMD video - Sierra 10.12.5 -> gfxcardstatus 2.4.3.i Steve Schow
https://github.com/steveschow/gfxCardStatus/releases/tag/v2.4.3i

I do not know what the GUID for Macbook Pro 2010 would be for sure.

I think the GUID for gpu-power-prefs is an Apple standard for all Macbooks Pro. I think but I'm not sure.

This Macbook Pro 2014 with Nvidia has the same GUI gpu-power-prefs Macbook Pro 2011 with AMD video.

https://github.com/ah-/gmux-scripts/issues/1#issuecomment-68113930
[doublepost=1499199162][/doublepost]
Okay, this is exactly what I did before loading MacOS and loading the 1.5.1, 1.4.8 and 1.4.6 kexts but my thermal issue was still there.

When you switch to Only Discrete on gfxcardstatus, does it remain as GPU: Intel HD 3000?
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.