Jump to content

fluid | fixed

beta992

beta992

Member Since 25 Nov 2008
Offline Last Active Yesterday, 04:28 PM
-----

Howto fix Fermi GeForce 4XXX Slow Interface

22 April 2013 - 06:10 PM

After some research (took me a year :P) I think I finally found a solution to get a more smoother interface.
I don't know if this also fixes "Channel Timeout" errors, more testing is needed.

Some history:
After reading several topics/post about power-states that are used on GeForce-cards, I found out that the Fermi series only has 3 P-states instead of 4 (or more).
P-states can control clockings on a GPU down or up when needed. (Down when more 'power' is needed/Up when being more idle)
You can check your clocks by running the tool nvidia Inspector in Windows

My EVGA GeForce 450 GTS (1GB) has the following clock-speeds:
State 3 (lowest energy use)
CPU Clock: 50Mhz
CPU Memory: 324Mhz

State 2 (mid. energy use)
CPU Clock: 405Mhz
CPU Memory: 324Mhz


State 1 (high. energy use)
CPU Clock: 783Mhz
CPU Memory: 1.80Mhz

After looking in Windows 7 what state the nVidia card runs on, I found out that this is usually state 3. In OS X however I could only get smooth animations if the GPU was running in state 2.
My theory is that OS X simple needs more 'power' because it is running on OpenGL and their are way more animations (enabled) than on Windows.

I also checked how my card was running on Linux (KDE). When using their interface I also find out my card was more in state 2 than in state 1.

Editing AppleGraphicsPowerManagement.kext:
To set the correct clock-speeds based on load, editing AGPM.kext was needed since they are undefined for my GPU.
After searching through some post, I found out that some users were using all the 4 'load-fields', when my Fermi-card only has 3.
Also some users simple tried to disable the last two, by setting really high values. This should prevent the CPU hitting state 3.

Some users claim that state 3 is causing the freezes and the slow interface. My theory is that the GPU doesn't switch to state 2 when needed. It is either taking to much time for the GPU to reach state 2 or it would simply mean that the GPU doesn't like being on state 2 all the time for some reason.

To make a long story short: I wanted to have a smooth interface, but also don't wanted the GPU to be fully loaded all the time (causing me a high energy bill).

At the moment I'm using iMac12,2 as model. This because my i5-2400 seems to be inside this model.
By setting this model, it also loaded the AGPM.kext.

These are the values I have chose for my GPU (device id 0dc4):
<key>Vendor10deDevice0dc4</key>
<dict>
<key>BoostPState</key>
<array>
<integer>0</integer>
<integer>1</integer>
<integer>2</integer>
</array>
<key>BoostTime</key>
<array>
<integer>2</integer>
<integer>2</integer>
<integer>2</integer>
</array>
<key>Heuristic</key>
<dict>
<key>ID</key>
<integer>0</integer>
<key>IdleInterval</key>
<integer>200</integer>
<key>SensorOption</key>
<integer>1</integer>
<key>TargetCount</key>
<integer>1</integer>
<key>Threshold_High</key>
<array>
<integer>70</integer>
<integer>87</integer>
<integer>100</integer>
</array>
<key>Threshold_Low</key>
<array>
<integer>0</integer>
<integer>60</integer>
<integer>92</integer>
</array>
</dict>
<key>LogControl</key>
<integer>0</integer>
<key>control-id</key>
<integer>17</integer>
</dict>

As you can see (or don't) I have simply removed the last row (aka row 3). My GPU is clocking as it should be and I can enjoy movies again. :)
Also the sound from the GPU fan seems to be lower as it normally would, since this is also controlled by the GPU-clock.

Setting details:
I have set the IdleInterval from 250 to 100. It seems that setting this as 250 it takes to long for the GPU to switch to a higher or lower state. My theory is that the 250 value is set for the GFX0 (aka the nVidia/ATI-GPU) because it 'only' needs to render a game/high-use application. When the 100 IdleInterval of the Intel GPU, is needed because more/faster switching is needed for 'normal' use.

The BoostPState and the BoostTime simple defined what state to be used when an application needs more 'power'.
The SensorOption should need to be set to read-out the GPU-status.
The TargetCount should be the state were the GPU should focus on.

At least I think so, please let me know if you have more/better information. :)

Testing:
I would like to see some (test) results from Fermi-card users. That's why I posted this as new topic.
But please know that doing this is at your own risk!

