Jump to content

No graphics / USB / Audio after wake


anor4k
 Share

586 posts in this topic

Recommended Posts

One strange thing happened today.. Recently my main system was Windows, but decided to use OS X, since it's better for me for programming. So I entered the BIOS, changed primary graphics from PEG to IGP and guess what.. my system booted just fine, without blind boot. Intel HD4600 pops up in Clover setting and in OS X. Multi-monitor works, but no luck with wake (I will reinstall OS X and try once more). I don't know how it happened, most likely it's just some glitch in BIOS settings. 

 

@edit: No luck with wake after reinstall. I guess I will reflash the BIOS

@edit2: Reflashed BIOS, the issue is still there. When I boot with IGD as primary I get boot up output on the display attached to my R9 390. One thing is curious. If I boot the system with no display attached, and I attach a display after OS X boots, wake is working. Otherwise, when booting with display <-> R9 390, wake isn't working. Apparently having fully working HD4600 isn't enough for OS X to wake with Radeon card.

My Asrock B85 Killer exhibits the same behavior. The only thing I haven't tried is to boot without a display connected.

 

Mieze

Link to comment
Share on other sites

I dumped IOReg twice - one time for boot up with display connected and one time without. There is one difference in IOReg dumps - PP_BootupDisplayState property in first case is 1, in second case (without display at boot up) it's 2. I tried to force it to 2 in any case by adding

<key>PP_BootupDisplayState</key>
<integer>2</integer>

to aty_properties in AMD8000Controller.kext, but in IOReg it's changing to 1 anyway. Maybe forcing it to change to 2 is solution? I attached IORegs if it helps anyone (dumped by IOJones).

iodumps.zip

Link to comment
Share on other sites

Maguro did the trick. It only has one connector (this is the reason why I never tried it earlier), but I'm using DP only so it's not a problem for me.

I've patched the single connector in Maguro with the DP entry from Futumaki and the display is now waking correctly. The configuration works for both MacPro5,1 and MacPro6,1

 

Thank you Mieze, Vlad and Slice!!! 

 

My Nvidia goes back where I found it  :)

 

Why does that work? Did you patch Futumaki for your GPU and it had wake problem, then used the same patched DP connector in Maguro and it worked?

 

I have followed this thread as I have the same wake problem with my laptop on El Capitan (QM77/i7-3520M/Radeon 7570M).

 

This laptop has Intel HD 4000 disabled by manufacturer and Radeon is the primary GPU so I was wondering if something similar would work with this.

Link to comment
Share on other sites

My Asrock B85 Killer exhibits the same behavior. The only thing I haven't tried is to boot without a display connected.

 

Mieze

 

Small update. On my MSI it happens when I turn on Windows 8/8.1/10 Features option. Otherwise I get a blind boot and wake on OS X works on default.

Link to comment
Share on other sites

Have been following this thread, and have the same problem. Just wanted to add my details for info and offer assistance if possible, although I'm new to all this so not sure I can be of much/any help! Build spec as follows:

 

i5 3570K (Intel HD 4000 IGPU)

AsRock Z77 Extreme4

Gigabyte Radeon HD 7970 OC/Ghz Edition

 

Am currently using the 13,2 iMac profile (felt this was the best to use as using an Ivy Bridge build?). Have set BIOS to PEG as primary graphics device, and have set the 'IGPU Multi Monitor' BIOS setting to 'Disabled' - so I think my IGPU is not active at all. I've previously tried setting the primary graphics device to 'Onboard', and it does blind boot so it seems my motherboard respects the choice I've made regardless of where my HDMI is plugged in. However, blind boot is not an option for me as I'm dual booting between legacy Windows 10 and OS X so I need to see the BIOS screen to select the correct drive!

 

I haven't tried blind booting with primary graphics set to IGPU and attempting sleep/wake in OS X.

 

Have just used the default Clover Configurator options.

Link to comment
Share on other sites

Could it be that OS X fails to initialize display because it can't get information about display power states?

 

On Mavericks and Yosemite I have "DevicePowerState" in AppleBacklightDisplay -> IOPowerManagement. On El Capitan it's missing.

 

I think that's very likely.

Link to comment
Share on other sites

I have been cross examining the ioreg data from different apple computers and my own build and this is what I have found so far, AGPM (AppleGraphicsPowerManagement) seems to be not working properly and gpu-control is not working either which I assume is the cause for the graphic adapter not to wake up from sleep or send the wake signal from gnu to the displays.

As you can see AGPM is not loading anything. It should have load the gpu-control and IOHWControl but it doesn't.

post-1011040-0-21529200-1455221539_thumb.png

post-1011040-0-95983300-1455221543_thumb.png

Link to comment
Share on other sites

I have been cross examining the ioreg data from different apple computers and my own build and this is what I have found so far, AGPM (AppleGraphicsPowerManagement) seems to be not working properly and gpu-control is not working either which I assume is the cause for the graphic adapter not to wake up from sleep or send the wake signal from gnu to the displays.

As you can see AGPM is not loading anything. It should have load the gnu-control and IOHWControl but it doesn't.

 

Could I have that ioreg from the original iMac 12,2? Here's from my laptop incase you are interested, Radeon 7570M, IGPU is disabled by manufacturer.

 

MacBook Pro.zip

Link to comment
Share on other sites

Could I have that ioreg from the original iMac 12,2? Here's from my laptop incase you are interested, Radeon 7570M, IGPU is disabled by manufacturer.

 

attachicon.gifMacBook Pro.zip

Hi there,

Thanks for uploading the ioreg file but I'm afraid I can not upload that ioreg file because it's not my own, I just needed to study the file to figure out what's what so a friend gave it to me and asked mo not to upload it anywhere.

 

