Contribute
Register

[Guide] HP ProBook/EliteBook/Zbook using Clover UEFI hotpatch

Status
Not open for further replies.
All right!
Unsupported laptops: HP EliteBook 1050 G1
Thank you for your work.

New audio codec: 0x14f120d0
Suggest you look in AppleALC to see if there is support/XML files for AppleHDA.

Your PM961 is likely to cause problems. You should replace with M.2 SATA device, or at least mainstream Samsung NVMe (eg. 960/970).

Graphics 3e9b is supported in AppleIntelKBLGraphics.kext, but not in AppleIntelKBLGraphicsFramebuffer.kext, so it will require fake device-id injection. Currently this device is not handled in SSDT-IGPU, so will require coding changes there depending on which fake device-id works. You probably won't need changes to FakePCIID_Intel_HD_Graphics.kext.

If you can do the legwork in the context of this guide/github, maybe support can be added.
 
Last edited:
If you can do the legwork in the context of this guide/github, maybe support can be added.
Thank you!
Where should I start? Follow the steps in the guide for step-by-step troubleshooting?

My SATA hard drive cannot be formatted by macOS,so..

It has also been observed that the battery status is somewhat inaccurate and the 100% state continues to be longer.
 
Thank you!
Where should I start? Follow the steps in the guide for step-by-step troubleshooting?

My SATA hard drive cannot be formatted by macOS,so..

It has also been observed that the battery status is somewhat inaccurate and the 100% state continues to be longer.

Follow the guide as close as you can using one of the setups for KabyLake.
You will need to look through AppleALC or google to see if there is existing patched XML for AppleHDA that matches your codec.

If you have a problem, you will need to explain details (you're not trying to preserve a Windows setup on SATA drive, are you?)

Without properly patched ACPI (as per post #1), you should not expect working battery status.
I think the KabyLake setups already here should work for the most part, but will probably need some tweaks for your graphics.

Eg.
Code:
diff --git a/hotpatch/SSDT-IGPU.dsl b/hotpatch/SSDT-IGPU.dsl
index b940858..626f407 100644
--- a/hotpatch/SSDT-IGPU.dsl
+++ b/hotpatch/SSDT-IGPU.dsl
@@ -174,6 +174,17 @@ DefinitionBlock("", "SSDT", 2, "hack", "_IGPUH", 0)
                 "hda-gfx", Buffer() { "onboard-1" },
                 //SKL spoof: "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 },
             },
+            // Kaby Lake-R/UHD630
+            0x3e9b, 0, Package()
+            {
+                //SKL spoof: "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x19 },
+                "AAPL,ig-platform-id", Buffer() { 0x00, 0x00, 0x1b, 0x59 },
+                "model", Buffer() { "Intel UHD Graphics 630" },
+                "hda-gfx", Buffer() { "onboard-1" },
+                //SKL spoof: "device-id", Buffer() { 0x1b, 0x19, 0x00, 0x00 },
+                "device-id", Buffer() { 0x1b, 0x59, 0x00, 0x00 },
+                //SKL spoof: "AAPL,GfxYTile", Buffer() { 1, 0, 0, 0 },
+            },
         })
         // inject properties for integrated graphics on IGPU

Note: Initial support checked into the beta branch (obviously not tested). Incomplete: audio/USB configuration.
 
Last edited:
Your choice MacBookPro14,1 or MacBookPro11,1 (depends on whether you want HWP or not).

No need to spoof KabyLake-R... it is supported natively in the kernel.

Most non-Apple SSDs seem to cause problems if TRIM is enabled with APFS. But there might be some that work ok. You can find out by trial/error.

THX @RehabMan!

Which of those system defs enables HWP? I'll probably test both just to see performance difference (with and without HWP), but want to know which is which :)
Also, are Clover Config changes required to enable HWP?


Regarding the SSD, other than the boot time, what else can I look for to help me determine
if APFS+Trim is an issue on my drive?

Thanks again for all your help!


PS. Other than 10.14 support, is there anything in the beta branch that could improve on this system setup (speaking of KabyLake-r/G5 specifically). Or is there anything that needs testing that I could test with my system? Just so I know which branch to go for when I do this later :)
 
Last edited:
THX @RehabMan!

Which of those system defs enables HWP? I'll probably test both just to see performance difference (with and without HWP), but want to know which is which :)
Also, are Clover Config changes required to enable HWP?


Regarding the SSD, other than the boot time, what else can I look for to help me determine
if APFS+Trim is an issue on my drive?

Thanks again for all your help!


PS. Other than 10.14 support, is there anything in the beta branch that could improve on this system setup (speaking of KabyLake-r/G5 specifically). Or is there anything that needs testing that I could test with my system? Just so I know which branch to go for when I do this later :)

MacBookPro11,1 is for a Haswell laptop, therefore not HWP enabled.
HWP does not involve Clover settings at all.

The only way to know if APFS+TRIM is a problem with your hardware is to test it.