As 'proof' please check the following pictures:
Idle (4% idle or less):
Attached File  Schermafbeelding 2013-04-22 om 20.11.13.png   21.76K   4 downloads

Browsing/doing stuff: (more than 4% load)
Attached File  Schermafbeelding 2013-04-22 om 20.11.20.png   21.07K   4 downloads

Benchmarking: (more than 45% load)
Attached File  Schermafbeelding 2013-04-22 om 20.11.41.png   23.63K   3 downloads

[Solved]892 - No Audio

27 October 2012 - 08:15 PM

Hi,

I had audio working with custom DSDT and a patched AppleHDA.kext.

Then I tested VoodooHDA 2.7.4, it worked great. But I wanted to go back to the original setup.

Now the problem is that I don't get any output. (See screens)

What can be wrong? What else did I forget?

Thanks, and hope someone can help, :)


Fixed, see last post. :)

ASUS P8H67-M Pro (B3) Install Guide

29 September 2012 - 06:20 PM

This is my installation guide for OS X 10.8 ML.
I will try to improve my guide all the time. If anyone has a suggestion, I will add it. :)

Warning: I'm not responsible for any damage or problems to your system, lost of data and any other issues.
Be sure to have a backup of important parts of your system! (BIOS-rom(s), drivers, files, etc.)

I have tested most HW-parts on temperatures, (fault/warning) messages, etc. and believed this setup is safe to use. However their could be parts on your setup that don't work (properly) for you.

Last Update: 24/05/2013

My system specs:
ASUS P8H67-M Pro (Rev 3.0/B3) motherboard (BIOS 3806)
Intel i5-2400 @ 2.4Ghz
Kingston DDR3-1333 RAM 8GB
Samsung 830 SSD
EVGA GeForce 450 GTS (1GB)

Machine Status:
OS X ML 10.8.3 booting in UEFI-mode
Audio: Working (VoodooHDA)
Ethernet: Working
Speedstep: Working
USB: Working
USB 3.0: Not working
Sleep: Not working, Clover-bug
EVGA GeForce 450 GTS: Working, but freezes can occur (Fermi bug, only nVidia/Apple can fix it)
(P)ATA: Not used

BIOS Settings:
- Disable USB 3.0 Controller (also legacy-mode)
- Disable PATA/Serial/LPT-ports
- Disable EPU Power Saving
- Enable (no auto!) all available CPU State Reporting (C1E, C3, C6, etc.)

Basic Installation Steps:
You need a copy of a running Macintosh/Hackintosh 10.5, 10.6, 10.7, 10.8 system.
These steps are for a clean OS X installation (aka format). So backup your data before installing OS X 10.8!

I recommend to create a bootable USB-stick/External HDD, these are the files you need:
- Latest Enoch bootloader
- Chameleon.zip (see attachements below)

I have used this guide to create a bootable USB-stick and boot OS X. I did not apply the MBR-patch, because I recommend to install OS X on a GPT-table.
This however has one downside when dual-booting: You will have the install Windows 7/8 and/or Linux in UEFI-mode. A small guide how to do this can be found below.

Before booting the USB, org.chameleon.Boot.plist and SMBios.plist in the /Extra folder of the USB-stick. I also recommend to create a /Extra/Tools folder, where you can place all the required utilities/kexts, etc. needed for the OS X installation.

These are the files you can place in the Tools folder:
This, HWSensors and the Realtek driver

If you can't boot after installation, try to boot with the flags -x -v.


DSDT:
I have added a DSDT.zip attachement. Their are two folders inside:
- orig
- patched

Copy DSDT.aml from the patched folder to the /Extra folder (Chameleon) or for (when installed) Clover to /EFI/CLOVER/ACPI/patched

I recommend to create your own DSDT with DSDT Editor and apply my Fix.txt that also can be found in the DSDT patched-folder.

SSDT:
This can be done for or after the installation. Get the following ssdtPRGen.shfrom Piker-Alpha Revoboot.
Run the script and it will automatically generate a SSDT file and place it on your desktop.

Post Installation
After successful booting OS X ML, unzip all the downloaded files from the Tools that we placed on the USB-stick.
Install HWSensors, Realtek RTL and run Kext Utility to repair permissions.
Reboot and boot again with the ML USB-stick

You will now have a basic OS X setup. Follow the additioneel steps below to install a bootloader and patches to get more complete setup:

