Jump to content

i5 2500k with HD3000 wake issue


a1k0n
 Share

22 posts in this topic

Recommended Posts

Hi there.

I have a Problem with my Intel HD 3000 after sleep.

Graphic Card wont wake up. Monitor is black. I can turn Volume Up/down and login but Monitor stays black with no signal.

 

System:

- z68x-ud3h-b3 with latest Uefi BIOS U1l

- i5 2500k with HD3000

- Clover v2605 on hidden Fat32 EFi-Partition

- OEM/z68x-ud3h-b3/UEFi Folder with own DSDT.aml

- 10.9.1 with Fusion Drive and Recovery HD (SSD-HDD)

 

All works great but no wake from sleep.

I'm also testing hibernate 29 but clover cant load image so i have boot with cancel hibernate.

Link to comment
Share on other sites

Hi and thx for help.

 

For Graphic ID iam using:

<key>Graphics</key>
	<dict>
		<key>InjectEDID</key>
		<string>Yes</string>
		<key>CustomEDID</key>
		<data>
		AP///////wAEcgkAcD9RgQ8SAQNoLx54KscgpFVJmScTUFS/74BxT4GAlQ+V
		AKlAswABAQEBITmQMGIaJ0AYsDZA2SgRAAAcAAAA/wBMQVAwODAwMzQyMTEK
		AAAA/QA4TB5TEQAKICAgICAgAAAA/ABBY2VyIFgyMjNXCiAgABw=
		</data>
		<key>Inject</key>
		<dict>
			<key>Intel</key>
			<true/>
		</dict>
		<key>ig-platform-id</key>
		<string>0x01268086</string>
	</dict>

and

<key>Devices</key>
	<dict>
		<key>FakeID</key>
		  <dict>
		    <key>IntelGFX</key>
		    <string>0x01268086</string>
		</dict>
		<key>Audio</key>
		<dict>
			<key>Inject</key>
			<string>889</string>
		</dict>
	</dict>

Custom EDID i create with Windows and EDID Editor

 

Don't use PNLF because it s a Desktop PC ( is that a problem?)

 

In DSDT.aml i was use:

 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x0E)
                    {
                        "AAPL,slot-name", 
                        "Built In", 
                        "name", 
                        "Intel Graphics Controller", 
                        "model", 
                        Buffer (0x17)
                        {
                            "Intel HD Graphics 3000"
                        }, 

                        "device_type", 
                        Buffer (0x14)
                        {
                            "Graphics Controller"
                        }, 

                        "device-id", 
                        Buffer (0x04)
                        {
                             0x26, 0x01, 0x00, 0x00
                        }, 

                        "AAPL,snb-platform-id", 
                        Buffer (0x04)
                        {
                             0x10, 0x00, 0x03, 0x00
                        }, 

                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    }

The second problem is i set power saving for monitor after 5 minutes. In Windows System stay alive an monitor goes sleep. After i move mouse or press any key monitor come back and i can login. Thats okay.

In Mavericks after 5min OSX log me out and Monitor stay alive. No Sleep.

 

 

Link to comment
Share on other sites

I see a couple of errors there.  

 

1- "0x01268086" is not a valid "ig-platform-id" value. Wiki

 

2-
"device-id",Buffer (0x04)
{
0x26, 0x01, 0x00, 0x00
}, 
and
        <key>FakeID</key>
         <dict>
         <key>IntelGFX</key>
         <string>0x01268086</string>
        </dict>
Are the same thing. Pick one, delete the other.
 
And upload a DarwinDump or at least a ioreg to see the whole picture.
 
EDIT: you may also wanna try enabling these Clover DSDT fixes: NewWay_80000000, FIX_INTELGFX_100000 & AddIMEI_80000. Wiki
Link to comment
Share on other sites

in your dsdt:

Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                Store (Package (0x0E)
                    {
                        "AAPL,slot-name", 
                        "Built In", 
                        "name", 
                        "Intel Graphics Controller", 
                        "model", 
                        Buffer (0x17)
                        {
                            "Intel HD Graphics 3000"
                        }, 

                        "device_type", 
                        Buffer (0x14)
                        {
                            "Graphics Controller"
                        }, 

                        "device-id", 
                        Buffer (0x04)
                        {
                             0x26, 0x01, 0x00, 0x00
                        }, 

                        "AAPL,snb-platform-id", 
                        Buffer (0x04)
                        {
                             0x10, 0x00, 0x03, 0x00
                        }, 

                        "hda-gfx", 
                        Buffer (0x0A)
                        {
                            "onboard-1"
                        }
                    }, Local0)
                DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                Return (Local0)
            }
        }
    } 

there are some errors, it should look like this:

Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x04)
                        {
                           "device-id", 
                            Buffer (0x04)
                            {
                                0x26, 0x01, 0x00, 0x00
                            }, 

                            "AAPL,snb-platform-id", 
                            Buffer (0x04)
                            {
                                0x10, 0x00, 0x03, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

Cheers :-)

Link to comment
Share on other sites

I would recommend you to use just one method of injection. If you're injecting everything through DSDT then disable Clover's injector, because according to the dumped DSDT the device id is wrong: 0x16, 0x01, 0x00, 0x00. And if you want to use Clover's method then enable the injector and add the proper FakeID and ig-platform-id.

Link to comment
Share on other sites

The device id is correct, its desktop hd3000 id for snb Platform...

 

I know what you mean, on newer desktops/Laptops with ig-Platform-id it should Look like:

0x0X, 0x00, 0x26, 0x01

 

But to mention device-id is Not ig-Platform-id... Thats why this is device id:

0x26, 0x01, 0x00, 0x00...

 

He needs just the correct snb id...

 

And jes, if you use clover and dsdt and whatever, its Not good! Use only One of them!

 

Cheers:-)

