Contribute
Register

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

Status
Not open for further replies.
After you remove Karabiner (or do fresh install), do EC reset, then test.
If it is still a problem, install the debug VoodooPS2Controller.kext and provide the relevant kernel logs that result when pressing the Esc key.

Ok the debug version has been helpful. Escape key still not working, but it's showing the following events when pressing it:

default 17:18:11.337365 +0100 kernel ApplePS2Keyboard: sending key e001=80 down
default 17:18:11.511277 +0100 kernel ApplePS2Keyboard: sending key e001=80 up

I'm *guessing* 80 is not the correct code for escape and I'll need to add a custom entry to either the PS2 or ADB map in VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard/Contents/Info.plist.

If so, I'd appreciate any tips on what I should map e001 to and which section (PS2 or ADB).
 
Ok the debug version has been helpful. Escape key still not working, but it's showing the following events when pressing it:

default 17:18:11.337365 +0100 kernel ApplePS2Keyboard: sending key e001=80 down
default 17:18:11.511277 +0100 kernel ApplePS2Keyboard: sending key e001=80 up

I'm *guessing* 80 is not the correct code for escape and I'll need to add a custom entry to either the PS2 or ADB map in VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard/Contents/Info.plist.

If so, I'd appreciate any tips on what I should map e001 to and which section (PS2 or ADB).

PS2 e001 is correct for Esc.
But it should map to ADB 0x35, as per ApplePS2ToADBMap.h:
Code:
    0x35,   // 01  Escape

0x80 is ADB DEADKEY.

As it is not mapping correctly, and there is no custom mapping in ACPI to change this, I assume you have an incorrect or inappropriately patched VoodooPS2Controller.kext.

Run ./download.sh and ./install_downloads.sh to restore guide provided VoodooPS2Controller.kext.
 
PS2 e001 is correct for Esc.
But it should map to ADB 0x35, as per ApplePS2ToADBMap.h:
Code:
    0x35,   // 01  Escape

0x80 is ADB DEADKEY.

As it is not mapping correctly, and there is no custom mapping in ACPI to change this, I assume you have an incorrect or inappropriately patched VoodooPS2Controller.kext.

Run ./download.sh and ./install_downloads.sh to restore guide provided VoodooPS2Controller.kext.

Actually,... scratch that:
PS2 e001 is correct for Esc.

Esc is just 01, not e001.
(that is, Esc should not generate an "extended" PS2 code).

Your EC is doing strange things. Make sure you do an EC reset.

