crashnburn_in Posted April 8, 2010 Share Posted April 8, 2010 Can this DSDT thing be done for any hardware (almost any hardware) for which kexts may not be available... given enough time spent on it? Or is it that certain HARDWARE will just not work at all? Is it easier to do for hardware that has more info on their Windows / Linux / BSD drivers? Especially Video, Sound & Wireless cards etc? Link to comment Share on other sites More sharing options...
Silencers Posted April 20, 2010 Author Share Posted April 20, 2010 If you have ThinkPad T500, you're in luck, ready to use /Extra with basic instructions available here: http://www.insanelymac.com/forum/index.php?showtopic=216051 ---------------------------------------------------------------------- I have a thinkpad r61i.Now ,i use snow leopard 10.6.3 on my thinkpad. but,I have three problem: 1 I dont want use voodoohda.kext.Can you use Legacy.kext and AppleHDA.kext to make sound work? 2 Atheros wireless's ID,I can't find it.(like your 168c,24) 3 When My thinkpad sleep,I can't make wake up.How to do ? 1. Not really. I have somewhat working solution, but it doesn't work straight after the boot (need to go to Sleep first and then wake up), microphone needs to be enabled from console and there are some sound glitches. VoodooHDA is the only way for us 2. Do you have it working? If yes, check in System Profiler. If not, you need to check IORegistryExplorer, it will show you if you ask nicely 3. This is VoodooHDA problem. For test, enable HDEF device in DSDT, make sure that you have vanilla AppleHDA. Disable VoodooHDA.kext and reboot. You will not have sound, but you will be able to Sleep and wake up. Link to comment Share on other sites More sharing options...
juanerson Posted April 28, 2010 Share Posted April 28, 2010 Hi Silencers, nice work! Any idea about native fan control injection in DSDT? Because now Im using AppleACPIThermal.kext by Prasys for activate the thermal zones (TZ0, TZ1...), but the extension break my sleep. Link to comment Share on other sites More sharing options...
Silencers Posted April 28, 2010 Author Share Posted April 28, 2010 Hi Silencers, nice work! Any idea about native fan control injection in DSDT? Because now Im using AppleACPIThermal.kext by Prasys for activate the thermal zones (TZ0, TZ1...), but the extension break my sleep. Well, this is probably hardware dependent. I'm thinking about writing a custom kext for Thinkpads to allow fan control, but it cannot be universal solution I'm afraid. I've currently enabled in DSDT ThinkPad button. When I press it, fan swtiches off, when I press again - it switches to automatic mode. Link to comment Share on other sites More sharing options...
BrendenM Posted May 4, 2010 Share Posted May 4, 2010 Has anyone upgraded to 10.6.3 with these DSDT fixes in place? I just upgraded and it seemed to go smoothly until I tried to sleep, then I had a problem resuming. Sleeping itself works just fine, no errors or anything, but when I resume it just comes up to a blank blue screen with a movable mouse cursor. Just wondering if anyone else has seen this or fixed it. Thanks. Link to comment Share on other sites More sharing options...
Silencers Posted May 4, 2010 Author Share Posted May 4, 2010 Has anyone upgraded to 10.6.3 with these DSDT fixes in place? I just upgraded and it seemed to go smoothly until I tried to sleep, then I had a problem resuming. Sleeping itself works just fine, no errors or anything, but when I resume it just comes up to a blank blue screen with a movable mouse cursor. Just wondering if anyone else has seen this or fixed it. I have upgraded to 10.6.3 as soon as it came out, had no problems. What configuration do you have? Link to comment Share on other sites More sharing options...
BrendenM Posted May 10, 2010 Share Posted May 10, 2010 I have upgraded to 10.6.3 as soon as it came out, had no problems. What configuration do you have? I'm running pretty much the same configuration you are. The only thing I've noticed different in my logs is now I'm getting the following error in /var/log/kernel.log ACPI_SMC_CtrlLoop::loadStepperProgram - pmCPUControl (PMIOCSETPSTATESTEPPER) failed, result = 0x4 I've tried pfix and manual recreation of extension caches and permission fixes but so far no luck. Link to comment Share on other sites More sharing options...
Silencers Posted May 10, 2010 Author Share Posted May 10, 2010 I've tried pfix and manual recreation of extension caches and permission fixes but so far no luck. That error means you have broken SpeedStep. Check my guide SpeedStep section on how to make it work for your particular CPU. Link to comment Share on other sites More sharing options...
monkeybagel Posted June 6, 2010 Share Posted June 6, 2010 I have tested 10.6.3 on an Intel 965OT board with ATI 4850 PCIe graphics and so far it runs great. The only issue is Shut Down does not work. When it is selected, the machine appears to turn off correctly (power indeed turns off and fans and disk start to spin down) but the machine comes right back on and boots into OS X. I am new to the OSx86 thing and feel lucky to get where I have (had to install with different video card installed, etc.) Now both dual DVI outputs are working, sound is working, and audio is working. I have Sleepenabler.kext installed in S/L/E. Do you think DSDT is the key to the system shutting down correctly, or could the restart fixed in the new bootloader discussed fix the problem? I am using standard Chameleon RC4. Thank you. Link to comment Share on other sites More sharing options...
Silencers Posted June 6, 2010 Author Share Posted June 6, 2010 Do you think DSDT is the key to the system shutting down correctly, or could the restart fixed in the new bootloader discussed fix the problem? I am using standard Chameleon RC4. With shutdown and restart there are might be various problems depending on the particular hardware you have. Most of the time you can sort problems by using either EvOReboot.kext or OpenHaltRestart.kext. Give them a try. Link to comment Share on other sites More sharing options...
monkeybagel Posted June 8, 2010 Share Posted June 8, 2010 With shutdown and restart there are might be various problems depending on the particular hardware you have. Most of the time you can sort problems by using either EvOReboot.kext or OpenHaltRestart.kext. Give them a try. Thank you for the reply. I tried those individually using kext util, reboot, and tested shutdown and it still wanted to power back up. So far that seems to be the only "glitch" I have run into. It is an Intel board. Any other ideas? Thank you Link to comment Share on other sites More sharing options...
Silencers Posted June 8, 2010 Author Share Posted June 8, 2010 Thank you for the reply. I tried those individually using kext util, reboot, and tested shutdown and it still wanted to power back up. So far that seems to be the only "glitch" I have run into. It is an Intel board. Any other ideas? The only thing I can think of is to try something in BIOS. But also check this forum thoroughly, some people might have had this problem before. Link to comment Share on other sites More sharing options...
Jingu Posted June 13, 2010 Share Posted June 13, 2010 Terrific guide!! But what application do you use to view the extracted ACPI binary files? I have 5 SSDT binary files and I'm looking for the one with my CStates. Thanks. Link to comment Share on other sites More sharing options...
Silencers Posted June 13, 2010 Author Share Posted June 13, 2010 But what application do you use to view the extracted ACPI binary files? I have 5 SSDT binary files and I'm looking for the one with my CStates. Thanks. It's easy, I use DSDTSE for compiling/decompiling binaries, and then any text editor. Link to comment Share on other sites More sharing options...
Jingu Posted June 14, 2010 Share Posted June 14, 2010 @Silencers, thanks. Actually, I just found out you had the answer in your post# 27 on how to open the *.bin files. I didn't realize I had to rename the *.bin to *.aml first. Good point. Here are basic steps: 1. Rename all extracted tables to *.aml 2. Open each *.aml file with DSDTSE and then save as *.dsl That's the beauty of DSDTSE, it can open binary *.aml files and decompile them automatically. Link to comment Share on other sites More sharing options...
00diabolic Posted June 30, 2010 Share Posted June 30, 2010 Hi Silencers.. I have been reading your guide over on the thinkpad forum. Glad you brought it here. Now I can ask you some question.. :-) I have a lenovo 3000 N200 and some of the same things apply as a thinkpad, some but not all anyway. 1. I have following your guide and my first question is how did you figure out that OSX was picking up the p-states from the SSDT table? I do not think my p-states are being picked up? I have extracted all of my ACPI tables and can provide any of them. Can you help me figure out if I have native p-state detection? According to thestevo and also eluded to in your guide there are two needed components to having working P-States controlled by AppleIntelCPUPowerManagement. 1. A DSDT with p-states defined. 2. The second step involves editing the macmodel plist in /System/Library/Extensions/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents add an entry under "PlimitDict" I have made a DSDT with help from Kdawg and it has defined p-states and am able to boot with that in place but it does nothing, I still get the error in console about using native stepper. If I have native p-states id rather stick with that over what I made here as I dont know if its as good. Either way it wont load without the edit to ACPI_SMC_PP Ok so I thought I had this 2nd part figured out since it involves just editing a plist so I followed your idea. I already have my model defined as MacBookPro4,1 as this model has the same CPU as my N200 a T9300. I wanted to keep my system vanilla and update proof so I am using your legacy kext idea to make the edits to the MacBookPro4,1.plist in ACPI_SMC_PlatforumPlugin. Ok so let me tell you what I did. First I got legacy kext and I added under IOKitPersonalities an entry for ACPI_SMC_PlatformPlugin. I got the values from the MacBookPro4_1.plist located in /System/Library/Extensions/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources I copied from IOPlatformThermalProfile down to IOPlatformSensor. All was imported properly under Plistedit Pro... Great app by the way. Just a lil buggy in SL but still worth the crashes. I then opened up MacBookPro5,1 (this is one of the models where PlimitDict is defined according to thestevo) and copied the section with PLimitDict and placed it in the missing section of my new legacy kext to include the value in MacBookPro4,1. Here is a copy of my Legacy kext Its all Vanilla except for the addition of PLimitDict value that was not in the MacBookPro4,1 kext. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleIdentifier</key> <string>com.00D.driver.LegacyN200</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>Legacy fixes for N200</string> <key>CFBundlePackageType</key> <string>KEXT</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>999.9.9</string> <key>IOKitPersonalities</key> <dict> <key>ACPI_SMC_PlatformPlugin</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.ACPI_SMC_PlatformPlugin</string> <key>IOClass</key> <string>ACPI_SMC_PlatformPlugin</string> <key>IOPlatformThermalProfile</key> <dict> <key>ConfigArray</key> <array> <dict> <key>WWEN</key> <true/> <key>model</key> <string>MacBookPro4,1</string> </dict> </array> <key>ControlArray</key> <array> <dict> <key>Desc-Key</key> <string>CPU_PLIMIT</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>10</integer> <key>location</key> <string>cpu plimit</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>CPU_STATE</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>13</integer> <key>location</key> <string>cpu state</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>GPU_PLIMIT</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>11</integer> <key>location</key> <string>gpu plimit</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>GPU_STATE</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>14</integer> <key>location</key> <string>gpu state</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>MEM_PLIMIT</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>12</integer> <key>location</key> <string>mem plimit</string> <key>type</key> <string>smc</string> </dict> </array> <key>CreationDate</key> <string>Wed May 27 14:33:24 PDT 2009</string> <key>CtrlLoopArray</key> <array> <dict> <key>Description</key> <string>SMC_CPU_Control_Loop</string> <key>IOClass</key> <string>ACPI_SMC_CtrlLoop</string> <key>MetaStateArray</key> <array> <dict> <key>Description</key> <string>Normal</string> </dict> <dict> <key>Description</key> <string>Reduced Power</string> </dict> <dict> <key>Description</key> <string>User Low Power</string> </dict> <dict> <key>Description</key> <string>User High Power</string> </dict> </array> <key>PLimitDict</key> <dict> <key>MacBookPro4,1</key> <integer>0</integer> </dict> <key>StepDataDict</key> <dict> <key>MacBookPro4,1</key> <array> <dict> <key>num-states</key> <integer>6</integer> <key>program</key> <string>SP4</string> </dict> </array> <key>SP1</key> <data> 6gQAAAEAAAIJAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACwgAABUA AAAUAAAAAQoAAAEAAAAB AAAA9QABDQAAAQAABf8A AQAAAAEAAAABBgAAAgAA AAQCAACsANMAfQDWAMMA KwcAAAIAAAABAAAAAQAA AAIAAAACAgAAAgYAAAEA AAABAAAA9QABDQAAAwAA Bf8AAwIAAAMGAAACAAAA BAAAAOAAyAAQDAAABQAA AAQAAAAFAAAABAAAAAMA AAABAAAABAYAAAIAAAAE AQAACQA9DAAAAwQAAAUA AAAEAgAABQYAAAEAAAAB AAAA6AADDQAABgAABf8A BQIAAAYGAAACAAAABAAA AEAAQgAPDAAACAAAAAcA AAAIAAAABwAAAAUAAAAB AAAABwYAAAIAAAAEAQAA CQA9DAAABgQAAAgAAAAG AgAACAYAAAEAAAABAAAA 6AADDQAACQAABf8ABwIA AAkGAAACAAAABAAAAMAA zwBqDAAACwAAAAoAAAAL AAAACgAAAAcAAAABAAAA CgYAAAIAAAAEAQAACQA9 DAAACQQAAAsAAAAIAgAA CwYAAAEAAAABAAAA6AAD DQAADAAABf8ACQIAAAwG AAACAAAABAAAAGAAGAAj DAAADgAAAA0AAAAOAAAA DQAAAAkAAAABAAAADQYA AAIAAAAEAQAACQA9DAAA DAQAAA4AAAAKAgAADgYA AAEAAAABAAAA6AADDQAA DwAABf8ACwIAAA8GAAAC AAAABAAAAEAArAAnDAAA EQAAABAAAAARAAAAEAAA AAsAAAABAAAAEAYAAAIA AAAEAQAACQA9DAAADwQA ABEAAAAMAgAAEQYAAAEA AAABAAAA9AABDQAAEgAA Bf8ADQIAABIGAAACAAAA BAIAAKwA0wB9ANYAwwAr BwAAEgAAABMAAAASAAAA EwAAAA0AAAABAAAAEwYA AAIAAAAEAQAACQA9DAAA EgQAABQAAAAOAgAAFAYA AAIAAAAEAAAAoACGAAEM AAACAAAAAgAAAAIAAAAC AAA= </data> <key>SP4</key> <data> UAUAAAEAAAIJAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACw0AAP8P AAALDQAA/w8AAAsNAAD/ DwAACw0AAP8PAAALDQAA /w8AAAsNAAD/DwAACw0A AP8PAAALDQAA/w8AAAsN AAD/DwAACw0AAP8PAAAL DQAA/w8AAAsNAAD/DwAA Cw0AAP8PAAALDQAA/w8A AAsNAAD/DwAACwgAABgA AAAXAAAAAQoAAAEAAAAB AAAA9QABDQAAAQAABf8A AQAAAAEAAAABBgAAAgAA AAQCAACsANMAfQDWAMMA KwcAAAIAAAABAAAAAQAA AAIAAAACAgAAAgYAAAEA AAABAAAA9QABDQAAAwAA Bf8AAwIAAAMGAAACAAAA BAAAAOAAyAAQDAAABQAA AAQAAAAFAAAABAAAAAMA AAABAAAABAYAAAIAAAAE AQAACQA9DAAAAwQAAAUA AAAEAgAABQYAAAEAAAAB AAAA6AADDQAABgAABf8A BQIAAAYGAAACAAAABAAA AEAAQgAPDAAACAAAAAcA AAAIAAAABwAAAAUAAAAB AAAABwYAAAIAAAAEAQAA CQA9DAAABgQAAAgAAAAG AgAACAYAAAEAAAABAAAA 6AADDQAACQAABf8ABwIA AAkGAAACAAAABAAAAOAA ZwA1DAAACwAAAAoAAAAL AAAACgAAAAcAAAABAAAA CgYAAAIAAAAEAQAACQA9 DAAACQQAAAsAAAAIAgAA CwYAAAEAAAABAAAA6AAD DQAADAAABf8ACQIAAAwG AAACAAAABAAAAOAAZwA1 DAAADgAAAA0AAAAOAAAA DQAAAAkAAAABAAAADQYA AAIAAAAEAQAACQA9DAAA DAQAAA4AAAAKAgAADgYA AAEAAAABAAAA6AADDQAA DwAABf8ACwIAAA8GAAAC AAAABAAAAGAAGAAjDAAA EQAAABAAAAARAAAAEAAA AAsAAAABAAAAEAYAAAIA AAAEAQAACQA9DAAADwQA ABEAAAAMAgAAEQYAAAEA AAABAAAA6AADDQAAEgAA Bf8ADQIAABIGAAACAAAA BAAAAEAArAAnDAAAFAAA ABMAAAAUAAAAEwAAAA0A AAABAAAAEwYAAAIAAAAE AQAACQA9DAAAEgQAABQA AAAOAgAAFAYAAAEAAAAB AAAA9AABDQAAFQAABf8A DwIAABUGAAACAAAABAIA AKwA0wB9ANYAwwArBwAA FQAAABYAAAAVAAAAFgAA AA8AAAABAAAAFgYAAAIA AAAEAQAACQA9DAAAFQQA ABcAAAAQAgAAFwYAAAIA AAAEAAAAoACGAAEMAAAC AAAAAgAAAAIAAAACAAA= </data> </dict> <key>ctrlloop-id</key> <integer>0</integer> <key>is-state-driven</key> <integer>1</integer> </dict> <dict> <key>Description</key> <string>SMC_GPU_sensor_Control_Loop</string> <key>GPUPowerMgmtFloorArray</key> <array> <integer>1</integer> </array> <key>GPUThresholdDict</key> <dict> <key>MacBookPro4,1</key> <string>TA2</string> <key>TA2</key> <array> <dict> <key>high-threshold</key> <integer>20</integer> <key>low-threshold</key> <integer>0</integer> <key>threshold-method</key> <integer>1</integer> </dict> <dict> <key>high-threshold</key> <integer>41</integer> <key>low-threshold</key> <integer>25</integer> </dict> <dict> <key>high-threshold</key> <integer>72</integer> <key>low-threshold</key> <integer>50</integer> </dict> <dict> <key>high-threshold</key> <integer>100</integer> <key>history-length</key> <integer>1</integer> <key>low-threshold</key> <integer>88</integer> </dict> </array> </dict> <key>IOClass</key> <string>ACPI_SMC_CtrlLoop</string> <key>MetaStateArray</key> <array> <dict> <key>Description</key> <string>Normal</string> </dict> <dict> <key>Description</key> <string>Reduced Power</string> </dict> <dict> <key>Description</key> <string>User Low Power</string> </dict> <dict> <key>Description</key> <string>User High Power</string> </dict> </array> <key>SensorIDArray</key> <array> <integer>6</integer> </array> <key>ctrlloop-id</key> <integer>1</integer> <key>is-state-driven</key> <integer>1</integer> </dict> <dict> <key>Description</key> <string>SMC_Memory_Control_Loop</string> <key>IOClass</key> <string>ACPI_SMC_CtrlLoop</string> <key>MCHThrottleDict</key> <dict> <key>MT3</key> <array> <dict> <key>DTC_WAB</key> <integer>32</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> <dict> <key>DTC_WAB</key> <integer>32</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> <dict> <key>DTC_WAB</key> <integer>32</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> <dict> <key>DTC_WAB</key> <integer>32</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> </array> <key>MacBookPro4,1</key> <string>MT3</string> </dict> <key>MetaStateArray</key> <array> <dict> <key>Description</key> <string>Normal</string> </dict> <dict> <key>Description</key> <string>Reduced Power</string> </dict> <dict> <key>Description</key> <string>User Low Power</string> </dict> <dict> <key>Description</key> <string>User High Power</string> </dict> </array> <key>ctrlloop-id</key> <integer>2</integer> <key>is-state-driven</key> <integer>1</integer> </dict> </array> <key>SensorArray</key> <array> <dict> <key>Desc-Key</key> <string>GPU</string> <key>IOClass</key> <string>IOPlatformSensor</string> <key>sensor-id</key> <integer>6</integer> </dict> </array> </dict> </dict> <key>IOProbeScore</key> <integer>1000</integer> <key>IOPropertyMatch</key> <dict> <key>IOCPUNumber</key> <integer>0</integer> </dict> <key>IOProviderClass</key> <string>AppleACPICPU</string> <key>IOResourceMatch</key> <string>ACPI</string> </dict> <key>OSBundleLibraries</key> <dict> <key>com.apple.iokit.IOGraphicsFamily</key> <string>1.1</string> <key>com.apple.iokit.IOPCIFamily</key> <string>1.0</string> <key>com.apple.kpi.iokit</key> <string>8.3.1</string> <key>com.apple.kpi.libkern</key> <string>8.3.1</string> <key>com.apple.kpi.mach</key> <string>8.3.1</string> </dict> <key>OSBundleRequired</key> <string>Local-Root</string> </dict> </plist> I still see in the console This warning.. WARNING - ACPI_SMC_CtrlLoop::initCPUCtrlLoop - no sub-config match for MacBookPro4,1 with 6 p-states, using default stepper instead So obviously I did something wrong with my plist edit but what? I thought I understood the concept right from your topic. Maybe Its not pointing at the right plist to edit. I did not want to make up a new mac model as mine so closely matches the MacBook4,1 (same GPU) and MacBookPro4,1 (same CPU) I use the latter because it has the same CPU. so I stuck with editing the plist that were already there. Can you take a look at this and tell me what I missed? Are there more values then the PlimitDict that I need to include? Thanks 00D Link to comment Share on other sites More sharing options...
Silencers Posted July 1, 2010 Author Share Posted July 1, 2010 I have a lenovo 3000 N200 and some of the same things apply as a thinkpad, some but not all anyway. 1. I have following your guide and my first question is how did you figure out that OSX was picking up the p-states from the SSDT table? I do not think my p-states are being picked up? I have extracted all of my ACPI tables and can provide any of them. Can you help me figure out if I have native p-state detection? Well, your luck with p-states heavily depends on your BIOS. I've checked all SSDT tables of my ACPI and all p-states were already defined there. The next step was to enable Plimit=0 (this means that the minimal p-state can be ID=0, which is the lowest frequency defined). To check if you are in luck you should open IORegistryExplorer and then ACPI_SMC_PlatformPlugin. Value "PerfrmanceStateArray" should be set and contain more than one value (I have 5). You can also check if CPUPlimit is set to 0x0, but by default it usually set to the maximum p-state ID (total p-states - 1). According to thestevo and also eluded to in your guide there are two needed components to having working P-States controlled by AppleIntelCPUPowerManagement. 1. A DSDT with p-states defined. 2. The second step involves editing the macmodel plist in /System/Library/Extensions/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents add an entry under "PlimitDict" Well, all points are true, but with ThinkPads (at least series 60) p-states are properly defined in SSDT tables and are picked by OSX automatically, so no need to edit DSDT. With the second step I actually describe how to do the same thing from /E/E. I simply create a legacy kext and override data for the model I chosen. This allows to keep /S/L/E 100% vanilla. But PLimitDic=0 is the correct way to enable p-states (but not to define them). I have made a DSDT with help from Kdawg and it has defined p-states and am able to boot with that in place but it does nothing, I still get the error in console about using native stepper. If I have native p-states id rather stick with that over what I made here as I dont know if its as good. Either way it wont load without the edit to ACPI_SMC_PP Try to boot without any p-states related changes in DSDT and check IORegistryExplorer as described above. If you see PerformanceStateArray defined, than you have p-states already and only need to enable them. Ok so I thought I had this 2nd part figured out since it involves just editing a plist so I followed your idea. I already have my model defined as MacBookPro4,1 as this model has the same CPU as my N200 a T9300. I wanted to keep my system vanilla and update proof so I am using your legacy kext idea to make the edits to the MacBookPro4,1.plist in ACPI_SMC_PlatforumPlugin. Ok so let me tell you what I did. First I got legacy kext and I added under IOKitPersonalities an entry for ACPI_SMC_PlatformPlugin. I got the values from the MacBookPro4_1.plist located in /System/Library/Extensions/IOPlatformFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources I copied from IOPlatformThermalProfile down to IOPlatformSensor. All was imported properly under Plistedit Pro... Great app by the way. Just a lil buggy in SL but still worth the crashes. Never crashed for me I then opened up MacBookPro5,1 (this is one of the models where PlimitDict is defined according to thestevo) and copied the section with PLimitDict and placed it in the missing section of my new legacy kext to include the value in MacBookPro4,1. I don't think that there are any models except for one of the early MacPro which have Plimit unlocked. And you should always copy plist from your close model, and then make some additions. I still see in the console This warning.. WARNING - ACPI_SMC_CtrlLoop::initCPUCtrlLoop - no sub-config match for MacBookPro4,1 with 6 p-states, using default stepper instead So obviously I did something wrong with my plist edit but what? I thought I understood the concept right from your topic. Maybe Its not pointing at the right plist to edit. I did not want to make up a new mac model as mine so closely matches the MacBook4,1 (same GPU) and MacBookPro4,1 (same CPU) I use the latter because it has the same CPU. so I stuck with editing the plist that were already there. Can you take a look at this and tell me what I missed? Are there more values then the PlimitDict that I need to include? I had a brief look at the part from plist you copied, and it looks as it is missing a few parts. For example, in ConfigArray you don't have restart-actions->cpu-p-state=0. I have it, not sure how important it is. Below I copied my entire ACPI_SMC_PlatformPlugin section, please check carefully for the stuff you don't have. I would also suggest you to create new model, not to use the real one. For example, my T60p is very close to MacBookPro2,1, so I "created" new model MacBookPro2,3 (2,2 is also a real one). This way you ensure that system optimizations for a particular model (there might be some, who knows for sure?) don't interfere with your changes. Also, make sure you regenerate kext caches with pfix after any changes in your legacy kext. Otherwise changes won't get picked up. My ACPI_SMC_PlatformPlugin section in my legacy kext. <key>ACPI_SMC_PlatformPlugin</key> <dict> <key>CFBundleIdentifier</key> <string>com.apple.driver.ACPI_SMC_PlatformPlugin</string> <key>IOClass</key> <string>ACPI_SMC_PlatformPlugin</string> <key>IOPlatformThermalProfile</key> <dict> <key>CStateDemotionDict</key> <dict> <key>MacBookPro2,3</key> <string>CSDD_std1</string> <key>Xserve3,1</key> <string>CSDD_std1</string> </dict> <key>CStateDict</key> <dict> <key>CSD1</key> <dict> <key>C1</key> <dict> <key>enable</key> <true/> <key>flags</key> <integer>16777216</integer> <key>hint_code</key> <integer>0</integer> <key>snoop</key> <integer>80000</integer> </dict> </dict> <key>CSD2</key> <dict> <key>C5Add</key> <dict> <key>enable</key> <true/> <key>exit_reg</key> <dict> <key>desc</key> <string>C5_EXIT</string> <key>offset</key> <integer>168</integer> <key>regFlags</key> <integer>134217728</integer> <key>type</key> <integer>1</integer> <key>width</key> <integer>32</integer> </dict> <key>level_reg</key> <dict> <key>desc</key> <string>C5_LVL</string> <key>offset</key> <integer>23</integer> <key>regFlags</key> <integer>134217728</integer> <key>type</key> <integer>2</integer> <key>width</key> <integer>32</integer> </dict> <key>primRes</key> <dict> <key>ConvM</key> <integer>1000</integer> <key>ConvN</key> <integer>279365</integer> <key>desc</key> <string>C3_RES</string> <key>maskCntr</key> <integer>16777215</integer> <key>offset</key> <integer>84</integer> <key>regFlags</key> <integer>134494208</integer> <key>shiftCState</key> <integer>3</integer> <key>type</key> <integer>2</integer> <key>width</key> <integer>32</integer> </dict> <key>secRes</key> <dict> <key>ConvM</key> <integer>1000</integer> <key>ConvN</key> <integer>279365</integer> <key>desc</key> <string>C5_RES</string> <key>maskCntr</key> <integer>16777215</integer> <key>offset</key> <integer>88</integer> <key>regFlags</key> <integer>134494208</integer> <key>shiftCState</key> <integer>5</integer> <key>type</key> <integer>2</integer> <key>width</key> <integer>32</integer> </dict> <key>snoop</key> <integer>55000</integer> </dict> </dict> <key>CSD3</key> <dict> <key>C6</key> <dict> <key>enable</key> <false/> </dict> </dict> <key>CSD4</key> <dict> <key>C2</key> <dict> <key>enable</key> <true/> </dict> <key>C3</key> <dict> <key>enable</key> <true/> </dict> <key>C4</key> <dict> <key>enable</key> <true/> </dict> <key>C5</key> <dict> <key>enable</key> <false/> </dict> <key>C6</key> <dict> <key>enable</key> <false/> </dict> <key>C7</key> <dict> <key>enable</key> <false/> </dict> </dict> <key>MacBookPro2,3</key> <string>CSD4</string> </dict> <key>ConfigArray</key> <array> <dict> <key>model</key> <string>MacBookPro2,3</string> <key>restart-actions</key> <dict> <key>cpu-p-state</key> <integer>0</integer> </dict> </dict> </array> <key>ControlArray</key> <array> <dict> <key>Desc-Key</key> <string>CPU_PLIMIT</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>10</integer> <key>location</key> <string>cpu plimit</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>CPU_STATE</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>13</integer> <key>location</key> <string>cpu state</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>GPU_PLIMIT</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>11</integer> <key>location</key> <string>gpu plimit</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>GPU_STATE</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>14</integer> <key>location</key> <string>gpu state</string> <key>type</key> <string>smc</string> </dict> <dict> <key>Desc-Key</key> <string>MEM_PLIMIT</string> <key>IOClass</key> <string>AppleSMCControl</string> <key>control-flags</key> <integer>2</integer> <key>control-id</key> <integer>12</integer> <key>location</key> <string>mem plimit</string> <key>type</key> <string>smc</string> </dict> </array> <key>CreationDate</key> <string>Tue May 26 13:39:41 PDT 2009</string> <key>CtrlLoopArray</key> <array> <dict> <key>Description</key> <string>SMC_CPU_Control_Loop</string> <key>IOClass</key> <string>ACPI_SMC_CtrlLoop</string> <key>MetaStateArray</key> <array> <dict> <key>Description</key> <string>Normal</string> </dict> <dict> <key>Description</key> <string>Reduced Power</string> </dict> <dict> <key>Description</key> <string>User Low Power</string> </dict> <dict> <key>Description</key> <string>User High Power</string> </dict> </array> <key>PLimitDict</key> <dict> <key>MacBookPro2,3</key> <integer>0</integer> </dict> <key>StepDataDict</key> <dict> <key>MacBookPro2,3</key> <string>SP1</string> <key>SP1</key> <data> qAYAAAAAAAEAAgQAACEA AAACAAAB//8A/wD/AP8A /wD/AAYAAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsP AAD/AQAD/wALDwAA/wEA A/8ACw8AAP8BAAP/AAsK AAABCgAAAQAAAAEAAAD1 AAEFAAABAAAF/wABAAAA AQAAAAEGAAACAAAABAEA AIAAwwC3AC4ANAALAAAA AgAAAAEAAAABAAAAAgAA AAICAAACBgAAAQAAAAEA AAD1AAEFAAADAAAF/wAD AgAAAwYAAAkAAAAEAAAA TAAEBQAABAAABf8AAwAA AAEAAAAEBAAAgAAAAAoK AAAIAAAABQAAAAgAAAAF AAAAAwAAAAIAAAAFBgAA BwAAAAEAAAD1AAEFAAAG AAAF/wADAAAAAwAAAAYG AAACAAAABAAAAKAADwUA AAcEAAAHAAAAAwAAAAQA AAAHBgAACAoAAAMAAAX/ AAQCAAAIBgAAAQAAAAEA AADoAAMFAAAJAAAF/wAF AgAACQYAAAIAAAAEAAAA 6AADBQAADQAAAAoAAAAN AAAACgAAAAUAAAABAAAA CgYAAAcAAAABAAAA9QAB BQAACwAABf8ABQAAAAIA AAALBgAAAgAAAAQAAACg AA8FAAAMBAAADAAAAAUA AAADAAAADAYAAAgKAAAJ AAAF/wAGAgAADQYAAAEA AAABAAAA6AADBQAADgAA Bf8ABwIAAA4GAAACAAAA BAAAAFgAGwUAABIAAAAP AAAAEgAAAA8AAAAHAAAA AQAAAA8GAAAHAAAAAQAA APUAAQUAABAAAAX/AAcA AAACAAAAEAYAAAIAAAAE AAAAoAAPBQAAEQQAABEA AAAHAAAAAwAAABEGAAAI CgAADgAABf8ACAIAABIG AAABAAAAAQAAAOgAAwUA ABMAAAX/AAkCAAATBgAA AgAAAAQAAAD8AAgFAAAX AAAAFAAAABcAAAAUAAAA CQAAAAEAAAAUBgAABwAA AAEAAAD1AAEFAAAVAAAF /wAJAAAAAgAAABUGAAAC AAAABAAAAKAADwUAABYE AAAWAAAACQAAAAMAAAAW BgAACAoAABMAAAX/AAoC AAAXBgAAAQAAAAEAAADo AAMFAAAYAAAF/wALAgAA GAYAAAIAAAAEAAAAKAAK BQAAHAAAABkAAAAcAAAA GQAAAAsAAAABAAAAGQYA AAcAAAABAAAA9QABBQAA GgAABf8ACwAAAAIAAAAa BgAAAgAAAAQAAACgAA8F AAAbBAAAGwAAAAsAAAAD AAAAGwYAAAgKAAAYAAAF /wAMAgAAHAYAAAEAAAAB AAAA9AABBQAAHQAABf8A DQIAAB0GAAACAAAABAEA AIAAwwC3AC4ANAALAAAA HQAAAB4AAAAdAAAAHgAA AA0AAAABAAAAHgYAAAcA AAABAAAA9QABBQAAHwAA Bf8ADQAAAAIAAAAfBgAA AgAAAAQAAACgAA8FAAAg BAAAIAAAAA0AAAADAAAA IAYAAAgKAAAdAAAF/w== </data> </dict> <key>ctrlloop-id</key> <integer>0</integer> <key>is-state-driven</key> <integer>1</integer> </dict> <dict> <key>Description</key> <string>SMC_GPU_sensor_Control_Loop</string> <key>GPUPowerMgmtFloorArray</key> <array> <integer>1</integer> </array> <key>GPUThresholdDict</key> <dict> <key>MacBookPro2,3</key> <string>TA1</string> <key>TA1</key> <array> <dict> <key>high-threshold</key> <integer>22</integer> <key>low-threshold</key> <integer>0</integer> </dict> <dict> <key>high-threshold</key> <integer>30</integer> <key>low-threshold</key> <integer>23</integer> </dict> <dict> <key>high-threshold</key> <integer>90</integer> <key>low-threshold</key> <integer>31</integer> </dict> <dict> <key>high-threshold</key> <integer>100</integer> <key>low-threshold</key> <integer>91</integer> </dict> </array> </dict> <key>IOClass</key> <string>ACPI_SMC_CtrlLoop</string> <key>MetaStateArray</key> <array> <dict> <key>Description</key> <string>Normal</string> </dict> <dict> <key>Description</key> <string>Reduced Power</string> </dict> <dict> <key>Description</key> <string>User Low Power</string> </dict> <dict> <key>Description</key> <string>User High Power</string> </dict> </array> <key>SensorIDArray</key> <array> <integer>6</integer> </array> <key>ctrlloop-id</key> <integer>1</integer> <key>is-state-driven</key> <integer>1</integer> </dict> <dict> <key>Description</key> <string>SMC_Memory_Control_Loop</string> <key>IOClass</key> <string>ACPI_SMC_CtrlLoop</string> <key>MCHThrottleDict</key> <dict> <key>MT1</key> <array> <dict> <key>DTC_WAB</key> <integer>32</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> <dict> <key>DTC_WAB</key> <integer>24</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> <dict> <key>DTC_WAB</key> <integer>16</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>0</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> <dict> <key>DTC_WAB</key> <integer>10</integer> <key>DTC_WAT</key> <integer>0</integer> <key>GTC_WAB</key> <integer>15</integer> <key>GTC_WAT</key> <integer>15</integer> </dict> </array> <key>MacBookPro2,3</key> <string>MT1</string> </dict> <key>MetaStateArray</key> <array> <dict> <key>Description</key> <string>Normal</string> </dict> <dict> <key>Description</key> <string>Reduced Power</string> </dict> <dict> <key>Description</key> <string>User Low Power</string> </dict> <dict> <key>Description</key> <string>User High Power</string> </dict> </array> <key>ctrlloop-id</key> <integer>2</integer> <key>is-state-driven</key> <integer>1</integer> </dict> </array> <key>SensorArray</key> <array> <dict> <key>Desc-Key</key> <string>GPU</string> <key>IOClass</key> <string>IOPlatformSensor</string> <key>sensor-id</key> <integer>6</integer> </dict> </array> </dict> <key>IOProbeScore</key> <integer>1000</integer> <key>IOPropertyMatch</key> <dict> <key>IOCPUNumber</key> <integer>0</integer> </dict> <key>IOProviderClass</key> <string>AppleACPICPU</string> <key>IOResourceMatch</key> <string>ACPI</string> </dict> Link to comment Share on other sites More sharing options...
00diabolic Posted July 2, 2010 Share Posted July 2, 2010 I've checked all SSDT tables of my ACPI and all p-states were already defined there. The next step was to enable Plimit=0 (this means that the minimal p-state can be ID=0, which is the lowest frequency defined).To check if you are in luck you should open IORegistryExplorer and then ACPI_SMC_PlatformPlugin. Value "PerfrmanceStateArray" should be set and contain more than one value (I have 5). You can also check if CPUPlimit is set to 0x0, but by default it usually set to the maximum p-state ID (total p-states - 1). I have a SSDT-2 which appears to have all of them defined and I think c-states also.. Were yours in your SSDT-2 table? I know what they should look like but my names are a lot different then what I've seen. Also as for c-states I dont have C1M1-4 or anything close. I do have values of TSSI & TSSM which looks like p-states. Anyway I was just curious what I was looking at and if they were all there. You can see my attached ioreg pic as it tells I have 9 pstates and c-states also looks like there working. I'm luckier then you in that respect. But PLimitDic=0 is the correct way to enable p-states (but not to define them). Ok so I have that value but its odd. On some boots I get a clock between 1200-2500mhz and other times I get no stepping. On this boot I am getting hw.cpufrequency_min: 2493000000 hw.cpufrequency_max: 2493000000 Last boot I got: hw.cpufrequency_min: 1200000000 hw.cpufrequency_max: 2500000000 I'm also seeing this in console over and over again. com.apple.launchd.peruser.502[97] (com.prosofteng.DGMonitor) Throttling respawn: Will start in 10 seconds com.apple.launchd.peruser.502[97] (com.prosofteng.DGMonitor[2388]) Exited with exit code: 1 Is that because I have the p-states defined but not enabled properly? Again see my ioreg pic. Might also be that I need to add more values to the MacBook4,1 plist I used in my legacy kext. But that brings up another question how does a real MacBook4,1 speedstep with just that single plist located in ACPI_SMC_PlatformPlugin.kext/Contents/Resources. It must be because it has the p-states in the SSDT table and it knows which ones to use and in mine I have to tell it more. Still looking at the MacBookPro4,1 which has my same CPU the SMC plist looks almost the same but it does have StepDataDict both SP1 and SP4 where MacBook4,1 only has SP1.. Could the SP4 be for my t9300? Will I be ok just combining the Missing parts of the MacBook4,1 with the additions that the MacBookPro4,1 has? In yours you added all kinds of stuff for c-states also. Where did you get that from? Should I add that? How do I know c-states are working? I would also suggest you to create new model, not to use the real one. For example, my T60p is very close to MacBookPro2,1, so I "created" new model MacBookPro2,3 (2,2 is also a real one). This way you ensure that system optimizations for a particular model (there might be some, who knows for sure?) don't interfere with your changes. See this I dont get. If I create a new mac model wont this mess with other parts of OSX. My closest model match is MacBook4,1 matches chipset and GPU but not CPU exactly T8300 vs T9300. The MacBookPro4,1 has my same CPU T9300 but not GPU. Having my system think its a MacBook4,1 is good for other parts of OSX right? Having a model that does not exist could lead to other issues. In smbios.plist there are 3 parts that concern model info. SMbiosversion, SMproductname and SMserial What about the SMbiosversion? Do I also change the model in there? So MB41.88Z to MB42.88Z for example. The serial number I am using is from a real mac. I'd like to keep that also but using a different model number with that serial number could lead to issues. Or do you know if there would be any? Or did you only change the product name and forget the rest and have had no issues? Silencer thank you so much.... Link to comment Share on other sites More sharing options...
Silencers Posted July 4, 2010 Author Share Posted July 4, 2010 I have a SSDT-2 which appears to have all of them defined and I think c-states also.. Were yours in your SSDT-2 table? I know what they should look like but my names are a lot different then what I've seen. Also as for c-states I dont have C1M1-4 or anything close. I do have values of TSSI & TSSM which looks like p-states. Anyway I was just curious what I was looking at and if they were all there. You can see my attached ioreg pic as it tells I have 9 pstates and c-states also looks like there working. I'm luckier then you in that respect. I have {censored}load of various SSDT tables, c-states and p-states are all over the place there. C-states are not picked up automatically, but p-states do. Regarding c-states, you might use some generic solutions. C-state 0 is the same for all CPUs, you should be able to have at least that. Ok so I have that value but its odd. On some boots I get a clock between 1200-2500mhz and other times I get no stepping. On this boot I am getting hw.cpufrequency_min: 2493000000 hw.cpufrequency_max: 2493000000 Last boot I got: hw.cpufrequency_min: 1200000000 hw.cpufrequency_max: 2500000000 I suggest you to try wither MSR Tools or VoodooMeter-something (don't remember now), they show actual stepping in real time. I'm also seeing this in console over and over again. com.apple.launchd.peruser.502[97] (com.prosofteng.DGMonitor) Throttling respawn: Will start in 10 secondscom.apple.launchd.peruser.502[97] (com.prosofteng.DGMonitor[2388]) Exited with exit code: 1 Weird stuff. looks like you have some third party software doing something (com.prosofteng.DGMonitor). Remove it and check again. Also, throttling should not be enabled by default. Is that because I have the p-states defined but not enabled properly? Again see my ioreg pic. Might also be that I need to add more values to the MacBook4,1 plist I used in my legacy kext. But that brings up another question how does a real MacBook4,1 speedstep with just that single plist located in ACPI_SMC_PlatformPlugin.kext/Contents/Resources. It must be because it has the p-states in the SSDT table and it knows which ones to use and in mine I have to tell it more. Still looking at the MacBookPro4,1 which has my same CPU the SMC plist looks almost the same but it does have StepDataDict both SP1 and SP4 where MacBook4,1 only has SP1.. Could the SP4 be for my t9300? Will I be ok just combining the Missing parts of the MacBook4,1 with the additions that the MacBookPro4,1 has? In yours you added all kinds of stuff for c-states also. Where did you get that from? Should I add that? How do I know c-states are working? Well, real Macs have other hardware and they don't have BIOS per se or something close to that. They might be picking p-states someplace else, or they do have ACPI tables properly defined or something. I don't think your p-states are wrong or not working. But to be sure, install IORegistryExplorer and check under Apple_SMC_PlatformPlugin CSTInfo (should be set) and PerformanceStateArray (should have more than one value) and CPUPLimit (should be 0). See this I dont get. If I create a new mac model wont this mess with other parts of OSX. It won't, and it is better that way. No matter how close your hardware is to a real Mac, it's not Mac. Some software relying on some particular features of your set model might cause kernel panics or something else, because they will be accessing some hardware that you don't have. What about the SMbiosversion? Do I also change the model in there? So MB41.88Z to MB42.88Z for example. The serial number I am using is from a real mac. I'd like to keep that also but using a different model number with that serial number could lead to issues. Or do you know if there would be any? Or did you only change the product name and forget the rest and have had no issues? Don't bother much with real serial number and real bios version. You indeed need to change MB41 to MB42. No issues will come out of serial numbers, etc. I'm using T60p with OSX being only one OS installed for almost 8 months now, and it has been wonderful to me. Link to comment Share on other sites More sharing options...
00diabolic Posted July 6, 2010 Share Posted July 6, 2010 Silencers.. You were right.. I do need the fake model number. That makes no sense but now voodoo monitor shows steps between 600mhz-2500mhz. With macbook4,1 I got a frozen step and it always changed. Thats why each boot was showing different values.. You were right about DGmonitor.. Its from an old speedstep app. StepDataDict value machookpro4,1.plist has SP1 and SP4 where MacBook4,1 only has SP1.. Could the SP4 be different voltage values for the steps or are those in the SSDT tables? Do you know what the SP1 and SP4 is exactly or no clue? Is that the performance state array in ioregistry? It has to be the values look the same as in the plist file. Can you confirm that? As for c-states.. If you looked at my pic from my last post: http://www.insanelymac.com/forum/index.php...st&id=73779 It shows CSTinfo which means the c-states are there but does that only mean c-state 0 like you said? How can I tell if the rest are there or not? How did you tell you had them working once you added the DSDT c-state info? Also when I run dmesg | grep ACPI gives me no system state. Could that be related to c-states? I know its related to sleep. Link to comment Share on other sites More sharing options...
Silencers Posted July 6, 2010 Author Share Posted July 6, 2010 StepDataDict value machookpro4,1.plist has SP1 and SP4 where MacBook4,1 only has SP1.. Could the SP4 be different voltage values for the steps or are those in the SSDT tables? Do you know what the SP1 and SP4 is exactly or no clue? Is that the performance state array in ioregistry? It has to be the values look the same as in the plist file. Can you confirm that? I'm not really sure what SP1 and SP4 strings are. If you compare them between different models, they look the same, so it's not stepping data. But these are essential for vanilla stepping to work, you should copy all values from the model you are mimicking. It shows CSTinfo which means the c-states are there but does that only mean c-state 0 like you said? How can I tell if the rest are there or not? How did you tell you had them working once you added the DSDT c-state info? You have c-states working correctly, all values are set to values that they need to be at. CSTInfo should be 0x1240105 and CStateOverride should be True. When I said about value 0x0 or 0, this is for CPUPlimit, and it is related to speed stepping. c-states and p-states are independent from each other. Also when I run dmesg | grep ACPI gives me no system state. Could that be related to c-states? I know its related to sleep. You won't be able to check anything with that command. ACPI is not writing anything into boot log, unless there are errors. Link to comment Share on other sites More sharing options...
00diabolic Posted July 9, 2010 Share Posted July 9, 2010 I wanted to take a few days to run some tests but I do still have some problems with speedstep. CStateOverride should be True. I dont have the value c-state override. Is that a problem? Maybe it would help if I knew what c-states were. Are c-states temp steps for the CPU to tell when to punch the fan higher to compensate for higher temps? Or what are they exactly? There are 2 models that kinda fit my PC. MB4,1 and MBP4,1. I decided to use the MBP4,1 for the c-state dictionary entry but then saw it had no entry at all in the c-state dictionary. The MB4,1 had 1 entry in the c-state dictionary but just to turn off C6. I decided to leave out the c-state dictionary entry all together reading that if the entry is not there at all it makes all c-states available. This may not be right but do you have any thoughts on that? I just the update to 10.6.4 and it worked like a charm but I see that there are a few things off in IOregistry explorer. I no longer have many of the values I had in there before for smc. I no longer have CPUPlimit entry any longer for example. It also has stopped stepping and gets stuck at a single step again. Now I know the first thing your thinking is I need to update the bundles entry in my legacy kext. I had it updated before I made the change over actually. So all my bundle libraries say 8.4 now. You won't be able to check anything with that command. ACPI is not writing anuything into boot log, unless there are errors. You were right about system state. It shows as S3 in kernel log so thats not my problem with sleep. Have you gotten anywhere with your sleep? I think we have the same sleep issue. I can never autosleep and forced sleep results in no wake up and forced reboot for me. Also take a look at this.. http://www.insanelymac.com/forum/index.php...1631&st=380 In particular the SBUS post by 399 by master cheif. Its interesting I was looking at that and noticed before I did not have all of those kext loaded in the first list which was good. But I also did not have all the ones in the second list which was bad. Now in 10.6.4 I have almost all of those bad ones loaded and only 1 of the good ones. So its gotten worse. I took a look in my kextstat and look at this.. 51 0 0x553ec000 0x3000 0x2000 com.apple.driver.AppleFileSystemDriver (2.0) <18 4 3>3 1> 62 0 0x5b470000 0x7000 0x6000 com.apple.iokit.SCSITaskUserClient (2.6.5) <54 18 5 4 3 1> 83 0 0x5b927000 0x7000 0x6000 com.apple.driver.AppleIntelMeromProfile (19) <73 6 5 4 3> <-- NOT MY CPU 96 0 0x5ba9f000 0x8000 0x7000 com.apple.driver.AppleIntelNehalemProfile (11) <73 6 4 3> <-- NOT MY CPU 103 0 0x5bb2b000 0x5000 0x4000 com.apple.driver.AppleIntelYonahProfile (14) <73 6 4 3> <-- NOT MY CPU 110 0 0x54e3f000 0x9000 0x8000 com.apple.driver.AppleTyMCEDriver (1.0.1d8) <77 14 13 7 6 5 4 3 1> Off the good list I only have 35 1 0x55185000 0x3000 0x2000 com.apple.iokit.IOSMBusFamily (1.1) <5 4 3> My cpu is com.apple.driver.AppleIntelPenrynProfile (17) <73 6 4 3> which is also loaded but I dont need the rest of them and they prob cause more trouble there there worth. This is related to sbus and IDentifying it correctly. This brings me to this topic by the king here. http://www.projectosx.com/forum/lofiversio...x.php/t889.html Now hes talking about a sleep fix which the system will not ID sbus after a wake. I dont have this fix because I'm dump when it comes to the DSDT and cant figure out how to input it without 130 errors but I propose if I did have this in my DSDT I might be able to sleep it also might help with the extra kext being loaded that masterchief is talking about.. Any thoughts on that? Also related is this.. http://www.projectosx.com/forum/lofiversio...x.php/t852.html Again another king fix that I cant figure out how to implement without 130 freaking errors in my DSDT. Hope you can help I would love to be able to edit my DSDT and know what I'm doing wrong.. THANKS 00D Note: Sileners for your T60 take a look here: http://forums.gentoo.org/viewtopic.php?t=122145 & http://acpi.sourceforge.net/dsdt/view.php?...facturer=Lenovo I Bet you fixed those errors in your t60 DSDT but if not that might be helpful. Link to comment Share on other sites More sharing options...
Silencers Posted July 11, 2010 Author Share Posted July 11, 2010 I dont have the value c-state override. Is that a problem? It might be, but still, only related to c-states. Maybe it would help if I knew what c-states were. Are c-states temp steps for the CPU to tell when to punch the fan higher to compensate for higher temps? Or what are they exactly? Man, I have briefly explained that in my guide. Have you read it? I just the update to 10.6.4 and it worked like a charm but I see that there are a few things off in IOregistry explorer. I no longer have many of the values I had in there before for smc. I no longer have CPUPlimit entry any longer for example. It also has stopped stepping and gets stuck at a single step again. Now I know the first thing your thinking is I need to update the bundles entry in my legacy kext. I had it updated before I made the change over actually. So all my bundle libraries say 8.4 now. Upgrading from 10.6.2 to 10.6.3 or from 10.6.3 to 10.6.4 does break speed step, because Mac model plists are changing. You need to open your legacy kext and a matching plist from /S/L/E/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/ and compare them. In my case there are three new entries that I needed to add to my legacy kexts to make speed step work again. You were right about system state. It shows as S3 in kernel log so thats not my problem with sleep. Have you gotten anywhere with your sleep? I think we have the same sleep issue. I can never autosleep and forced sleep results in no wake up and forced reboot for me. Sleep in OSX is a complicated thing, a lot of things have to be right. I do have sleep working now, but for me it was audio codec that was to blame. In particular the SBUS post by 399 by master cheif. Its interesting I was looking at that and noticed before I did not have all of those kext loaded in the first list which was good. But I also did not have all the ones in the second list which was bad. Now in 10.6.4 I have almost all of those bad ones loaded and only 1 of the good ones. So its gotten worse. Well, one thing I learned from all my long battle to achieve the perfect OSX on my T60p is that you shouldn't put extra stuff in your DSDT only because someone else have it working better this way. I did use SBUS entry, which lead to a couple of problems for me. I later compared original MacBookPro2,1 with mine and noticed, that there's no SBUS on the original Mac. 83 0 0x5b927000 0x7000 0x6000 com.apple.driver.AppleIntelMeromProfile (19) <73 6 5 4 3> <-- NOT MY CPU 96 0 0x5ba9f000 0x8000 0x7000 com.apple.driver.AppleIntelNehalemProfile (11) <73 6 4 3> <-- NOT MY CPU 103 0 0x5bb2b000 0x5000 0x4000 com.apple.driver.AppleIntelYonahProfile (14) <73 6 4 3> <-- NOT MY CPU I have the same. Doesn't really bother me, because everything is working just fine. My cpu is com.apple.driver.AppleIntelPenrynProfile (17) <73 6 4 3> which is also loaded but I dont need the rest of them and they prob cause more trouble there there worth. Check original Macs, what they have there. Again, I have all those kexts loaded, but absolutely no problems with CPU, speed step and whatnot. Now hes talking about a sleep fix which the system will not ID sbus after a wake. I dont have this fix because I'm dump when it comes to the DSDT and cant figure out how to input it without 130 errors but I propose if I did have this in my DSDT I might be able to sleep it also might help with the extra kext being loaded that masterchief is talking about.. Any thoughts on that? You mentioned that you had CPUPlimit=0 and speed step working in 10.6.3. Just go and compare legacy kext with original mac plist and fix the differences. Pfix, reboot and everything will work again. Unless, of course, you meddled to much with different unrelated stuff. If it works, don't break it. I don't think you need to mess with SBUS. Link to comment Share on other sites More sharing options...
00diabolic Posted July 13, 2010 Share Posted July 13, 2010 Upgrading from 10.6.2 to 10.6.3 or from 10.6.3 to 10.6.4 does break speed step, because Mac model plists are changing. Yeah I am still lost on this. I have updated my legacy kext to match 10.6.4. I thought I got it all but the whole SP1 & SP4 code had changed. So I got that and amazingingly those extra kext I was referring to related to sbus went away. Now all I have is my cpus kext again. However I am still missing one critical aspect. Voodoo Monitor and MSR tools is not showing my CPU stepping up and down. All I have is the CPU stuck at the lowest single step. There has to be something else I'm missing with this. What should I do? I've attached my legacy kext maybe its something simple I'm missing. Can you take a look and see if I have it setup right? Keep in mind I added a few elements from the MacBookPro4,1 specifically it has SP4 code and no cstatedict entry (the one entry in MB41 for cstatedict is to turn off 1 c-state). So I made those changes to the default MacBook4,1 plist. I have looked at everything in there and it just seems like there is nothing missing from it now yet still no steps as it was in 10.6.2. Wha could it be? Sleep in OSX is a complicated thing, a lot of things have to be right. I do have sleep working now, but for me it was audio codec that was to blame. Well, one thing I learned from all my long battle to achieve the perfect OSX on my T60p is that you shouldn't put extra stuff in your DSDT only because someone else have it working better this way. I did use SBUS entry, which lead to a couple of problems for me. I later compared original MacBookPro2,1 with mine and noticed, that there's no SBUS on the original Mac. Sleep for me is probably also related to sound seeing as I use the exact same voodooHDA kext you do to get sound. I'll have to remove it and see what happens then. I'm more concerned about getting the CPU stepping again as it was in 10.6.2. LegacyN200.kext.zip Link to comment Share on other sites More sharing options...
Silencers Posted July 13, 2010 Author Share Posted July 13, 2010 However I am still missing one critical aspect. Voodoo Monitor and MSR tools is not showing my CPU stepping up and down. What is your CPU Plimit value in IORegistryExplorer? Link to comment Share on other sites More sharing options...
Recommended Posts