Contribute
Register

HP ZBOOK G5 17

@jonto any chance you can make an acpi dump with the MXM card off?
You would need to save the DSDT and all SSDT's, with Clover or with MaciASL.
I need a clean dump of a G5 17" without any MXM card installed for comparison.

Thank you!
Sorry, I don't know how to operate these, I don't care about these at all.I will only use the ready-made, or physically disassemble and assemble the graphics card. For the guidance of the black apple, I will not transfer the spi to wait.
 
New Configs with new stuff.


Changes are:
Added Bluetool Fixup for Monterey.
Added New Hybrid Muxed config which is basically a Discrete mode (DGPU to all screens) but with added IGPU in a empty framebuffer configuration to enable QuickSync support.
New (fake) UMA config. No need to switch Bios to get this new mode. DGPU is powered off from boot, and the mux is switched to IGPU for future support. Saves power by turning OFF DGPU.
DMAR support is added but needs to be enabled in the config in case it's needed for some Thunderbolt devices.

There's 2 new SSDT's and 5 new ACPI patches.

In Fake UMA:
We change Method _INI in DGPU SSDT's so intead of calling "INIM = One"
Screen Shot 2021-10-23 at 5.43.44 PM.png

it calls "OFF ()"
Screen Shot 2021-10-23 at 5.44.08 PM.png

Then the problem is that the _OFF method calls "\_SB.PCI0.PEG0.PEGP.RDSS (Zero)" and RDSS calls the Embedded controller before it is ready, so our next patch removes this RDSS call from our OFF method to avoid a crash.
Screen Shot 2021-10-23 at 5.47.37 PM.png

Since we can't change the size of the OEM DSDT or SSDT's with these patches, the extra Zeroes are a side-effect of doing this. But in the end the result is the same
Screen Shot 2021-10-23 at 5.48.09 PM.png

Now, according to Rehabman's guide, we now need to replace the call to "\_SB.PCI0.PEG0.PEGP.RDSS (Zero)" that we removed, and as luck would have it, the EC on _REG, calls method ECRI,

Screen Shot 2021-10-23 at 8.45.30 PM.png

and that in turn calls "\_SB.PCI0.PEG0.PEGP.RDSS (One)". So... we just change that to Zero with our next patch, and our INI > PEGP._OFF method is now complete.
The problem now is that when the Zbook wakes from sleep, the DGPU is powered back on, so I had to do another trick for this one. I tried adding the _OFF method before and after _WAK, but it wouldn't work. If it was executed before _WAK, the EC wasn't awake yet, and after the _WAK method, there wasn't enough time before we returned to user land and acpi commands were ignored. So, the solution was to hijack the DSDT CWAK method that the original _WAK method calls late in the wake process. This method happens after the EC is activated, so this is the best spot to insert our DGPU OFF call.

To do this we rename CWAK in DSDT to ZWAK so it never gets called
Screen Shot 2021-10-23 at 5.56.15 PM.png

and then we replace it with our own version in a new SSDT.
Screen Shot 2021-10-23 at 5.56.31 PM.png

I also added a 1 second sleep before our OFF call just for safety, and since we're here already, might as well call our GFX0.XMXX method to also flip the exernal Mux to IGPU for possible future external display support.

The new Hybrid Mux version is easier.
On boot we add a new device RMD1. On INIT this device calls the Mux switch command XMXX. This in turn connects our LCD to the DGPU. (you will see the screen go black during boot and it stays like this until our graphic drivers and acceleration kicks in)
Again on wake from sleep, the mux is switched back to it's default IGPU position, so I had to replace the _WAK command with our own version where I call our Mux switch again on wake from sleep.
Screen Shot 2021-10-23 at 8.55.06 PM.png


With these new configs I'm only using "Automatic" in Graphics Device selection in Bios, and then use OC to select different display configs at boot. Refind is my main OS chainloader at boot, and this in turn gives me Windows/Linux as well as 2 different OC configurations. Low Power fake UMA for general "battery only" use, and DGPU Muxed Hybrid for when I need more GFX power.

