Jump to content

Gigabyte board REBOOTS on WAKE, Help !


bisk

Recommended Posts

Aloha,

 

I have an old series 4 board running 10.11.6. All is great except audio and a reboot on wake problem.

 

It turns out that the ALC889A audio on my board exhibits a ghost/phantom codec which renders native AppleHDA mods ineffective so I simply use VoodooHDA and all is well on that front.

 

However the reboot on wake problem persists !

 

This system sleeps with NO blinking power button light as if it is off. When I click the mouse or tap the K/B, it reboots instantly upon wake with NO desktop screen.

 

This HackPro used to do a CMOS reset as well despite the DSDT RTC fix but that was remedied by installing a patched AppleRTC kext. Never used to need to do BOTH !

This is a Gigabyte GA-EG45M-UD2H motherboard with Core 2 Quad Q6600 overclocked from 2.4GHz to 3.0GHz.

 

The BIOS is upgraded to the final F4 version and I am booting clover v2.3k r3998 defined as a MacPro3,1.

 

I know that these Gigabyte boards always had reboot on wake tendencies but there was a DSDT fix that declared 2 new vars: SLPE and AG3E which were then used in the _PTS() and _WAK() fuctions to fix the problem.

 

Unfortunately, what worked for SnowLeo/Lion/MountainLion does not seem to work for El Capitan sad.png

 

Everything else works fine including SpeedStep but seemingly with only 2 speeds, 2GHz and 3Ghz.

But my temps are super cool in the upper 30's-lower 40's C, never even reaching 45C.

 

I'm hoping that there is a DSDT guru out there who can help me with this reboot on wake issue.

 

Here is my hibernate settings info ...

 

pmset -g
Active Profiles:
AC Power        -1*
Currently in use:
 hibernatemode        0
 womp                 1
 networkoversleep     0
 sleep                60 (sleep prevented by softwareupdate_notify_agent)
 Sleep On Power Button 1
 ttyskeepawake        1
 hibernatefile        /var/vm/sleepimage
 autorestart          0
 disksleep            10
 displaysleep         20

 

Another strange behavior is that right after the clover boot menu, sometimes I get a blank display and system freeze instead of the verbose log screen. It may take 2 or 3 reboots until I finally get the line of:

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

and the system log ...

 

What causes this ? What exactly happens in between the clover boot menu and the screen dump ?

 

Any help to point me in the right direction will be greatly appreciated.

 

I enclose my DSDT, config.plist and ioreg.

 

Thanks in advance !

HelpFiles.zip

Link to comment
Share on other sites

Hey, turns out that I solved this one myself !

 

All I needed to do was to add a DSDT mod such that a "Windows 2001" style _INI() executes. Now this HackPro wakes from sleep properly every time AND no more intermittent black screens following the clover boot menu at startup. All is good :)

 

So for all of you experiencing the reboot on wake thing, be sure to consider doing the "Windows Init" DSDT mod.

 

Bye for now ...

Link to comment
Share on other sites

Oh sure thing shatterhenner,

 

I assume that you are familiar with DSDT modding. If not, please go out and grab iasl and read docs on how to use it to compile/decompile DSDT files.

 

Use the F4 feature of your clover boot manager to extract a raw version of your current DSDT.

 

Decompile DSDT.aml with iasl -d and then search for the OS specific init function. It can go be many names depending on M/B.

 

Could be _INI(), OSFG(), OSYS(), etc.

 

You will see code like this ...

 

Method (OSYS, 0, NotSerialized)
    {
        Store (0x10, Local0)
        If (CondRefOf (_OSI, Local1))
        {
            If (_OSI ("Windows 2000"))
            {
                Store (0x12, Local0)
            }

            If (_OSI ("Windows 2001"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP1"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001 SP2"))
            {
                Store (0x13, Local0)
            }

            If (_OSI ("Windows 2001.1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2001.1 SP1"))
            {
                Store (0x14, Local0)
            }

            If (_OSI ("Windows 2006"))
            {
                Store (0x15, Local0)
            }
        }
        Else
        {
            If (MCTH (_OS, "Microsoft Windows NT"))
            {
                Store (0x12, Local0)
            }
            Else
            {
                If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
                {
                    Store (0x11, Local0)
                }

                If (MCTH (_OS, "Linux"))
                {
                    Store (One, Local0)
                }
            }
        }

        Return (Local0)
    }

 

The simplest thing is to change it to this:

 

Method (OSYS, 0, NotSerialized)
    {

        Store (0x13, Local0)

        Return (Local0)
    }

 

If you are a purest, you could go ahead and work in  a block with:

 

     If (_OSI ("Darwin"))
     {
         Store (0x13, Local0)
     }

 

but why bother since it's highly unlikely that this DSDT will be used for any other OS.

 

Alternatively, there is supposed to be a clover config option to do this but I have had mixed results with that for other fixes so I tend to avoid clover "on the fly" patches.

 

Hope this helps.

Link to comment
Share on other sites

×
×
  • Create New...