Install Clover (UEFI) Bootloader:
I'm using the UEFI bootloader Clover as default bootloader.

Use the following install options:
Attached File  Schermafbeelding 2013-04-21 om 20.27.34.png   187.1K   71 downloads

Open a Terminal-window after installation and enter the following commands to mount the EFI-partition:
sudo mkdir /Volumes/EFI
diskutil list
sudo mount_msdos /dev/disk*s1 /Volumes/EFI

Example:
sudo mount_msdos /dev/disk0s1 /Volumes/EFI or sudo mount_msdos /dev/disk1s1 /Volumes/EFI

Replace the default config.plist contents in the CLOVER directory with the following:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com...yList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GUI</key>
<dict>
<key>Timeout</key>
<string>5</string>
<key>DefaultBootVolume</key>
<string>Macintosh HD</string>
<key>Theme</key>
<string>AppleStyle</string>
<key>DebugLog</key>
<true/>
<key>ScreenResolution</key>
<string>1680x1050</string>
<key>Mouse</key>
<dict>
<key>Enabled</key>
<false/>
</dict>
<key>HideEntries</key>
<dict>
<key>OSXInstall</key>
<true/>
<key>Recovery</key>
<true/>
<key>Duplicate</key>
<true/>
<key>WindowsEFI</key>
<false/>
<key>Grub</key>
<true/>
<key>Gentoo</key>
<true/>
<key>Ubuntu</key>
<true/>
<key>OpticalUEFI</key>
<true/>
<key>InternalUEFI</key>
<true/>
<key>ExternalUEFI</key>
<true/>
</dict>
<key>Volumes</key>
<dict>
<key>Legacy</key>
<false/>
</dict>
</dict>
<key>SystemParameters</key>
<dict>
<key>prev-lang:kbd</key>
<string>nl:0</string>
<key>boot-args</key>
<string>npci=0x2000 slide=0 darkwake=0 WithKexts</string>
<key>InjectSystemID</key>
<true/>
<key>LegacyBoot</key>
<string>PBR</string>
</dict>
<key>Graphics</key>
<dict>
<key>GraphicsInjector</key>
<true/>
<key>PatchVBios</key>
<true/>
</dict>
<key>PCI</key>
<dict>
<key>LpcTune</key>
<true/>
<key>HDAInjection</key>
<string>Detect</string>
<key>USBInjection</key>
<true/>
<key>InjectClockID</key>
<true/>
<key>USBFixOwnership</key>
<true/>
</dict>
<key>ACPI</key>
<dict>
<key>DsdtName</key>
<string>DSDT.aml</string>
<key>DropOemSSDT</key>
<true/>
<key>GeneratePStates</key>
<false/>
<key>GenerateCStates</key>
<false/>
<key>PLimitDict</key>
<string>0</string>
<key>UnderVoltStep</key>
<string>0</string>
<key>DoubleFirstState</key>
<false/>
<key>MinMultiplier</key>
<string>16</string>
<key>MaxMultiplier</key>
<string>34</string>
<key>PluginType</key>
<string>0</string>
<key>ResetAddress</key>
<string>0xCF9</string>
<key>ResetValue</key>
<string>0x06</string>
<key>EnableC6</key>
<true/>
<key>EnableC4</key>
<true/>
<key>EnableC2</key>
<true/>
<key>C3Latency</key>
<string>0x3E7</string>
<key>EnableISS</key>
<true/>
<key>DropDMAR</key>
<true/>
<key>DropBGRT</key>
<true/>
</dict>
<key>SMBIOS</key>
<dict>
<key>ProductName</key>
<string>iMac12,2</string>
</dict>
<key>CPU</key>
<dict>
<key>BusSpeedkHz</key>
<string>99790</string>
</dict>
<key>KernelAndKextPatches</key>
<dict>
<key>AsusAICPUPM</key>
<true/>
<key>AppleRTC</key>
<true/>
<key>KextsToPatch</key>
<dict>
<key>0</key>
<dict>
<key>Name</key>
<string>IOAHCIBlockStorage</string>
<key>Find</key>
<data>QVBQTEUgU1NE</data>
<key>Replace</key>
<data>AAAAAAAAAAAA</data>
</dict>
</dict>
</dict>
<key>RtVariables</key>
<dict>
<key>MountEFI</key>
<true/>
<key>LogLineCount</key>
<string>3000</string>
<key>LogEveryBoot</key>
<false/>
</dict>
</dict>
</plist>