The only (minor) inconveniences at the moment are:
-No external display support for fake UMA yet.
-LCD brightness between DGPU and IGPU use different values so I have to readjust when I use a different config.

Enjoy!
 
Last edited:
New Configs with new stuff.


Changes are:
Added Bluetool Fixup for Monterey.
Added New Hybrid Muxed config which is basically a Discrete mode (DGPU to all screens) but with added IGPU in a empty framebuffer configuration to enable QuickSync support.
New (fake) UMA config. No need to switch Bios to get this new mode. DGPU is powered off from boot, and the mux is switched to IGPU for future support. Saves power by turning OFF DGPU.
DMAR support is added but needs to be enabled in the config in case it's needed for some Thunderbolt devices.

There's 2 new SSDT's and 5 new ACPI patches.

In Fake UMA:
We change Method _INI in DGPU SSDT's so intead of calling "INIM = One"
View attachment 531756
it calls "OFF ()"
View attachment 531757
Then the problem is that the _OFF method calls "\_SB.PCI0.PEG0.PEGP.RDSS (Zero)" and RDSS calls the Embedded controller before it is ready, so our next patch removes this RDSS call from our OFF method to avoid a crash.
View attachment 531759
Since we can't change the size of the OEM DSDT or SSDT's with these patches, the extra Zeroes are a side-effect of doing this. But in the end the result is the same
View attachment 531760
Now, according to Rehabman's guide, we now need to replace the call to "\_SB.PCI0.PEG0.PEGP.RDSS (Zero)" that we removed, and as luck would have it, the EC on _REG, calls method ECRI,

View attachment 531772
and that in turn calls "\_SB.PCI0.PEG0.PEGP.RDSS (One)". So... we just change that to Zero with our next patch, and our INI > PEGP._OFF method is now complete.
The problem now is that when the Zbook wakes from sleep, the DGPU is powered back on, so I had to do another trick for this one. I tried adding the _OFF method before and after _WAK, but it wouldn't work. If it was executed before _WAK, the EC wasn't awake yet, and after the _WAK method, there wasn't enough time before we returned to user land and acpi commands were ignored. So, the solution was to hijack the DSDT CWAK method that the original _WAK method calls late in the wake process. This method happens after the EC is activated, so this is the best spot to insert our DGPU OFF call.

To do this we rename CWAK in DSDT to ZWAK so it never gets called
View attachment 531761
and then we replace it with our own version in a new SSDT.
View attachment 531762
I also added a 1 second sleep before our OFF call just for safety, and since we're here already, might as well call our GFX0.XMXX method to also flip the exernal Mux to IGPU for possible future external display support.

The new Hybrid Mux version is easier.
On boot we add a new device RMD1. On INIT this device calls the Mux switch command XMXX. This in turn connects our LCD to the DGPU. (you will see the screen go black during boot and it stays like this until our graphic drivers and acceleration kicks in)
Again on wake from sleep, the mux is switched back to it's default IGPU position, so I had to replace the _WAK command with our own version where I call our Mux switch again on wake from sleep.
View attachment 531774

With these new configs I'm only using "Automatic" in Graphics Device selection in Bios, and then use OC to select different display configs at boot. Refind is my main OS chainloader at boot, and this in turn gives me Windows/Linux as well as 2 different OC configurations. Low Power fake UMA for general "battery only" use, and DGPU Muxed Hybrid for when I need more GFX power.

The only (minor) inconveniences at the moment are:
-No external display support for fake UMA yet.
-LCD brightness between DGPU and IGPU use different values so I have to readjust when I use a different config.

