Contribute
Register

Editing AGPM to prevent GTX4XX Freeze

Status
Not open for further replies.
You need to delete two Kext in /S/L/E
AppleTyMCEDriver.kext
AppleUpstreamUserClient.kext

Than you will be able to boot with MacPro4,1 or MacPro5,1

Ed
 
Edkroket said:
You need to delete two Kext in /S/L/E
AppleTyMCEDriver.kext
AppleUpstreamUserClient.kext

Than you will be able to boot with MacPro4,1 or MacPro5,1

Ed

Ah, thanks. I am able to boot into MacPro4,1 or 5,1 now. However, it's still not loading AGPM.

I do see this message in console though: 1/17/12 7:44:34.272 AM [0x0-0x28028].ru.cvad.KextUtility: Can't read info dictionary for AppleGraphicsPowerManagement.kext: IOCFUnserialize: syntax error near line 2685.

Not sure what that means, but I'm guessing it's related...
 
chace90 said:
1/17/12 7:44:34.272 AM [0x0-0x28028].ru.cvad.KextUtility: Can't read info dictionary for AppleGraphicsPowerManagement.kext: IOCFUnserialize: syntax error near line 2685.

i think that means that you have made a typo while editing the agpm kext
 
RastaFeri said:
i think that means that you have made a typo while editing the agpm kext

Yeah, I'm gonna restore it from my MacBook Pro and edit it again. Probably delete all the unused system profiles that I don't need (xserver, macbookpro, etc). Will let you know the results!
 
Got AGPM working!

1. Restored the kext from my MacBook Pro
2. Edited the info.plist file under MacPro4,1 & 5,1 (used the settings from the very first post, but subbed in my Device ID)
3. Removed the AppleTyMCEDriver.kext and AppleUpstreamUserClient.kext (backed up, of course)
4. Rebuilt kext cache
5. Booted with MacPro 5,1 as my smbios.plist

Last step will be to edit my AGPM to the settings that will work best for my GPU. :)
 
Thanks Edkroket. I manage to change to MacPro4,1 and get AGPM to work.

I've done some testing and here are my findings: since the only 100% sure way to avoid fermi freeze is to run CUDATest or something of a kind to sweat your GPU, I have followed AGPM logs in console. Basically CUDATest.app keeps it in 0-2 range. It hits state 2 rarely. It shows in log but just for a second. On the other hand, when I had edited AGPM to stick with state 2 I have found that UI is not as fluent as when CUDATest is running, so I've concluded that CUDATest keeps the card in state 1.
So I edited AGPM to stick with states 0 and 1, and I am still testing to see if the freeze will happen.

Here is the edit for GTS-450 (deviceid 0dc4)

Code:
	<key>Vendor10deDevice0dc4</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>50</integer>
							<integer>100</integer>
							<integer>140</integer>
							<integer>160</integer>
						</array>
						<key>Threshold_Low</key>
						<array>
							<integer>0</integer>
							<integer>40</integer>
							<integer>130</integer>
							<integer>150</integer>
						</array>
					</dict>
					<key>LogControl</key>
					<integer>0</integer>
				</dict>

This keeps it in 0-1 range as CUDATest does.
 
Placebo81 said:
Thanks Edkroket. I manage to change to MacPro4,1 and get AGPM to work.

I've done some testing and here are my findings: since the only 100% sure way to avoid fermi freeze is to run CUDATest or something of a kind to sweat your GPU, I have followed AGPM logs in console. Basically CUDATest.app keeps it in 0-2 range. It hits state 2 rarely. It shows in log but just for a second. On the other hand, when I had edited AGPM to stick with state 2 I have found that UI is not as fluent as when CUDATest is running, so I've concluded that CUDATest keeps the card in state 1.
So I edited AGPM to stick with states 0 and 1, and I am still testing to see if the freeze will happen.

Here is the edit for GTS-450 (deviceid 0dc4)

Code:
	<key>Vendor10deDevice0dc4</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>50</integer>
							<integer>100</integer>
							<integer>140</integer>
							<integer>160</integer>
						</array>
						<key>Threshold_Low</key>
						<array>
							<integer>0</integer>
							<integer>40</integer>
							<integer>130</integer>
							<integer>150</integer>
						</array>
					</dict>
					<key>LogControl</key>
					<integer>0</integer>
				</dict>

This keeps it in 0-1 range as CUDATest does.

Placebo81, where did you get this CUDATest?
 
It is posted by scorcho on page 29. He described how to use it. I have been using it from day 1 of my lion install.
 
Placebo81 said:
Here is the edit for GTS-450 (deviceid 0dc4)

Code:
	<key>Vendor10deDevice0dc4</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>50</integer>
							<integer>100</integer>
							<integer>140</integer>
							<integer>160</integer>
						</array>
						<key>Threshold_Low</key>
						<array>
							<integer>0</integer>
							<integer>40</integer>
							<integer>130</integer>
							<integer>150</integer>
						</array>
					</dict>
					<key>LogControl</key>
					<integer>0</integer>
				</dict>

This keeps it in 0-1 range as CUDATest does.

I tried this edit, and the one at the beginning of the thread. Each time I got:

1/18/12 6:55:24.274 PM com.apple.kextd: Load com.apple.driver.AGPM failed; removing personalities from kernel.

in the Console.

Anyone know why? I did notice that my original AGPM kext had a couple of lines before the closing <dict> tag that this edit doesn't have. Could that be a problem? Anyone willing to edit the kext for me?

Also doing some quick internet searches reveals that the device ID is usually written in upper case...i.e. 0DC4 whereas here it's in lowercase. Does that make a difference? Would love to get this working.
 
AppleGraphicsPowerManagement orig.kext.zipActually, I now realize that I only got that console message once, the first time I edited the kext. It's not registered anything since.

scorcho, I'm attaching my original AGPM kext here and would be very much obliged if you could edit it for me. My card is a EVGA Geforce GTS 450. Placebo81's is a GTS 450 too. He says the device ID is 0dc4 but in my console it shows up as 1245 so I don't know what's up with that.

I'm using system definition Mac Pro 4,1
 

Attachments

  • AppleGraphicsPowerManagement orig.kext.zip
    68.3 KB · Views: 72
Status
Not open for further replies.
Back
Top