By the way does your laptop wake from sleep?

Link to comment
Share on other sites

Hi there,

Thanks for uploading the ioreg file but I'm afraid I can not upload that ioreg file because it's not my own, I just needed to study the file to figure out what's what so a friend gave it to me and asked mo not to upload it anywhere.

 

By the way does your laptop wake from sleep?

 

Ok. No it doesn't, also having black screen after wake. Can't even use any workarounds because there is no IGPU.

Link to comment
Share on other sites

As far as I know apple doesn't disable the IGPU, depending on the system and its definition it loads the different configurations when system is booting, these configurations can be found in AppleGraphicsControl.kext and AppleGraphicsPowerManagementControl.kext which tells the OS which graphics controllers should be loaded when OS starts.

Link to comment
Share on other sites

As far as I know apple doesn't disable the IGPU, depending on the system and its definition it loads the different configurations when system is booting, these configurations can be found in AppleGraphicsControl.kext and AppleGraphicsPowerManagementControl.kext which tells the OS which graphics controllers should be loaded when OS starts.

I am running an OptiPlex 780 with El Capitan that wake from sleep works fine with a DSDT edited for the HD 5450. I also have an HD 6450 that I've installed with a DSDT not edited for the HD 6450 which doesn't wake from sleep. I don't know how to edit a DSDT so I haven't been able to try editing one for the HD 6450 like the DSDT is edited for the HD 5450. Does anyone want to try editing it or guide me through doing it?

Link to comment
Share on other sites

I am running an OptiPlex 780 with El Capitan that wake from sleep works fine with a DSDT edited for the HD 5450. I also have an HD 6450 that I've installed with a DSDT not edited for the HD 6450 which doesn't wake from sleep. I don't know how to edit a DSDT so I haven't been able to try editing one for the HD 6450 like the DSDT is edited for the HD 5450. Does anyone want to try editing it or guide me through doing it?

 

5000 series should wake from sleep fine on El Capitan, I don't think you can get HD 6450 working by editing the DSDT the same way.

Link to comment
Share on other sites

5000 series should wake from sleep fine on El Capitan, I don't think you can get HD 6450 working by editing the DSDT the same way.

5000 series doesn't work for wake from sleep for the HD 6450, there are a lot of posts from others about this problem with this and other graphics cards.

@Grim Reaper: In case you don't know how to edit a DSDT use Clover injection which is much easier to handle.

 

Mieze

I've tried that but it doesn't work. I think a DSDT edit would work or something else which is unknown.

Link to comment
Share on other sites

I've tried that but it doesn't work. I think a DSDT edit would work or something else which is unknown.

No, there is no DSDT patch which solves the problem but here is a list of things which have to be set appropriately for wakeup to work:

  • The BIOS settings.
  • A system definition which matches your hardware.
  • A framebuffer which matches your system definition (you might need to patch it for your hardware).

Try to mimic the configuration of the Mac model you are faking as close as possible. If this doesn't help you are out of luck because of the way your BIOS works.

 

Mieze

  • Like 1
Link to comment
Share on other sites

No, there is no DSDT patch which solves the problem but here is a list of things which have to be set appropriately for wakeup to work:

  • The BIOS settings.
  • A system definition which matches your hardware.
  • A framebuffer which matches your system definition (you might need to patch it for your hardware).

Try to mimic the configuration of the Mac model you are faking as close as possible. If this doesn't help you are out of luck because of the way your BIOS works.

 

Mieze

 

I think I understood why sleep doesn't work on 10.11 with AMD GPU's after reading what you have said previously in this thread, but I didn't really understood if there is hope that someone figures how to get around it or should AMD owners give up? If thats something that has hope, what would it require to fix this?

Link to comment
Share on other sites

I think I understood why sleep doesn't work on 10.11 with AMD GPU's after reading what you have said previously in this thread, but I didn't really understood if there is hope that someone figures how to get around it or should AMD owners give up? If thats something that has hope, what would it require to fix this?

It is crucial that your BIOS respects the choice you made with regard to the primary GPU. In case it doesn't, check for a BIOS update. If this doesn't solve the problem, NVIDIA is the way to go.  :(

 

Mieze

Link to comment
Share on other sites

It is crucial that your BIOS respects the choice you made with regard to the primary GPU. In case it doesn't, check for a BIOS update. If this doesn't solve the problem, NVIDIA is the way to go.  :(

 

Mieze

Can't this be fixed with binary patching? Obviously, implying somebody writes the necessary patches for the kexts, kernel, or whatever.

Link to comment
Share on other sites

Can't this be fixed with binary patching? Obviously, implying somebody writes the necessary patches for the kexts, kernel, or whatever.

 

Most likely no, because:

  • Wakeup is a complex process in which the early stages are handled by the BIOS until the OS takes over again. If something goes wrong before that point, there is no way to change it.
  • The graphics subsystem is far too complex for reverse engineering with the resources we have.

Mieze

Link to comment
Share on other sites

Hmm, months ago when I chose iGPU as primary, I got a black screen on boot. Now, after updating the BIOS, I can boot with iGPU as primary, but wake does not work either. I guess the BIOS disregards that option?

Link to comment
Share on other sites

Hmm, months ago when I chose iGPU as primary, I got a black screen on boot. Now, after updating the BIOS, I can boot with iGPU as primary, but wake does not work either. I guess the BIOS disregards that option?

If you have such option, then just turn off Windows 8/8.1/10 Features in BIOS. You will be able to boot with IGPU as primary then. I wrote about that a page ago..

Link to comment
Share on other sites

 Share

×
×
  • Create New...