Jump to content

No graphics / USB / Audio after wake


anor4k
 Share

586 posts in this topic

Recommended Posts

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

 

On my laptop with i7-3520M and Radeon 7570M I have no iGPU, it is disabled by manufacturer. There is perfect system definition to match the processor, but only options for GPU are HD4000 + nVidia or just HD4000. If I understood it correctly, there is no way to make wake work with 10.11 because it tries to use iGPU after sleep?

 

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

 

Was this all because they now tie GPU control more closely to system definition? If so, then where does OS X get the information about different systems, I mean if I use MacBookPro10,1 system definition, where does OS X check what GPU's that definition has and what to do?

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

 

The HD 5450 is not natively supported but there is a DSDT patch that enables the HD 5450 to work completely including wake from sleep. The HD 6450 is natively supported but doesn't wake from sleep. Doesn't make sense.

Link to comment
Share on other sites

The HD 5450 is not natively supported but there is a DSDT patch that enables the HD 5450 to work completely including wake from sleep. The HD 6450 is natively supported but doesn't wake from sleep. Doesn't make sense.

Makes perfect sense if you read other pages in the thread. 5xxx cards wake from sleep fine as long as you disable injection, 6xxx+ won't.

Link to comment
Share on other sites

Makes perfect sense if you read other pages in the thread. 5xxx cards wake from sleep fine as long as you disable injection, 6xxx+ won't.

Why? What causes the difference?

I think I am switching to NVIDIA graphics cards, they've been more compatible and NVIDIA is providing updated drivers for each OS X update whereas Apple and AMD are not unfortunately for AMD. I am on the verge of updating the graphics card for 4K. Any reasonably priced recommendations?

Link to comment
Share on other sites

The problem is most likely an OSX power management problem.

 

https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/PowerMgmt/PowerMgmt.html#//apple_ref/doc/uid/TP0000020-BABCCBIJ

 

That has now changed according to this:

 

https://www.apple.com/osx/all-features/pdf/osx_elcapitan_core_technologies_overview.pdf

 

"USB Power Management

 

Traditionally, USB device power management is done manually, with a function driver making explicit suspend or resume calls on a USB device service. This is error-prone and results in overly complex driver code to manage power state.

USB in OS X El Capitan has been completely implemented to benefit from the same USB architecture and aggressive power management policy adopted by iOS. Each endpoint in a device can be given an idle timeout in milliseconds, and an endpoint is considered idle if an active transfer hasn’t completed within that timeout. The device has an idle state as well, which is a logical AND of the idle state for the endpoints associated with the device. Only when the device idle timeout expires does the OS pause I/O on the bus and electrically suspend the device at the port.

The idling system is an important advance because drivers don’t need to actively participate in power state transitions."

Link to comment
Share on other sites

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..

The only similar option to that is inside "Secure Boot" (Windows 8/Other OS) and was in "Other OS" already. But I'm sure this is about Secure Boot only. 

 

If it's something else, please tell me, because the menu of my BIOS has more options than the menu of a McDonald's restaurant.

  • Like 2
Link to comment
Share on other sites

Here's something else that may be involved:

 

https://support.apple.com/en-ca/HT201960

 

"With Wake on Demand enabled (see below) and your Mac in sleep mode, your Mac will occasionally wake for a brief time, without lighting the screen, in order to maintain active shared service registrations with the Bonjour Sleep Proxy."

Link to comment
Share on other sites

After updating the BIOS of my Asrock B85 Killer to version 1.90 I decided to give the Radeon R9 270X another try because the BIOS now respects the choice you made with regard to the primary GPU and I have good news to report: The Radeon cards wakes up now with El Capitan 10.11.3!

 

This is the BIOS configuration I used:

  • Primary GPU: Onboard
  • Fast Boot: Fast
  • CSM: Enabled
  • Launch Video Op ROM: Legacy only

I'm using system definition iMac15,1 and added the following properties to the "Graphics" section of Clover's config.plist:

	<key>ig-platform-id</key>
	<string>0x0412000b</string>
	<key>FBName</key>
	<string>Namako</string>
	<key>Inject</key>
	<dict>
		<key>Intel</key>
		<true/>
		<key>ATI</key>
		<true/>
	</dict>

I also had to patch framebuffer Namako with the data of Futomaki in order to make it work with my graphics card as this framebuffer is crucial for a 4k display to wake up properly with this card.

 

Mieze

Edited by Mieze
  • Like 4
Link to comment
Share on other sites

Those values leave me without video output. Very unfortunate, as I was getting excited.

In my case, I can choose the iGPU to be my primary output and there's no difference regarding wake. If I enable the CSM, I never get any video output at all.

 

This is what my CSM options look like by the way, there's no reference to "video" whatsoever.

post-397778-0-22817300-1455978095_thumb.jpg

Link to comment
Share on other sites

Those values leave me without video output. Very unfortunate, as I was getting excited.

You might need to do the first boot with framebuffer Futomaki in order to get a working display as Clover patches kexts in the kernel cache and then recreate the kernel cache in order to get the patch applied. After that you can switch back to Namako.

 

Please also keep in mind that the settings apply to Asrock boards only, ASUS and other manufactures may be different.

 

Mieze

Edited by Mieze
Link to comment
Share on other sites

I edited the post, but I mean the screen never turns on at all, not even for POST.