Enjoy!
Thank you very much for upgrading it, which gives zbook g5 new value. I used your latest oc file, and learned to 0.7.4, the boot is normal, and the sound card is normal. The only thing I don't understand now is why the CPU works at 2.2Ghz under full load and TDP works at 17-23W. This makes i7 8750h unable to play the highest performance. I use VoltageShift settings, Pl1 55W PL2 65W, but it doesn't seem to have any effect. When I learned to configure the OC boot and use your boot, I tested that it can work at 50W and the frequency works at 3.2GHZ, but now no matter how I set it up, it works at 2.2GHZ, and the single-core stress test works at 3.3GHZ. It’s not clear. What is the reason? Do you have any good experience or suggestions?

Supplement = When it first started running, it was working at 55W, but after 20S, it was working at 20W, and the frequency was limited to 2.2GHZ. This puzzled me. I have been studying it for several days.

In addition, I look forward to your UMA mode with an external monitor. I tested it because of your OC EFI uma mode these days, and found that it cannot output DP or HDMI with a discrete graphics card installed. It can only be a laptop screen or externally connected. monitor.
 

Attachments

  • 1.png
    1.png
    1.1 MB · Views: 51
Thank you very much for upgrading it, which gives zbook g5 new value. I used your latest oc file, and learned to 0.7.4, the boot is normal, and the sound card is normal. The only thing I don't understand now is why the CPU works at 2.2Ghz under full load and TDP works at 17-23W. This makes i7 8750h unable to play the highest performance. I use VoltageShift settings, Pl1 55W PL2 65W, but it doesn't seem to have any effect. When I learned to configure the OC boot and use your boot, I tested that it can work at 50W and the frequency works at 3.2GHZ, but now no matter how I set it up, it works at 2.2GHZ, and the single-core stress test works at 3.3GHZ. It’s not clear. What is the reason? Do you have any good experience or suggestions?
My Bios version doesn't let me undervolt anymore and HP blocked the ability to roll back, so voltageshift doesn't work anymore. This only works if you're using Bios 01.09.01 Rev.A or earlier. So if you're still using an older Bios before the plundervolt exploit was "fixed" by HP, try to disable both of these kexts and see if there's a difference.

Screen Shot 2021-10-29 at 11.06.17 AM.png

Supplement = When it first started running, it was working at 55W, but after 20S, it was working at 20W, and the frequency was limited to 2.2GHZ. This puzzled me. I have been studying it for several days.

In addition, I look forward to your UMA mode with an external monitor. I tested it because of your OC EFI uma mode these days, and found that it cannot output DP or HDMI with a discrete graphics card installed. It can only be a laptop screen or externally connected. monitor.

I would love to figure this one out, but I just can't find out why it works perfectly without MXM card but it doesn't if the MXM slot is populated.
 
My Bios version doesn't let me undervolt anymore and HP blocked the ability to roll back, so voltageshift doesn't work anymore. This only works if you're using Bios 01.09.01 Rev.A or earlier. So if you're still using an older Bios before the plundervolt exploit was "fixed" by HP, try to disable both of these kexts and see if there's a difference.

View attachment 532495


I would love to figure this one out, but I just can't find out why it works perfectly without MXM card but it doesn't if the MXM slot is populated.
I tried it just now and it didn't work, just as before. Today I upgraded to mac os 12 Monterey and studied the driver for a day. Currently, OC0.7.4 can work normally. Sound card, USB, Bluetooth, wireless, wired can work, but there are still many details, such as the touch panel is not driven, I think this needs me to continue to study tomorrow. Monterey feels smoother than Bigsur. My CPU works normally under windows, and it can be unlocked to PL1 55W through intel xtu to work for a long time.
 
@jonto I need your help, I can't remove my MXM card because of the LM cooling solution I used on my machine, and I need to get a working UMA display log to debug the i2c problem.

Remove your MXM card, and boot to OSX using my posted Open Core uma-config that has IGPU with 4 FB injected.

Then without an external monitor plugged in, go to Utlities -> terminal and type:
Code:
cd /System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS

Then:

Code:
./AGDCDiagnose -a > ~/Desktop/UMA-Log.txt

Then plug an external monitor and verify it works, then type:

Code:
./AGDCDiagnose -a > ~/Desktop/UMA-Log-ExtMon.txt

And post the 2 Log files that are now on your desktop here.

I have posted 3 different variants of this log (Hybrid-AMD, Hybrid-IGPU, UMA-MXM) and we need UMA-noMXM to hopefully find out why it works without MXM card.

Also, I need you to get https://github.com/acidanthera/MaciASL/releases and using that software, sgo to File -> Export Tableset, and post here.
 
Last edited:
@jonto I need your help, I can't remove my MXM card because of the LM cooling solution I used on my machine, and I need to get a working UMA display log to debug the i2c problem.

Remove your MXM card, and boot to OSX using my posted Open Core uma-config that has IGPU with 4 FB injected.

Then without an external monitor plugged in, go to Utlities -> terminal and type:
Code:
cd /System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS

Then:

Code:
./AGDCDiagnose -a > ~/Desktop/UMA-Log.txt

Then plug an external monitor and verify it works, then type:

Code:
./AGDCDiagnose -a > ~/Desktop/UMA-Log-ExtMon.txt

And post the 2 Log files that are now on your desktop here.

I have posted 3 different variants of this log (Hybrid-AMD, Hybrid-IGPU, UMA-MXM) and we need UMA-noMXM to hopefully find out why it works without MXM card.

Also, I need you to get https://github.com/acidanthera/MaciASL/releases and using that software, sgo to File -> Export Tableset, and post here.
OK, I will arrange the time to dismantle the machine P4200 as soon as possible, and then extract the corresponding files to share. I just finished the MAC OS 12 battery and touchpad, and I always make mistakes when using OpenCore to modify it. Re-learning and using PlistEdit Pro to modify it is easy to get it done, and learn by myself. There have been many detours, but the result is always perfect. Now I share the EFI, you can help me check if there is an error.
 

Attachments

  • MacOS12-OC0.7.4.zip
    26 MB · Views: 64
Ok I checked your config, there were a few items that were different and may be better for BigSur+.
You don't need SSDT-MUX, since your DGPU is not supported. Also removed the device properties to remove DGPU since my patches and SSDT remove it in a better (power saving) way. If you use ECEnabler.kext, you don't need all the battery patches, this is not needed for Catalina and under, but I saw in one of my Monterey tests that battery was not getting properly updated, so I just changed all my patches to "disabled" and now SSDT-BATT doesn't load. Also disabled VoodooHDA, as it is in direct conflict with AppleALC if using an actual id that matches)

I changed the whatevergreen and lilu kexts for the debug versions (you will probably want to revert to the normal ones after getting the logs), and also added a few boot flags to get even more information to help with the debugging.

"debug=0x12a msgbuf=1048576 -wegdbg -igfxi2cdbg"

So as soon as you boot (no external display attached), I need you to open a terminal and paste this command:

Code:
sudo dmesg > ~/Desktop/dmsg-boot-nodisplay.txt

Then attach an external display and reboot, then do this command:

Code:
sudo dmesg > ~/Desktop/dmsg-boot-display.txt

And last but not least, with a display attached and working, using IORegistryExplorer, save a snapshot of your machine. (this may even help us debug and enable the touchscreen)

Thank you!
 

Attachments

  • MacOS12-OC0.7.4-debug.zip
    26.5 MB · Views: 60
Ok I checked your config, there were a few items that were different and may be better for BigSur+.
You don't need SSDT-MUX, since your DGPU is not supported. Also removed the device properties to remove DGPU since my patches and SSDT remove it in a better (power saving) way. If you use ECEnabler.kext, you don't need all the battery patches, this is not needed for Catalina and under, but I saw in one of my Monterey tests that battery was not getting properly updated, so I just changed all my patches to "disabled" and now SSDT-BATT doesn't load. Also disabled VoodooHDA, as it is in direct conflict with AppleALC if using an actual id that matches)