The beta branch is different primarily due to 10.14 changes. You can look at the commit logs if you're curious.
 
Note: Initial support checked into the beta branch (obviously not tested). Incomplete: audio/USB configuration.
Yes, like other coffee lakes, there is the problem that the backlight brightness is always the lowest.

Did not find the right xml, I decided to solve the audio problem first.

USB configuration... In addition to SSDT-UIAC, do you need other configurations?

I noticed that turning off the discrete GPU would make HDMI ineffective, so shouldn't we disable the discrete GPU?
 
Yes, like other coffee lakes, there is always the problem that the backlight brightness is always the lowest.

No such issue with correctly implemented backlight control.
The github project here already does it.

Did not find the right xml, I decided to solve the audio problem first.

Audio with AppleHDA should probably be lowest priority..., you can always use VoodooHDA temporarily.

USB configuration... In addition to SSDT-UIAC, do you need other configurations?

I don't know what you mean by "other configurations". The stand-in ACPI files currently have no UIAC.RMCF, so you should be able to add an SSDT-UIAC.aml (as per USBInjectAll guide), which I can later integrate into the repo. Please plan on providing the SSDT-UIAC.dsl source with comments regarding physical port locations/assignments though.

I noticed that turning off the discrete GPU would make HDMI ineffective, so shouldn't we disable the discrete GPU?

Currently the repo disables DGPU in all cases, unless you disable the feature via RMCF settings.
It is disabled for power savings, and the fact that it generally doesn't work anyway. No one successful with ZBook external DGPU ports, even with Nvidia web drivers, etc... impossible to know if that is user error, or an incompatibility.
 
, so you should be able to add an SSDT-UIAC.aml (as per USBInjectAll guide)
Provide UIAC, it has been used for two days

There is a TXHC device running USB Type-C SuperSpeed ports
 

Attachments

  • SSDT-UIAC.dsl
    4.7 KB · Views: 87
  • kuque’s MacBook Pro.ioreg
    17.3 MB · Views: 124
Provide UIAC, it has been used for two days

There is a TXHC device running USB Type-C SuperSpeed ports

The XHC type-C you have wrong UsbConnector. Should be either 9 or 10 depending on the handling of the two orientations (make sure you test both ways). See ACPI spec for more info. And you're missing SSxx port(s) for the Type-C.

Other ProBook's type-C is _UPC 10, so I will set it that way initially.

This is what I have for SSDT-USB-1050-G1.asl so far:
Code:
// USBInjectAll configuration/override for EliteBook 1050 G1 (KabyLake-R)
//
// Based on information provided from Kuque KabyLake-R EliteBook 1050 G1

//DefinitionBlock("", "SSDT", 2, "hack", "usb1050g1", 0)
//{
//
// Override for USBInjectAll.kext
//
    Device(UIAC)
    {
        Name (_HID, "UIA00000")  // _HID: Hardware ID
        Name (RMCF, Package (0x02)
        {
            "8086_a36d", Package()
            {
                "port-count", Buffer() { 26, 0, 0, 0 },
                "ports", Package()
                {
                    "HS04", Package()   // rear USB3
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package()   // front USB3
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS07", Package()   // camera
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
#if 0
                    "HS08", Package()   // finger print reader (disabled)
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
#endif
                    "HS11", Package()   // rear type-C
                    {
                        "UsbConnector", 10,
                        "port", Buffer() { 11, 0, 0, 0 },
                    },
                    "HS13", Package()   // front type-C
                    {
                        "UsbConnector", 10,
                        "port", Buffer() { 13, 0, 0, 0 },
                    },
                    "HS14", Package()   // bluetooth
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 14, 0, 0, 0 },
                    },
                    "SS03", Package()   // rear USB3
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SS04", Package()   // front USB3
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
#if 0 // up to 4 of these SS ports may be used by the front/rear type-C
                    "SS05", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 0, 0, 0 },
                    },
                    "SS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 22, 0, 0, 0 },
                    },
                    "SS07", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 23, 0, 0, 0 },
                    },
                    "SS08", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 24, 0, 0, 0 },
                    },
                    "SS09", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 25, 0, 0, 0 },
                    },
                    "SS10", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 26, 0, 0, 0 },
                    },
                    "USR1", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 15, 0, 0, 0 },
                    },
                    "USR2", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 16, 0, 0, 0 },
                    },
#endif
                },
            },
        })
    }
//}

//EOF
 
And you're missing SSxx port(s) for the Type-C.
Thank you for your correction to UsbConnector.
Regarding the Type-C SSxx port, I found it under another device, so I don’t think it will affect the a36d device.
 

Attachments

  • 屏幕快照 2018-07-06 下午2.39.16.png
    屏幕快照 2018-07-06 下午2.39.16.png
    35.5 KB · Views: 189
  • 屏幕快照 2018-07-06 下午2.50.34.png
    屏幕快照 2018-07-06 下午2.50.34.png
    1.2 MB · Views: 135
Status
Not open for further replies.
Back
Top