This is normal because you have to perform a blind boot in this configuration. The screen connected to the Radeon card won't show a picture until it's driver has been initialized which is something that doesn't happen in the early stages of the boot sequence.

 

Mieze

Link to comment
Share on other sites

Hello! Thanks to Mieze, my Radeon6850 can wakeup after sleep.

 

GA-Z97-HD3 / Core i5 4690K / G.SKILL RipjawsX F3-12800CL10D-16GBXL / MSI R6850 cyclone 1GD5 power edition

 

BIOS Setting : Primary GPU: Onboard

 

system definition : MacPro3,1   iMac 15,1

#MacPro3,1 will cause audio problem after wake.

 

 

my clover's config.plist  

     <key>Graphics</key>

     <dict>
          <key>Inject</key>
          <dict>
               <key>ATI</key>
               <false/>
               <key>Intel</key>
               <true/>
               <key>NVidia</key>
               <false/>
         </dict>
         <key>NvidiaSingle</key>
         <false/>
   </dict>
 
DVI cable : always connected to Radeon6850
Link to comment
Share on other sites

This is normal because you have to perform a blind boot in this configuration. The screen connected to the Radeon card won't show a picture until it's driver has been initialized which is something that doesn't happen in the early stages of the boot sequence.

 

Mieze

 

Should I be able to see the Clover menu at least? Because if not, this is frankly useless.

Link to comment
Share on other sites

Should I be able to see the Clover menu at least? Because if not, this is frankly useless.

That's why it's called blind booting.

Because you won't see anything until the driver is loaded.

If you connect an additional hdmi or dvi cable to your igpu and your screen, you will see the clover screen, but you'll have to switch inputs on your screen afterwards, to see the radeon screen.

Link to comment
Share on other sites

That's why it's called blind booting.

Because you won't see anything until the driver is loaded.

If you connect an additional hdmi or dvi cable to your igpu and your screen, you will see the clover screen, but you'll have to switch inputs on your screen afterwards, to see the radeon screen.

 

Damn. I hope a proper fix is found eventually.

Link to comment
Share on other sites

Gave up too and purchased GTX 960.  Changed SMBIOS to an iMac14 and system can sleep usually.  My R9 270X is shelved for now.  Never could get video back after system sleep.  Monitor sleep worked fine always.  My display is 2560x1440 and I used a single HDCP port.

Link to comment
Share on other sites

Is it true that success with Radeon+Intel wakeup is possible only with legacy Clover?

 

For me sleep/wake also works with UEFI Clover and CSM=enabled. 

 

If CSM=disabled then black screen.

 

(HD4000 is set as primary and 7950 as secondary)

Link to comment
Share on other sites

Is it true that success with Radeon+Intel wakeup is possible only with legacy Clover?

 

No. I've got IGP set to primary, Clover booting in pure UEFI mode (blind boot though) and my R9 390 is still able to wake from sleep properly without CSM (since I don't have option to turn it on). When I turn on Win 8/8.1/10 Features with IGP as Primary, Radeon won't wake up and kernel will spit out two messages regarding failure in function SetPowerState for Radeon, aswell as for Intel HD. I can provide any material (like IOReg or preboot) if it helps.

Link to comment
Share on other sites

No. I've got IGP set to primary, Clover booting in pure UEFI mode (blind boot though) and my R9 390 is still able to wake from sleep properly without CSM (since I don't have option to turn it on). When I turn on Win 8/8.1/10 Features with IGP as Primary, Radeon won't wake up and kernel will spit out two messages regarding failure in function SetPowerState for Radeon, aswell as for Intel HD. I can provide any material (like IOReg or preboot) if it helps.

I think it is opposite. If no CSM options then it means CSM on. Because without it you can't start computer with old videocard like Geforce 9600 or Radeon 5770.

Otherwise Win8/10 usually means CSM off. 

In this case you confirmed words from FranticJohny: for Radeon wake up CSM must be on.

  • Like 1
Link to comment
Share on other sites

I think it is opposite. If no CSM options then it means CSM on. Because without it you can't start computer with old videocard like Geforce 9600 or Radeon 5770.

Otherwise Win8/10 usually means CSM off. 

In this case you confirmed words from FranticJohny: for Radeon wake up CSM must be on.

Well, I have not looked at it from this point, but it actually makes sense and I guess you are right. So for now I am sticking with CSM=on :P

 

With Win8/10 on, I got output on Radeon although IGP is set to Primary. By default sleep does not work, but one thing worth mentioning is when I boot with the display plugged into HD4600 and I switch the cable to the Radeon before OS X takes over, I can actually wake the computer (with CSM=off). I guess my mobo with CSM=off detects which GPU has display plugged in, and this GPU is afterwards marked as primary.

Link to comment
Share on other sites

I have same success.

1. Legacy clover boot.

2. CSM enabled.

3. IGFX primary.

4. Memory for IGFX = 32Mb. Not more! This is the key.

5. VGA monitor connected to Intel HD3000. It shows me BIOS, Clover GUI and verbose messages (-v).

6. DVI monitor connected to Radeon HD6670. It shines up only when enter desktop.

 

When I go to sleep first Radeon switched off. Screen from Intel remains on the monitor at least 20 seconds. Then all sleeps.

When I wake up first Intel monitor shows something then DVI monitor wakes up to desktop.

 

It's a pity this is legacy Clover. Anyway it works as swiss clocks.

  • Like 2
Link to comment
Share on other sites

 Share

×
×
  • Create New...