And check that your BIOS is up-to-date (as per post #1).
 
Actually,... scratch that:


Esc is just 01, not e001.
(that is, Esc should not generate an "extended" PS2 code).

Your EC is doing strange things. Make sure you do an EC reset.

And check that your BIOS is up-to-date (as per post #1).

I reinstalled downloads before you edited your post, no change.

I did perform an EC reset after you initially suggested it. I had updated my BIOS recently (well, maybe 3-4 months ago). I can check to see if there is a newer BIOS available.
 
I reinstalled downloads before you edited your post, no change.

I did perform an EC reset after you initially suggested it. I had updated my BIOS recently (well, maybe 3-4 months ago). I can check to see if there is a newer BIOS available.

Must have latest BIOS. And after updating BIOS, do EC reset. Your keyboard controller (controlled by the EC) is not generating correct codes for Esc (Esc should not have e0 extended).

CMOS reset might not be a bad idea either (assuming the above procedures do not resolve).

Note also easy work around in the kext, should it prove to be persistent:
Code:
diff --git a/VoodooPS2Controller.xcodeproj/project.pbxproj b/VoodooPS2Controller.xcodeproj/project.pbxproj
index 0b3c77b..c00b043 100644
--- a/VoodooPS2Controller.xcodeproj/project.pbxproj
+++ b/VoodooPS2Controller.xcodeproj/project.pbxproj
@@ -827,7 +827,7 @@
                 GCC_WARN_UNUSED_VARIABLE = YES;
                 "LLVM_LTO[arch=x86_64]" = YES;
                 MACOSX_DEPLOYMENT_TARGET = 10.6;
-               MODULE_VERSION = 1.8.34;
+               MODULE_VERSION = 1.8.35;
                 "OTHER_LDFLAGS[arch=x86_64]" = "-dead_strip";
                 PRODUCT_NAME = VoodooPS2Controller;
                 SDKROOT = macosx10.8;
@@ -852,7 +852,7 @@
                 GCC_WARN_UNUSED_VARIABLE = YES;
                 "LLVM_LTO[arch=x86_64]" = YES;
                 MACOSX_DEPLOYMENT_TARGET = 10.6;
-               MODULE_VERSION = 1.8.34;
+               MODULE_VERSION = 1.8.35;
                 "OTHER_LDFLAGS[arch=x86_64]" = "-dead_strip";
                 PRODUCT_NAME = VoodooPS2Controller;
                 SDKROOT = macosx10.8;
diff --git a/VoodooPS2Keyboard/ApplePS2ToADBMap.h b/VoodooPS2Keyboard/ApplePS2ToADBMap.h
index 022536e..728b0a2 100644
--- a/VoodooPS2Keyboard/ApplePS2ToADBMap.h
+++ b/VoodooPS2Keyboard/ApplePS2ToADBMap.h
@@ -302,8 +302,8 @@ static const UInt8 PS2ToADBMapStock[ADB_CONVERTER_LEN] =
     DEADKEY,// fd
     DEADKEY,// fe
     DEADKEY,// ff
-    DEADKEY,// e0 00
-    DEADKEY,// e0 01
+    DEADKEY,// e0 00
+    0x35,   // e0 01 (some laptops generate e0 01 for Esc)
     DEADKEY,// e0 02
     DEADKEY,// e0 03
     DEADKEY,// e0 04
 
Last edited:
Considering buying a HP ProBook 430 G5. Is there anything that doesn’t work? I noticed it said that the laptop is experimental. Was wondering what’s up with it
 
Must have latest BIOS. And after updating BIOS, do EC reset. Your keyboard controller (controlled by the EC) is not generating correct codes for Esc (Esc should not have e0 extended).

CMOS reset might not be a bad idea either (assuming the above procedures do not resolve).

Note also easy work around in the kext, should it prove to be persistent:
Code:
diff --git a/VoodooPS2Controller.xcodeproj/project.pbxproj b/VoodooPS2Controller.xcodeproj/project.pbxproj
index 0b3c77b..c00b043 100644
--- a/VoodooPS2Controller.xcodeproj/project.pbxproj
+++ b/VoodooPS2Controller.xcodeproj/project.pbxproj
@@ -827,7 +827,7 @@
                 GCC_WARN_UNUSED_VARIABLE = YES;
                 "LLVM_LTO[arch=x86_64]" = YES;
                 MACOSX_DEPLOYMENT_TARGET = 10.6;
-               MODULE_VERSION = 1.8.34;
+               MODULE_VERSION = 1.8.35;
                 "OTHER_LDFLAGS[arch=x86_64]" = "-dead_strip";
                 PRODUCT_NAME = VoodooPS2Controller;
                 SDKROOT = macosx10.8;
@@ -852,7 +852,7 @@
                 GCC_WARN_UNUSED_VARIABLE = YES;
                 "LLVM_LTO[arch=x86_64]" = YES;
                 MACOSX_DEPLOYMENT_TARGET = 10.6;
-               MODULE_VERSION = 1.8.34;
+               MODULE_VERSION = 1.8.35;
                 "OTHER_LDFLAGS[arch=x86_64]" = "-dead_strip";
                 PRODUCT_NAME = VoodooPS2Controller;
                 SDKROOT = macosx10.8;
diff --git a/VoodooPS2Keyboard/ApplePS2ToADBMap.h b/VoodooPS2Keyboard/ApplePS2ToADBMap.h
index 022536e..728b0a2 100644
--- a/VoodooPS2Keyboard/ApplePS2ToADBMap.h
+++ b/VoodooPS2Keyboard/ApplePS2ToADBMap.h
@@ -302,8 +302,8 @@ static const UInt8 PS2ToADBMapStock[ADB_CONVERTER_LEN] =
     DEADKEY,// fd
     DEADKEY,// fe
     DEADKEY,// ff
-    DEADKEY,// e0 00
-    DEADKEY,// e0 01
+    DEADKEY,// e0 00
+    0x35,   // e0 01 (some laptops generate e0 01 for Esc)
     DEADKEY,// e0 02
     DEADKEY,// e0 03
     DEADKEY,// e0 04

Right, so I checked my BIOS version, it's actually quite new (April 2018). There's been one newer release since then but the changelog specifies security updates only. I'll give it a whirl at some point.

I haven't done a CMOS reset yet (I assume by that you mean resetting BIOS to factory defaults and then reconfiguring as per the first post?) but I did build VoodooPS2Controller.kext with the above changes and the escape key now works. (VoodooPS2 log is showing e001=35)

However, I'm an XCode noob and when building, only the debug version is being built, not the release version. I know this isn't an XCode help thread, but is there anything I need to be doing when building the project for it to generate the Release kext? (The Release folder is being created but no kext in it).

Cheers
 
However, I'm an XCode noob and when building, only the debug version is being built, not the release version.

Use 'make' in Terminal.
Make sure you set Preferences->Location->Derived Data Advanced->Build Location->Custom->"Relative to Workspace".

Please test BIOS update/CMOS reset (obviously with original kext, or by verifying ps2 logs your EC is generating 01 instead of e0 01).
 
I understand this is still the High Sierra thread, but I'm recently trying out Mojave Public Beta, and so far actually really liking it. Only thing I'm running into is the sound doesn't want to kick in. I checked all my stuff and everything is up-to-date and working (even going back to High Sierra everything works, so I'm thinking it's a Mojave thing). I uploaded my PR files just for verification.

P.S. I'm also using AptioMemoryFix-64.efi instead, which seems to be working very well in itself. I am also using MacBookPro10,2 instead of 9,2 as it more closely matches my hardware configuration (despite being Retina vs Non-Retina).
 

Attachments

  • debug_15599.zip
    2.4 MB · Views: 59
I understand this is still the High Sierra thread, but I'm recently trying out Mojave Public Beta, and so far actually really liking it. Only thing I'm running into is the sound doesn't want to kick in.

You failed to follow the guide properly.
As per post #1, you must use the beta branch for 10.14 support.
Read post #1 carefully.
 
Status
Not open for further replies.
Back
Top