I changed the whatevergreen and lilu kexts for the debug versions (you will probably want to revert to the normal ones after getting the logs), and also added a few boot flags to get even more information to help with the debugging.

"debug=0x12a msgbuf=1048576 -wegdbg -igfxi2cdbg"

So as soon as you boot (no external display attached), I need you to open a terminal and paste this command:

Code:
sudo dmesg > ~/Desktop/dmsg-boot-nodisplay.txt

Then attach an external display and reboot, then do this command:

Code:
sudo dmesg > ~/Desktop/dmsg-boot-display.txt

And last but not least, with a display attached and working, using IORegistryExplorer, save a snapshot of your machine. (this may even help us debug and enable the touchscreen)

Thank you!
This is the file saved without removing the discrete graphics card. Do you need me to remove the discrete graphics before saving these files? I plan to dismantle the independent display today, and then save some files to do experiments together.

The CPU TDP was locked at 22W. I thought about the situation when my battery was swollen and removed by me. At that time, my zbook g5 17 was locked at 22W in windows 10 without the battery installed. After purchasing a new battery and installing it, the CPU power consumption can be adjusted to 55W or even higher by INTEL XTU and it works normally. I now wonder if it is because the mac 12 simulates the BIOS that the HP BIOS cannot determine whether the battery is installed correctly, and then after the PL2 28S, it is locked at 22W and the CPU works at the default frequency of 2.2GHZ. Is there a way for Apple to simulate the BIOS to give HPBIOS a signal to make him think that the battery is installed and the battery is working normally. Yesterday I used a programmer to downgrade the BIOS to 1.04.05. In mac os, I can use VO for TDP and voltage operations, but TDP does not work.

The file is in the attachment. I use IORegistrayExplorer for the first time. There is too much information in it. I am not sure which information you need?

Because I did not remove the dGPU, the external DP 4K monitor has no output display.
 

Attachments

  • dmsg-boot-nodisplay.txt
    128 KB · Views: 218
  • dmsg-boot-display.txt
    128 KB · Views: 50
  • 1.png
    1.png
    497 KB · Views: 51
  • 2.png
    2.png
    935.4 KB · Views: 50
  • 3.png
    3.png
    830.5 KB · Views: 50
  • 4.png
    4.png
    706.9 KB · Views: 52
  • 8.png
    8.png
    630.1 KB · Views: 51
  • 9.png
    9.png
    407.4 KB · Views: 53
  • 10.png
    10.png
    301.6 KB · Views: 48
  • 11.png
    11.png
    300.5 KB · Views: 52
  • 12.png
    12.png
    300.1 KB · Views: 52
This is the file saved without removing the discrete graphics card. Do you need me to remove the discrete graphics before saving these files? I plan to dismantle the independent display today, and then save some files to do experiments together.

The CPU TDP was locked at 22W. I thought about the situation when my battery was swollen and removed by me. At that time, my zbook g5 17 was locked at 22W in windows 10 without the battery installed. After purchasing a new battery and installing it, the CPU power consumption can be adjusted to 55W or even higher by INTEL XTU and it works normally. I now wonder if it is because the mac 12 simulates the BIOS that the HP BIOS cannot determine whether the battery is installed correctly, and then after the PL2 28S, it is locked at 22W and the CPU works at the default frequency of 2.2GHZ. Is there a way for Apple to simulate the BIOS to give HPBIOS a signal to make him think that the battery is installed and the battery is working normally. Yesterday I used a programmer to downgrade the BIOS to 1.04.05. In mac os, I can use VO for TDP and voltage operations, but TDP does not work.

The file is in the attachment. I use IORegistrayExplorer for the first time. There is too much information in it. I am not sure which information you need?

Because I did not remove the dGPU, the external DP 4K monitor has no output display.
Hi, I need the logs without the MXM card in the laptop. I believe something changes internally when the slot is empty and I need those files to find out what.
Also for ioregistry save > file and zip it and upload it.
 
Back
Top