Contribute
Register

HP Probook 450 G2 (Haswell) - issues after upgrade to El Capitan

Status
Not open for further replies.
The patch will make six changes to the stock PBI DSDT (after installation):

It will remove two _PRW methods (for devices LANC and XHC) and add these four statements for the addresses that match:

begin Name(_PRW, Package() { 0x0D, 0 }) end;

As you pointed out in your FAQ the two _PRW methods that were removed could be the culprit. I will do some more testing tonight.

0x1d/0x1a/0x14 are EHC1/EHC2/XHC.
0x19 is LAN
0x1B (missing from the patch) is HDEF.

It is easy to look at a patched DSDT and determine if it has the correct patches to avoid instant wake.

Note: Methods removed and replaced with Name are of no consequence. Name and Method are the same as far as an ACPI caller is concerned.
 
Thank you! How would you know whether to use 0x6D or 0x0D? I have applied "usb_prw_0x0d_xhc.txt" without success, and searching for _PRW methods in my patched DSDT revealed this:

Code:
Device (HS06)
                    {
                        Name (_ADR, 0x06)  // _ADR: Address
                        Name (_STA, 0x0F)  // _STA: Status
                        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
                        {
                            Name (UPCP, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Return (UPCP)
                        }

                        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
                        {
                            Name (PLDP, Package (0x01)
                            {
                                Buffer (0x10)
                                {
                                    /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0008 */  0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 
                                }
                            })
                            Return (PLDP)
                        }

                        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                        {
                            Return (UPRW (0x6D, Zero))
                        }
                    }

Should this be changed from 0x6D to 0x0D or should I change all PRW arguments from 0x0D to 0x6D?

Note: I have attached said patched DSDT:

View attachment dsdt_pb450g2.zip
 
I think I can answer my question myself: in the original DSDT file the relevant PRW methods return 0x6D, so I will start over and try the "usb_prw_0x6d_xhc.txt" patch.

If everything works fine I will ask Nguyenmac to update the relevant parts of the PBI.
 
Thank you! How would you know whether to use 0x6D or 0x0D? I have applied "usb_prw_0x0d_xhc.txt" without success, and searching for _PRW methods in my patched DSDT revealed this:

Code:
Device (HS06)
                    {
                        Name (_ADR, 0x06)  // _ADR: Address
                        Name (_STA, 0x0F)  // _STA: Status
                        Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
                        {
                            Name (UPCP, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Return (UPCP)
                        }

                        Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
                        {
                            Name (PLDP, Package (0x01)
                            {
                                Buffer (0x10)
                                {
                                    /* 0000 */  0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                    /* 0008 */  0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 
                                }
                            })
                            Return (PLDP)
                        }

                        Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                        {
                            Return (UPRW (0x6D, Zero))
                        }
                    }

Should this be changed from 0x6D to 0x0D or should I change all PRW arguments from 0x0D to 0x6D?

Note: I have attached said patched DSDT:

View attachment 164250

No need to change that call to UPRW. You should always keep the original value for _PRW (0x0d vs. 0x6d). It is only the sleep state that changes to zero.
 
The situation has improved, but I still see reboots on wake every now and then. I have compared the logs for successful and unsuccessful wake-up scenarios (note that I have omitted some log entries most likely unrelated to the issue):

1. Successful wake after 7.5 hours of sleep

Code:
Nov 26 00:30:48 tinman powerd[51]: BUG in libdispatch: 15B42 - 1631 - 0x0
Nov 26 00:30:48 tinman kernel[0]: IOCTL not recognized: 234 out of 235
Nov 26 00:30:51 --- last message repeated 1 time ---
Nov 26 00:30:51 tinman kernel[0]: PM response took 2879 ms (51, powerd)
Nov 26 00:30:51 tinman kernel[0]: kern_open_file_for_direct_io(28)
Nov 26 00:30:51 tinman kernel[0]: kern_open_file_for_direct_io took 0 ms
Nov 26 00:30:51 tinman kernel[0]: error 0xe00002db opening polled file
Nov 26 00:30:51 tinman kernel[0]: ARPT: 300.174088: AirPort_Brcm43xx::powerChange: System Sleep 
Nov 26 00:30:52 tinman kernel[0]: ARPT: 300.676265: IOPMPowerSource Information: onSleep,  SleepType: Normal Sleep,  
Nov 26 00:30:52 tinman kernel[0]: ARPT: 300.676347: wl0: powerChange: *** BONJOUR/MDNS OFFLOADS ARE NOT RUNNING.
Nov 26 00:30:52 tinman kernel[0]: en1: BSSID changed to 60:e3:27:c8:4a:6f
Nov 26 00:30:52 tinman kernel[0]: en1: channel changed to 36,80
Nov 26 00:30:52 tinman kernel[0]: AirPort: Link Down on awdl0. Reason 1 (Unspecified).
Nov 26 00:30:52 tinman kernel[0]: ARPT: 300.716384: wl0: leaveModulePoweredForOffloads: Wi-Fi will turn off.
Nov 26 00:30:52 tinman kernel[0]: in6_unlink_ifa: IPv6 address 0x5f34a408030ba423 has no prefix
Nov 26 00:30:52 tinman kernel[0]: AirPort: Link Down on en1. Reason 8 (Disassociated because station leaving).
Nov 26 00:30:52 tinman kernel[0]: en1::IO80211Interface::postMessage bssid changed
Nov 26 00:30:52 tinman kernel[0]: ARPT: 300.735752: AirPort_Brcm43xx::syncPowerState: WWEN[disabled]
Nov 26 00:30:52 tinman symptomsd[340]: -[NetworkAnalyticsEngine _writeJournalRecord:fromCellFingerprint:key:atLOI:ofKind:lqm:isFaulty:] Hashing of the primary key failed. Dropping the journal record.
Nov 26 00:30:52 tinman airportd[56]: _handleLinkEvent: WiFi is not powered. Resetting state variables.
Nov 26 07:58:51 tinman kernel[0]: Wake reason: power-button XHC EHC1 (User)
Nov 26 07:58:51 tinman kernel[0]: No interval found for . Using 8000000
Nov 26 07:58:51 tinman kernel[0]: Previous sleep cause: 5
Nov 26 07:58:51 tinman CommCenter[456]: Telling CSI to exit low power.
Nov 26 07:58:51 tinman kernel[0]: en1: channel changed to 1
Nov 26 07:58:51 tinman kernel[0]: AirPort: Link Up on awdl0
Nov 26 07:58:51 tinman kernel[0]: Setting BTCoex Config: enable_2G:1, profile_2g:0, enable_5G:1, profile_5G:0
Nov 26 07:58:51 tinman kernel[0]: BrcmPatchRAM2: Version 2.2.2 starting on OS X Darwin 15.0.
Nov 26 07:58:51 tinman kernel[0]: BrcmPatchRAM2: [04ca:200b]: USB [24FD528C7844 v274] "BCM20702A0" by "Broadcom Corp"
Nov 26 07:58:51 tinman kernel[0]: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from AUTO to SUSPENDED
Nov 26 07:58:51 tinman kernel[0]: IO80211AWDLPeerManager::setAwdlSuspendedMode() Suspending AWDL, enterQuietMode(true)
Nov 26 07:58:51 tinman WindowServer[191]: CGXDisplayDidWakeNotification [301937021949]: posting kCGSDisplayDidWake
Nov 26 07:58:51 tinman WindowServer[191]: handle_will_sleep_auth_and_shield_windows: Reordering authw 0x7feb2a03cc00(2004) (lock state: 3)
Nov 26 07:58:51 tinman WindowServer[191]: handle_will_sleep_auth_and_shield_windows: err 0x0
Nov 26 07:58:51 tinman kernel[0]: AirPort: Link Up on en1
Nov 26 07:58:52 tinman kernel[0]: ARPT: 302.558860: AirPort_Brcm43xx::powerChange: System Wake - Full Wake/ Dark Wake / Maintenance wake
Nov 26 07:58:52 tinman kernel[0]: 000302.776195 IOUSBHostDevice@14500000: AppleUSBDevice::waitForInterfacesGated: timeout waiting for _interfacesMatched
Nov 26 07:58:52 tinman kernel[0]: 000302.778915 IOUSBHostDevice@14500000: AppleUSBDevice::waitForInterfacesGated: timeout waiting for _interfacesMatched
Nov 26 07:58:52 tinman kernel[0]: ARPT: 303.058997: IOPMPowerSource Information: onWake,  SleepType: Normal Sleep,  
Nov 26 07:58:52 tinman kernel[0]: ARPT: 303.059070: AirPort_Brcm43xx::platformWoWEnable: WWEN[disable]


2. Unsuccessful wake after some minutes of sleep:

Code:
Nov 26 10:17:25 tinman kernel[0]: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from AUTO to SUSPENDED
Nov 26 10:17:25 tinman kernel[0]: IO80211AWDLPeerManager::setAwdlSuspendedMode() Suspending AWDL, enterQuietMode(true)
Nov 26 10:17:28 tinman kernel[0]: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from SUSPENDED to AUTO
Nov 26 10:17:28 tinman kernel[0]: IO80211AWDLPeerManager::setAwdlAutoMode Resuming AWDL
Nov 26 10:17:53 tinman CommCenter[456]: Telling CSI to go low power.
Nov 26 10:17:53 tinman kernel[0]: Setting BTCoex Config: enable_2G:1, profile_2g:0, enable_5G:1, profile_5G:0
Nov 26 10:17:53 tinman AirPlayUIAgent[680]: 2015-11-26 10:17:53.037389 AM [AirPlayUIAgent] BecomingInactive: NSWorkspaceWillSleepNotification
Nov 26 10:17:53 tinman wirelessproxd[76]: Peripheral manager is not powered on
Nov 26 10:17:53 tinman kernel[0]: PM response took 352 ms (97, loginwindow)
Nov 26 10:17:53 tinman kernel[0]: PM response took 353 ms (97, loginwindow)
Nov 26 10:17:57 tinman kernel[0]: en1: BSSID changed to 60:e3:27:c8:4a:6f
Nov 26 10:17:57 tinman kernel[0]: en1: channel changed to 36,80
Nov 26 10:18:02 tinman kernel[0]: No interval found for . Using 8000000
Nov 26 10:18:02 tinman kernel[0]: [HID] [MT] AppleMultitouchDevice::willTerminate entered
Nov 26 10:18:02 tinman kernel[0]: [HID] [MT] AppleMultitouchDevice::stop entered
Nov 26 10:18:02 tinman kernel[0]: Setting BTCoex Config: enable_2G:1, profile_2g:0, enable_5G:1, profile_5G:0
Nov 26 10:18:42 tinman AirPlayUIAgent[680]: 2015-11-26 10:18:42.617818 AM [AirPlayUIAgent] BecomingInactive: NSWorkspaceWillSleepNotification
Nov 26 10:18:42 tinman kernel[0]: **** [IOBluetoothHostControllerUSBTransport][InterruptReadHandler] -- Received kIOReturnNotResponding error - retrying: 1 
Nov 26 10:18:43 tinman kernel[0]: **** [IOBluetoothHostControllerUSBTransport][ClearFeatureInterruptEndpointHalt] -- successfully posting another read for the mInt0InterruptPipe -- mInterruptPipeInOutstandingIOCount = 1 -- this = 0xd800
Nov 26 10:18:43 tinman kernel[0]: PM response took 595 ms (87, blued)
Nov 26 10:18:43 tinman kernel[0]: PM response took 596 ms (87, blued)
Nov 26 10:18:43 tinman wirelessproxd[76]: Peripheral manager is not powered on
Nov 26 10:19:00 tinman kernel[0]: PM response took 3134 ms (51, powerd)
Nov 26 10:19:00 tinman kernel[0]: kern_open_file_for_direct_io(28)
Nov 26 10:19:00 tinman kernel[0]: kern_open_file_for_direct_io took 0 ms
Nov 26 10:19:00 tinman kernel[0]: error 0xe00002db opening polled file
Nov 26 10:19:00 tinman kernel[0]: ARPT: 8710.059866: AirPort_Brcm43xx::powerChange: System Sleep 
Nov 26 10:19:01 tinman kernel[0]: ARPT: 8710.562028: IOPMPowerSource Information: onSleep,  SleepType: Normal Sleep,  
Nov 26 10:19:01 tinman kernel[0]: ARPT: 8710.562063: wl0: powerChange: *** BONJOUR/MDNS OFFLOADS ARE NOT RUNNING.
Nov 26 10:37:30 localhost bootlog[0]: BOOT_TIME 1448530650 0

I am not certain what may be the reason that the computer will enter some sleep state in the second example, but will reboot when turned on again. You can see that the wifi interface does not produce status messages like:

Code:
kernel[0]: AirPort: Link Down on awdl0. Reason 1 (Unspecified).
kernel[0]: ARPT: 300.716384: wl0: leaveModulePoweredForOffloads: Wi-Fi will turn off.
kernel[0]: in6_unlink_ifa: IPv6 address 0x5f34a408030ba423 has no prefix
kernel[0]: AirPort: Link Down on en1. Reason 8 (Disassociated because station leaving).
kernel[0]: en1::IO80211Interface::postMessage bssid changed
kernel[0]: ARPT: 300.735752: AirPort_Brcm43xx::syncPowerState: WWEN[disabled]

Thank's a lot for any help!
 
The situation has improved, but I still see reboots on wake every now and then.

Did you disable "wake via WiFi" in SysPrefs->Energy Saver?

Download patchmatic: https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/RehabMan-patchmatic-2015-0107.zip
Extract the 'patchmatic' binary from the ZIP. Copy it to /usr/bin, such that you have the binary at /usr/bin/patchmatic.

In terminal,
Code:
if [ -d ~/Downloads/RehabMan ]; then rm -R ~/Downloads/RehabMan; fi
mkdir ~/Downloads/RehabMan
cd ~/Downloads/RehabMan
patchmatic -extract

Note: It is easier if you use copy/paste instead of typing the commands manually.

Post contents of Downloads/RehabMan directory (as ZIP).

Also, post ioreg: http://www.tonymacx86.com/audio/58368-guide-how-make-copy-ioreg.html. Please, use the IORegistryExplorer v2.1 attached to the post! DO NOT reply with an ioreg from any other version of IORegistryExplorer.app.

And output from:
Code:
kextstat|grep -y acpiplat
kextstat|grep -y appleintelcpu
kextstat|grep -y applelpc

Also, post EFI/Clover folder (press F4 at main Clover screen before collecting).

Also post output of:
Code:
sudo touch /System/Library/Extensions && sudo kextcache -u /
 
Thank you again for your help!

Both 'Wake for network access' and 'Power Nap' are disabled in Energy Saver settings.

Here are the requested files:

View attachment HP450G2.7z

Please note that the following folders have been removed from the CLOVER folder in the attached archive:

misc, doc and themes
 
Thank you again for your help!

Both 'Wake for network access' and 'Power Nap' are disabled in Energy Saver settings.

Here are the requested files:

View attachment 164379

Please note that the following folders have been removed from the CLOVER folder in the attached archive:

misc, doc and themes

Remove crapware:
com.Cycling74.driver.Soundflower
at.obdev.nke.LittleSnitch
org.virtualbox.kext.VBoxDrv
org.virtualbox.kext.VBoxUSB
 
Ok, will remove them and get back after some more tests, thanks!

P.S. I'd really miss the benefits of a host-based application firewall like Little Snitch, is there another or a better way to control outbound traffic on the host?
 
Ok, will remove them and get back after some more tests, thanks!

P.S. I'd really miss the benefits of a host-based application firewall like Little Snitch, is there another or a better way to control outbound traffic on the host?

First you have to determine the cause of the problem. It is a matter of eliminating variables.
 
Status
Not open for further replies.
Back
Top