To install Clover as bootable-option (needed for ASUS-boards) format an USB-stick inside Windows with a FAT32-filesystem:
- Download this Shell.efi file and place it into the root of the USB-stick as Shellx64.efi
- Reboot your system, and enter the BIOS-settings screen
- Go to Advanced Settings > Exit > Launch EFI-shell from filesystem
- The EFI-shell should now automatically load.
- Run the following commands from the EFI-shell (# ... # are just comments):
> map fs* #choose the correct disk where OS X is installed#
> fs1: #for me it's fs1#
> cd \EFI\CLOVER #change to the \EFI\CLOVER directory on the EFI-partition, if you can't cd, you have the wrong fs*:#
> bcfg boot dump #list current boot-menu settings#
> bcfg boot add 0 CLOVERX64.efi "OSX" #add Clover as a boot-option#
> bcfg boot dump #list the changed made to the boot settings#
> reset #restart system#
That's it, you can now boot into Clover-EFI (and boot OS X afterwards) by selecting OSX in the BIOS-menu.

If you cannot boot correctly, try to change Clover boot-settings by pressing the O key on the keyboard in the Clover-bootmenu.
Check /EFI/doc/UEFI boot with Clover.rtf for more info

Speedstep:
- Flash the BIOS with EZ-Flash (risky! This can brick your MB!) with your own patched rom.
- Restore the BIOS settings that are listed on the top of this post
- Try to boot OS X
- Remove the NullCPUPowerManagement.kext in the /System/Library/Extensions folder
- Update Boot Cache
- Reboot.

If it gives you a KP, restore NullCPU* from the USB to /System/Library/Extensions

Patch IOPlatform:
- Open the file /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/Plugins/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/iMac12_2.plist with TextWrangler.
- Replace the following lines:
<key>iMac12,2</key>
<string>SP11</string>
<key>SP11</key>
<data>........................</data>
With this from the MacPro3,1 model:
<key>iMac12,2</key>
<string>SP11</string>
<key>SP11</key>
<data>
xgYAAAAAAQIEAAACAgAAVQBuAHMAcABlAGMAaQBmAGkAZQBkDAAH/wcAACEAAAACAAAB//8A/wD/
AP8A/wD/AAYAAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wAL
DwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD
/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/
AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsP
AAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/
AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8B
AAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8A
AP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8A
Cw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEA
A/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA
/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wALDwAA/wEAA/8ACw8AAP8BAAP/AAsPAAD/AQAD/wAL
DwAA/wEAA/8ACw8AAP8BAAP/AAsKAAABCgAAAQAAAAEAAAD1AAEFAAABAAAF/wABAAAAAQAAAAEG
AAACAAAABAEAAIAAwwC3AC4ANAALAAAAAgAAAAEAAAABAAAAAgAAAAICAAACBgAAAQAAAAEAAAD1
AAEFAAADAAAF/wADAgAAAwYAAAkAAAAEAAAATAAEBQAABAAABf8AAwAAAAEAAAAEBAAAgAAAAAoK
AAAIAAAABQAAAAgAAAAFAAAAAwAAAAIAAAAFBgAABwAAAAEAAAD1AAEFAAAGAAAF/wADAAAAAwAA
AAYGAAACAAAABAAAAKAADwUAAAcEAAAHAAAAAwAAAAQAAAAHBgAACAoAAAMAAAX/AAQCAAAIBgAA
AQAAAAEAAADoAAMFAAAJAAAF/wAFAgAACQYAAAIAAAAEAAAA6AADBQAADQAAAAoAAAANAAAACgAA
AAUAAAABAAAACgYAAAcAAAABAAAA9QABBQAACwAABf8ABQAAAAIAAAALBgAAAgAAAAQAAACgAA8F
AAAMBAAADAAAAAUAAAADAAAADAYAAAgKAAAJAAAF/wAGAgAADQYAAAEAAAABAAAA6AADBQAADgAA
Bf8ABwIAAA4GAAACAAAABAAAAFgAGwUAABIAAAAPAAAAEgAAAA8AAAAHAAAAAQAAAA8GAAAHAAAA
AQAAAPUAAQUAABAAAAX/AAcAAAACAAAAEAYAAAIAAAAEAAAAoAAPBQAAEQQAABEAAAAHAAAAAwAA
ABEGAAAICgAADgAABf8ACAIAABIGAAABAAAAAQAAAOgAAwUAABMAAAX/AAkCAAATBgAAAgAAAAQA
AAD8AAgFAAAXAAAAFAAAABcAAAAUAAAACQAAAAEAAAAUBgAABwAAAAEAAAD1AAEFAAAVAAAF/wAJ
AAAAAgAAABUGAAACAAAABAAAAKAADwUAABYEAAAWAAAACQAAAAMAAAAWBgAACAoAABMAAAX/AAoC
AAAXBgAAAQAAAAEAAADoAAMFAAAYAAAF/wALAgAAGAYAAAIAAAAEAAAAKAAKBQAAHAAAABkAAAAc
AAAAGQAAAAsAAAABAAAAGQYAAAcAAAABAAAA9QABBQAAGgAABf8ACwAAAAIAAAAaBgAAAgAAAAQA
AACgAA8FAAAbBAAAGwAAAAsAAAADAAAAGwYAAAgKAAAYAAAF/wAMAgAAHAYAAAEAAAABAAAA9AAB
BQAAHQAABf8ADQIAAB0GAAACAAAABAEAAIAAwwC3AC4ANAALAAAAHQAAAB4AAAAdAAAAHgAAAA0A
AAABAAAAHgYAAAcAAAABAAAA9QABBQAAHwAABf8ADQAAAAIAAAAfBgAAAgAAAAQAAACgAA8FAAAg
BAAAIAAAAA0AAAADAAAAIAYAAAgKAAAdAAAF/w==
</data>
- Follow the additional steps from here to get speedstep to work properly
- Copy your SSDT(-*).aml file to the ACPI/patched folder. But before you do, hit the F4 in the Clover GUI first! After booting, open the origin folder and check for the latest SSDT filename. If it is SSDT-6.aml, rename you generated SSDT file to SSDT-7.aml.
- Regenerate Cache
- Reboot

Use MSRDumper, to check how speedstep is working:
MSRDumper PStatesReached: 16 17 18 19 20 32 33

Update OS X to 10.8.3:
- Install the 10.8.3 combo-update (http://support.apple.com/kb/DL1640) - DON'T REBOOT AFTER INSTALLATION!
- Redo all the above patches to the kexts: IOPlatformPluginFamily, etc.
- Run Kext Utility
- Reboot

nVidia GeForce 4xxx (Fermi) Patch & Fix:
Step 1
Step 2

Optional Stuff:

Windows 7/8 64-bit Dual Boot setup:
If you want to dual boot OS X and Windows, we first need to create an bootable UEFI USB-stick so that we can install Windows on a GPT-layout.

- install OS X first: Create a custom partition layout, and leave some disk space (30GB or more) for the Windows 7/8 installation (Don't make a partition, just let it empty)
If you have already installed OS X: You don't need to reinstall, just boot with the ML-USB stick, open Disk Utility, and shrink the OS X partition.

- Next step is to create a FAT32 USB-stick for Windows 7/8 (x64), format an USB-stick (inside Windows) with FAT32 and follow the steps below:
For Windows 8 this is easy: Just run the upgrade/setup advisor and let it create an USB-stick with Windows 8 Setup on it. (Download the Official Installer)
For Windows 7 this is more difficult, see one of the following guides: link link link

- If you have successfully created the Windows USB-stick, it is time to boot the USB-stick in UEFI-mode. Just plug-in the USB-stick, hit the F8 (BIOS)-key and select the option: *UEFI: USB-stick name*, and hit enter to boot. (If you don't see the *UEFI:* part, than your USB-stick is wrong created, try again)
- When successfully booted, install Windows as Custom Installation on the empty space we have created above. (Don't create a partition, just click on the empty space and click on the Next-button)
- After the installation, you need to set Clover back as first boot-option, and you should boot into OS X or Windows from the Clover-menu without any problems.
It should now also be possible to select the Startup Disk inside OS X. (Not tested)


Sources/Tools used for this guide:
Clover
ProjectOSX Forums
MSRDumper
TextWrangler

All credits (and a big thank you!) goes out to the members that created the kexts, patches, dsdt edits (olarila.com), Clover (also to the members on ProjectOSX > Slice, apianti, dmazar, Revogirl, and all other unlisted members :) ), bios patch (samisnake), kozlek (HWSensors/FakeSMC), etc.
I only combined all information from other sources and my experiences to create this guide.

Please let me know if you're unlisted! :)

© 2013 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   Web hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy