Contribute
Register

[Guide] HP Elite X2 1012 G1 / G2, Clover UEFI, VirtualSMC, Hot Patch

Status
Not open for further replies.
Ok, a couple things. If you haven't, you should install the kexts to /Library/Extensions and set the inject kexts flag to 'detect' instead of yes in your config.plist and remove the FakeSMC sensor kexts. Also, make sure that you only have 'inject intel' set to true. (uncheck injectATI and injectNvidia or set them to false). This shouldn't make a difference, but you can also uncheck 'wake on USB' in the BIOS settings and that may help. It doesn't matter on my machine but you never know. If after those changes, you still can't sleep, post your clover folder again along with an IOReg and the output from 'sudo kextcache -i /'



Should I use FakeSMC or VirtualSMC? Im only asking because I believe the FakeSMC is more up to date but I may be wrong. Ive already installed the kexts. I think I did that once I got the system working. I just rebuilt the cache.
Ive looked into HibernationFixup. Would/should that help or be able to do anything? Also, I did some testings with CPUFriend and compared the Watts, Temps, clocks, and benchmark scores (Cinebench and Geekbench)
 
Should I use FakeSMC or VirtualSMC? Im only asking because I believe the FakeSMC is more up to date but I may be wrong. Ive already installed the kexts. I think I did that once I got the system working. I just rebuilt the cache.
Ive looked into HibernationFixup. Would/should that help or be able to do anything? Also, I did some testings with CPUFriend and compared the Watts, Temps, clocks, and benchmark scores (Cinebench and Geekbench)

FakeSMC will probably work fine but you'll need the ACPIBatterymanager along with it. It was less reliable for me but ymmv. Rebuilding the kextcache does nothing for you if you still have 'inject kexts' set to yes in your config.plist. The jury is still out on HibernationFixup, not sure if it helps or not. You're kinda on your own a bit tho since you are using different kexts and configurations than the guide.
 
FakeSMC will probably work fine but you'll need the ACPIBatterymanager along with it. It was less reliable for me but ymmv. Rebuilding the kextcache does nothing for you if you still have 'inject kexts' set to yes in your config.plist. The jury is still out on HibernationFixup, not sure if it helps or not. You're kinda on your own a bit tho since you are using different kexts and configurations than the guide.

Im still using the kexts and the config from the guide. Ive only added the CPUFriend which has helped. Ill post the results here if you dont mind. It might help others.

The only thing changed if the config because the guide did not work. Was setting it as a MacBook9,1 which Id like to but I dont wanna risk causing it to KP. Like it was doing before. I did change it to detect instead of yes. I haven't changed the FakeSMC or the battery kext. I was experimenting with it because in iStat Menus the CPU temp was reading as 0c.

I had thought you had used FaceSMC in this build. I did make all of the changes in my config and bios.
 
Im still using the kexts and the config from the guide. Ive only added the CPUFriend which has helped. Ill post the results here if you dont mind. It might help others.

The only thing changed if the config because the guide did not work. Was setting it as a MacBook9,1 which Id like to but I dont wanna risk causing it to KP. Like it was doing before. I did change it to detect instead of yes. I haven't changed the FakeSMC or the battery kext. I was experimenting with it because in iStat Menus the CPU temp was reading as 0c.

I had thought you had used FaceSMC in this build. I did make all of the changes in my config and bios.

Ah, I see. And sleep is still not working? Have you tried both lid sleep and the menu selection? The SMBIOS things baffles me. Definitely report any findings.
 
Ah, I see. And sleep is still not working? Have you tried both lid sleep and the menu selection? The SMBIOS things baffles me. Definitely report any findings.
I haven't tried sleep yet. Im gonna drain the battery a good bit and then sleep it. Also IDK if im missing something but in energy saver battery and AC it doesnt give me a sleep slider.....My Real macbook pro has this opinion and its running Mojave.


Yeah, while I was suspended the multiple times (Thanks for having my back btw.) I did research about the KP with using that SMBIOS and I read in multiple places. That SMBIOS has some sort of issue. I even tried using a clean config and Rehabman's configs and using the SMBIOS and it kept crashing so I went onto everymac.com and found that the 10,1 used the CoreM CPUs.
 
I haven't tried sleep yet. Im gonna drain the battery a good bit and then sleep it. Also IDK if im missing something but in energy saver battery and AC it doesnt give me a sleep slider.....My Real macbook pro has this opinion and its running Mojave.


Yeah, while I was suspended the multiple times (Thanks for having my back btw.) I did research about the KP with using that SMBIOS and I read in multiple places. That SMBIOS has some sort of issue. I even tried using a clean config and Rehabman's configs and using the SMBIOS and it kept crashing so I went onto everymac.com and found that the 10,1 used the CoreM CPUs.
Use this tool and upload your problem reporting files:

please use site attachments
 
Ah, I see. And sleep is still not working? Have you tried both lid sleep and the menu selection? The SMBIOS things baffles me. Definitely report any findings.
I have tested sleep......Short story. It doesn't work at all. I put it to sleep (By closing the lid) with 66% battery. I opened it. I had around 40% That was in a single hour. I do have a USB wifi dongle plugged into the USB port. Could that be culprit? I have iStat Menu installed and it shows black when in sleep and the graph starts again during wake. It shows it had been awake for a while.
 
Thanks @jhax01 for this complete guide. I'll throw in some additions and fixes to make things a bit "cleaner" (to be debated).

For the config.plist:
  1. GFX0, HDAS and HECI are not needed anymore, AppleALC and WhateverGreen take care of that for you
  2. PluginType has been enabled twice (under ACPI/SSDT and ACPI/SSDT/Generate), not that it will do any harm, but idk, one is enough (I use a standalone SSDT for PluginType because of OC, so that works too)
  3. For Devices/Properties/PciRoot(0)/Pci(0x02,0), I had to use 0x591b0000, 0105 instead of 0204, HDMI from rehbman's configs to get HDMI out:
    XML:
    <key>framebuffer-patch-enable</key>
    <integer>1</integer>
    <key>framebuffer-con1-enable</key>
    <integer>1</integer>
    <key>framebuffer-con1-alldata</key>
    <data>AQUKAAAIAACHAQAAAwYKAAAEAACHAQAA/wAAAAEAAAAgAAAA</data>
  4. For USB-C Hotplug, I would recommend renaming the _RMV method to XRMV and then using an SSDT with the proper _RMV Method:
    XML:
    <dict>
        <key>Comment</key>
        <string>RMV to XRMV</string>
        <key>Disabled</key>
        <false/>
        <key>Find</key>
        <data>U1gUC19STVYA</data>
        <key>Replace</key>
        <data>U1gUC1hSTVYA</data>
    </dict>
    Note that here I only changed the _RMV method of RP01 (which is our port for TB3), just so that I dont rename everything else like the mismatched patch do (and also since it's mismatched, it wont work on OC). With this you put SSDT-TBHP (add it to the sorting if you need to, although I think since we're going 100% hotpatch, I dont see the need for the sorting in the first place).
  5. LPC patch and SSDT-LPC, I honestly dont see the need for this since even on real macs AppleLPC isnt loaded (as told by Rehabman here) so it's not really needed.
  6. Instead of using a GPRW SSDT, I use this (thanks to @Sniki for the inspiration):
    XML:
    <dict>
        <key>Comment</key>
        <string>Change GPRW 0x6D, 0x04 to GPRW 0x6D, 0x00</string>
        <key>Find</key>
        <data>R1BSVwptCgQ=</data>
        <key>Replace</key>
        <data>R1BSVwptCgA=</data>
    </dict>
  7. I have no idea why UseSystemIO is there (even clover wiki isnt talking much about it -???-)
  8. I have no idea why there is Conexant menubar fix What does it do to the audio?
  9. There is no real need for the IONetworkingFamily in ForceKextsToLoad (unless you need it), but IOGraphics is certainly needed for VoodooI2C (I have to manually refresh kernel kext cache on OC, there is no such as forcing kexts to load)
  10. Some entries that can be omitted for the sake of cleaning up the config lol
For the kexts:
  1. SATA-100-series-unsupported, I dont really see the need for this if your SSD is recognized, correct me if I'm wrong
  2. You can use ACPIBatteryManager *with* VirtualSMC, there nothing preventing you from doing that, although the other way SMCBattery + FSMC may not work (didnt test)
  3. About battery, I have that weird bug where it would say that I'm low on battery anytime and every time (even at 100%), although I still get my 5 hours of use (on full brightness), it's still annoying. Resetting the UEFI Firmware didnt help, I'm on the latest update (with the HP Application and Battery Management entry and the USB-C High Res addition that cripples your USB-C hub to USB2.0 speeds for the sake of giving more bandwidth to the DP port).
    unknown.png

  4. AlpsT4USB is a blessing, THANK YOU.
For drivers64UEFI:

There is no real need (anymore) for FSInject and OsxFatBinaryDrv, they can be removed. Also Acidanthera's VboxHfs works fine too if you want to use an opensource driver.

For UEFI Firmware settings:

You forgot to mention that you need to disable Wake from LAN (to fix sudden wake or black screen on wake).

Other than that, it's all good. I dont know what sleep bug you're having, for me sleep/wake works just fine (other than the BT issue that still happens really rarely for me after those BrcmPatchRAM2 boot args and the new patched one), there is also the issue that if you kept your USB-C hub plugged when putting the tablet to sleep, it wont re-connect to the system until you unplug it, wait for the "ExpressCard" logo to go then some more seconds then replug it, this happens to me, and I lost all USB functions but video out still works out.
 

Attachments

  • SSDT-TBHP.aml
    121 bytes · Views: 70
GFX0, HDAS and HECI are not needed anymore, AppleALC and WhateverGreen take care of that for you
I would still keep them, i personally do, it's the proper ACPI implementation and the way it matches Apple Hardware.
My concept is: config.plist or SSDT > kexts
Cleaner setup, ACPI that matches Apple hardware as much as possible, less kexts, less bloated system.
Yes it does the automatic injections but i prefer to have it set on ACPI and let the kext do the graphics part.
PluginType has been enabled twice (under ACPI/SSDT and ACPI/SSDT/Generate), not that it will do any harm, but idk, one is enough (I use a standalone SSDT for PluginType because of OC, so that works too)
Correct, just leave the config.plist / ACPI / SSDT / PluginType=1 set as true, remove the SSDT
Again config.plist > SSDT > kext
LPC patch and SSDT-LPC, I honestly dont see the need for this since even on real macs AppleLPC isnt loaded (as told by Rehabman here) so it's not really needed.
Yes that is correct as well,
Rehabman said so and it's correct the Apple Macbooks and MacbookPro Skylake+ do not have AppleLPC loaded.
I have no idea why there is Conexant menubar fix What does it do to the audio?
It is a needed fix on Conexant audio codecs where the Volume level when you press the keyboard volume buttons is not matched with menu bar level, that patch fixes that, but again you are correct, it is not needed because it's implemented on AppleALC kext and it does the correction automatically.
There is no real need for the IONetworkingFamily in ForceKextsToLoad (unless you need it), but IOGraphics is certainly needed for VoodooI2C (I have to manually refresh kernel kext cache on OC, there is no such as forcing kexts to load)
Correct
SATA-100-series-unsupported, I dont really see the need for this if your SSD is recognized, correct me if I'm wrong
You have to rename SAT0 to SATA and use the SSDT-SATA instead, writing from my Windows laptop for now so i don't have any ioreg to check but yes, there are some SATA controllers with some specific IDs not supported that need the kext or SSDT.
About battery, I have that weird bug where it would say that I'm low on battery anytime and every time (even at 100%), although I still get my 5 hours of use (on full brightness), it's still annoying. Resetting the UEFI Firmware didnt help, I'm on the latest update (with the HP Application and Battery Management entry and the USB-C High Res addition that cripples your USB-C hub to USB2.0 speeds for the sake of giving more bandwidth to the DP port).
Maybe there is another EC Register that needs to be patched for battery status if it is something that happens all the time, upload PR files and i will take a look on what you have tonight and see if something is missing from the patches.
 
Thanks @jhax01 for this complete guide. I'll throw in some additions and fixes to make things a bit "cleaner" (to be debated).

For the config.plist:
  1. GFX0, HDAS and HECI are not needed anymore, AppleALC and WhateverGreen take care of that for you
  2. PluginType has been enabled twice (under ACPI/SSDT and ACPI/SSDT/Generate), not that it will do any harm, but idk, one is enough (I use a standalone SSDT for PluginType because of OC, so that works too)
  3. For Devices/Properties/PciRoot(0)/Pci(0x02,0), I had to use 0x591b0000, 0105 instead of 0204, HDMI from rehbman's configs to get HDMI out:
    XML:
    <key>framebuffer-patch-enable</key>
    <integer>1</integer>
    <key>framebuffer-con1-enable</key>
    <integer>1</integer>
    <key>framebuffer-con1-alldata</key>
    <data>AQUKAAAIAACHAQAAAwYKAAAEAACHAQAA/wAAAAEAAAAgAAAA</data>
  4. For USB-C Hotplug, I would recommend renaming the _RMV method to XRMV and then using an SSDT with the proper _RMV Method:
    XML:
    <dict>
    <key>Comment</key>
    <string>RMV to XRMV</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>U1gUC19STVYA</data>
    <key>Replace</key>
    <data>U1gUC1hSTVYA</data>
    </dict>
    Note that here I only changed the _RMV method of RP01 (which is our port for TB3), just so that I dont rename everything else like the mismatched patch do (and also since it's mismatched, it wont work on OC). With this you put SSDT-TBHP (add it to the sorting if you need to, although I think since we're going 100% hotpatch, I dont see the need for the sorting in the first place).
  5. LPC patch and SSDT-LPC, I honestly dont see the need for this since even on real macs AppleLPC isnt loaded (as told by Rehabman here) so it's not really needed.
  6. Instead of using a GPRW SSDT, I use this (thanks to @Sniki for the inspiration):
    XML:
    <dict>
    <key>Comment</key>
    <string>Change GPRW 0x6D, 0x04 to GPRW 0x6D, 0x00</string>
    <key>Find</key>
    <data>R1BSVwptCgQ=</data>
    <key>Replace</key>
    <data>R1BSVwptCgA=</data>
    </dict>
  7. I have no idea why UseSystemIO is there (even clover wiki isnt talking much about it -???-)
  8. I have no idea why there is Conexant menubar fix What does it do to the audio?
  9. There is no real need for the IONetworkingFamily in ForceKextsToLoad (unless you need it), but IOGraphics is certainly needed for VoodooI2C (I have to manually refresh kernel kext cache on OC, there is no such as forcing kexts to load)
  10. Some entries that can be omitted for the sake of cleaning up the config lol
For the kexts:
  1. SATA-100-series-unsupported, I dont really see the need for this if your SSD is recognized, correct me if I'm wrong
  2. You can use ACPIBatteryManager *with* VirtualSMC, there nothing preventing you from doing that, although the other way SMCBattery + FSMC may not work (didnt test)
  3. About battery, I have that weird bug where it would say that I'm low on battery anytime and every time (even at 100%), although I still get my 5 hours of use (on full brightness), it's still annoying. Resetting the UEFI Firmware didnt help, I'm on the latest update (with the HP Application and Battery Management entry and the USB-C High Res addition that cripples your USB-C hub to USB2.0 speeds for the sake of giving more bandwidth to the DP port).
    unknown.png

  4. AlpsT4USB is a blessing, THANK YOU.
For drivers64UEFI:

There is no real need (anymore) for FSInject and OsxFatBinaryDrv, they can be removed. Also Acidanthera's VboxHfs works fine too if you want to use an opensource driver.

For UEFI Firmware settings:

You forgot to mention that you need to disable Wake from LAN (to fix sudden wake or black screen on wake).

Other than that, it's all good. I dont know what sleep bug you're having, for me sleep/wake works just fine (other than the BT issue that still happens really rarely for me after those BrcmPatchRAM2 boot args and the new patched one), there is also the issue that if you kept your USB-C hub plugged when putting the tablet to sleep, it wont re-connect to the system until you unplug it, wait for the "ExpressCard" logo to go then some more seconds then replug it, this happens to me, and I lost all USB functions but video out still works out.

There certainly is some garbage in the config.plist that can be pared out. Mostly due to me being lazy and using Clover Configurator--accidentally check something it gets added in regardless of whether or not you uncheck it. Most of these items are 'flair' and can be done multiple ways but here are my unsolicited thoughts --

1. HDAS and HECI renames get handled fine but whatevergreen is very poor at capturing all the GFX renames, it's best to leave it in the config.plist. which may also relate to #3 in your particular case as I have no issue with HDMI audio, etc, without needing additional patching.

2. I agree, delete one of the patches or use an SSDT.

3. See #1

4. This is a flair item. Your method works fine, but I see no need to add an SSDT when all we are trying to do is change the TARS variable to 1. It's true that the patch changes it for *all* of the RPxx locations in the DSDT but since there are only two devices, there's no harm. Also not sure what you mean by 'mismatched'

5. You're right, delete them.

6. Flair. Either method works fine.

7. This can be deleted. It has to do with generating P C states and isn't needed or used.

8. As stated, this is a cosmetic fix for the displayed sound level in the menubar. I didn't realize that AppleALC incorporates it tho.

9. I agree.

10. There's loads of this for sure, things like sorted order, etc.

I happen to need the SATA 100 kext as I don't use an NVME drive unless something has changed and the device IDs are now in Mojave (but I don't think that's the case). For myself, the VirtualSMC and SMCBatteryManager combination have been far more reliable with battery reporting. You may want to double check that the EC regions are the same between your extracted DSDT and the patches. I did also notice that cycle count is no longer being correctly reported so I'll have a look at it as well. The OsxFatBinary driver is definitely not needed. I don't use OC so for me, FSInject is needed for kext injection AFAIK.

Anyway, I appreciate your suggestions and will incorporate some of them in the first post soon.
 
Last edited:
Status
Not open for further replies.
Back
Top