Link to comment
Share on other sites

What I meant is that it seems the device-id on his DSDT is 126, but Clover is apparently injecting the 116 id and who knows what else on top of his DSDT properties. So the final result is a mix of settings leading to the issues experienced.

Link to comment
Share on other sites

What I meant is that it seems the device-id on his DSDT is 126, but Clover is apparently injecting the 116 id and who knows what else on top of his DSDT properties. So the final result is a mix of settings leading to the issues experienced.

Aah, got you now :-) Yes, that what i think too :-)

 

But however, he need to learn and find out how to fix it :-)

Link to comment
Share on other sites

Try both, you never really know which will give better results but I recall someone testing and concluding 126 performs better, but who knows. But more important, test different snb-platform and ig-platform ids (for hd2000/3000 it's "0x00301000" or "0x00, 0x30, 0x10, 0x00" for DSDT).

 

I would recommend doing all that with Clover, as it can be changed within its interface in case your system refuses to boot.

 

For DSDT the correct format would be:

"device-id", 
Buffer (0x04)
{
   0x26, 0x01, 0x00, 0x00
},

Another thing you could try is changing the Mac model to a MacBookPro8,1-8,3. At least for my system those work much better than the MacMini or MacPro profiles.

 

 

EDIT: also add the MCHC and IMEI devices to your DSDT, I don't really know what they do but there are kexts loaded from them in ioreg so they must do something.

Device (MCHC)
{
     Name (_ADR, Zero)  // _ADR: Address
}
Device (IMEI)
{
    Name (_ADR, 0x00160000)  // _ADR: Address
}
Link to comment
Share on other sites

MCHC = Memory Controller Hub (Dram controller)

This is necessary for a good working osx.

But if its here, it will mostly be loaded too, see down for description:

 

IMEI = Intel Management Engine Interface

If you add imei device to your dsdt, it's only cosmetic...

because, imei will always be loaded, if you have imei in your Laptop/Pc,

the difference is only:

Without IMEI device, you see in ioreg under PCI0 a device called "pci8086xxxx@1F..."

and with IMEI device in your dsdt you see in ioreg under PCI0 instead of "pci8086xxxx@1F...", "IMEI@1F...."...

so you see... its only cosmetic...

 

Cheers :-)

Link to comment
Share on other sites

According to the ioreg within the DarwinDumper report, his MCHC device (8086,100) is not loading the "AppleSMCPDRC" kext that I do see loaded in my system.

 

Look in the zip i Attached:

 

MacbookPro 11,2 - Doesn't load AppleSMCPDRC

MacbookPro 10,2 - Loads AppleSMCPDRC

My IOREG + Kext loaded list - Doesn't load AppleSMCPDRC
 
Why? Look at the device-id's, now open AppleSMCPDRC and look into the Info.plist...
AppleSMCPDRC supports only 2 Devices...
 
​Sure, we can add a _DSM Method into MCHC Device, with faked Device-ID, but for what? Maybe the kext even doesn't support our devices, or our Devices are controlled via Firmware...
Even a rea MacBookPro 11,1 and 11,2 doesn't load AppleSMCPDRC...
 
Just to mention :-)
 
Cheers :-)

Kexts_ioreg.zip

Link to comment
Share on other sites

Sure, here's my ioreg and my DSM properties:

"subsystem-vendor-id", 
Buffer (0x04)
{
    0x6B, 0x10, 0x00, 0x00
}, 
"subsystem-id", 
Buffer (0x04)
{
    0x00, 0x00, 0x00, 0x00
}, 
"ig-platform-id", 
Buffer (0x04)
{
    0x00, 0x30, 0x10, 0x00
}, 
"device-id", 
Buffer (0x04)
{
    0x26, 0x01, 0x00, 0x00
}, 
"hda-gfx", 
Buffer (0x0A)
{
   "onboard-2"
}

Be aware that I don't use its output, just the graphics acceleration.

Link to comment
Share on other sites

the graphics part we already got working :-) clover injected just always 116 and not 126 :-)

116 is working too, he can use here vanilla frame buffer for VGA port

on 126 he needs patched frame buffer for VGA :-) but 126 is just better as 116 :-)

 

You ioreg is corrupt, can you use ioreg v 2.1?

 

Cheers :-)

Link to comment
Share on other sites

IOReg dumps work fine with rev 3.0.2, I can open it here no problem.

 

Anyway, here's a DarwinDumper ioreg report for you.

 

IORegistry.zip

 

EDIT: if what you want is to load the MCHC driver then you don't need to inject any property. An empty device called MCHC with zero address will do, I posted an example before.

Link to comment
Share on other sites

 Share

×
×
  • Create New...