Contribute
Register

[Guide] HP Elite X2 1012 G1 - The ultimate OS X tablet? Pretty close....

Status
Not open for further replies.
Joined
Dec 3, 2011
Messages
438
Motherboard
HP Elite X2
CPU
i5-7600U
Graphics
HD 620, 2736x1834
Mac
  1. MacBook Pro
  2. Mac Pro
Classic Mac
  1. 128K
  2. 512K
Mobile Phone
  1. iOS
*** 8/14/17 -- Time for an enterprising soul to pick up the mantle...I bought the next generation of the Elite X2 (guide will be forthcoming). VoodooI2C updates and improvements will continue as they occur...

**** . 8/7/17 -- Edited for 1.22 bios.

*** 6/5/17 -- Improved VoodooI2C multitouch transitions and false click reductions. New kext attached.
-- Early support for touch-base's UPDD gesture control via touch injection...More to follow.




The video demonstrates El Capitan and everything is pretty much the same for Sierra; however, I am using the DW1560 for wi-fi and handoff is *not* working on Sierra (it was fine on El Cap). Otherwise, no SD card, no rear camera, no TB3, everything else is good to go as far I can tell.

*** Edit - The HID changes between El Cap and Sierra are causing some issues. Double clicking doesn't work very well in Sierra either due to the default speed setting or accuracy and, unfortunately, it doesn't respond to the mouse preference pane changes the way it does in El Capitan. Additionally, the pen no longer responds to pressure changes. Add both of these together and I'm going back to El Capitan. It's possible that one or both of these issues can be corrected in VoodooI2C, but for now I'm not too motivated to try given that the only reason I tried Sierra was for potentially being able to unlock the Elite via Apple watch. (which doesn't work for me because of handoff issues)




Here's a disassembly video for replacing the Wi-Fi and/or SSD. Pretty simple to get apart, but take care when reassembling...They snap the screen back in willy nilly, but it's best to seat the left or right side first and allow the screen to bend slightly while seating the other side. The long sides snap in without a problem, the short ends are a little tricky. The screen is Gorilla Glass 4 and is ridiculously bendy..lol.




Bios Settings



First ensure you have updated to bios version 1.22, there are some ACPI variable changes from previous versions that will not be compatible with all of the DSDT/SSDT mods I’ve made.



Security Tab

Turn TPM off.



Advanced Tab

  • Boot Options – turn everything OFF except the following
    • CD-ROM Boot (probably doesn’t matter)
    • USB Storage Boot
    • Audio Alerts During Boot (probably doesn’t matter)
    • UEFI Boot
  • Secure Boot Configuration
    • Set to Legacy Support Disable and Secure Boot Disable
    • Uncheck everything else
  • System Options – leave everything checked except
    • Swap Fn and Ctrl (Keys)
    • Launch Hotkeys with Fn Keypress
  • Built-In Device Options
    • Set the video memory size to 64mb
    • You can leave everything checked, I disable NFC because it doesn’t apply to my system.
  • Port Options
    • Check USB Ports and USB Charging Port Function (if desired)
    • I leave the media card reader checked but it doesn’t work in OS X.
  • Power Management Options
    • Check Runtime Power Management
    • Check Extended Idle Power States
    • Check Power Control
    • Uncheck everything else, particularly connected standby


Install USB Creation



You’ll need a USB stick 8GB or larger and a real Mac or a working Hackintosh.

First download Sierra from Apple and ensure it is in your /Applications folder.

Also download the latest version of the Clover bootloader from sourceforge.

Format the USB stick with Disk Utility, OSX Extended journaled and GUID Partition Map with the name INSTALL



Use the following terminal command and enter your password to put the installer on the USB stick:

sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/INSTALL --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction



Install Clover to the USB with the follow options:

  • Install for UEFI booting only
  • Install Clover in the ESP
  • All themes
  • Drivers64UEFI
    • EmuVariableUEFI-64
    • OsxAptioFixDrv-64
  • Install RC scripts on target volume


After that’s done and the EFI partition is mounted, install HFSPlus.efi and remove Vbox. An easy way to accomplish this is with Clover Configurator’s Driver install pane.



Add the already patched ACPI files, config.plist, and kexts from the attached install zip. Using ACPI files from someone else’s machine isn’t generally advised, but it will be ok to do for the installation. However, we will be patching the files specific to your machine so you have the best experience possible running OS X.



To get the latest kexts needed for the HP Elite X2



Dual Booting



If you’re keeping the stock drive, it is not likely that you’ll be able to install without wiping the drive, which is ok because your EFI partition probably wouldn’t make the cut anyway. Unlike previous versions, Sierra seems to need to be installed to the first partition.



Installation



Plug in your newly created USB drive and start the Elite X2. Once the HP boot logo appears, press the volume down button. When the menu appears, select the boot menu and then your USB drive. Once Clover has booted, select install mac os x.



When you’re booted into the installer, open up Disk Utility:



  • Select your drive and erase / partition it however you would like but ensure:
    • GUID is selected
    • Use only OSX partition types (even for what will be your windows installation) If you use exfat or fat anywhere, it will create a hybrid disk and Windows 10 will NOT install later (forcing you to start over)


After all that business is sorted out, quit Disk Utility and install OS X to the first partition.



After it is complete, reboot, press the volume down key, select the boot menu, and select your USB drive again. When Clover appears this time select your OS X installation.



Once you have booted and completed the set up (note: don’t log in with your Apple ID yet), install Clover to your hard drive using the same settings and files as before; however, this time instead of putting the kexts on the EFI partition, install them to your SSD using kext wizard (preferred) or another utility. And this time add VoodooI2C to get your touchscreen functioning. (Don’t be alarmed if it KPs on the first boot after installing. I don’t know why this happens, but after that it will be fine. Keep in mind this kext is in an Alpha stage. But it is stable on the Elite other than this quirk) Also, it is necessary to remove AppleLpssI2C.kext and AppleLpssI2CController.kext from /System/Library/Extensions/ For some reason, these will still load ahead of VoodooI2C even though they do nothing in OS X.

**** Edit - Alternatively, you can change the IOProbeScore in VoodooI2C's info.plist to 9999 and put it in Clover vs installing to /S/L/E. This will eliminate the need to delete the Apple I2C kexts, however, I don't know how reliably it will load ahead of them. If you find the Apple kexts loading on the I2C bus too often to tolerate, simply delete them and install VoodooI2C.



Reboot and install Windows if you need to. Once that is complete, reboot once more (without your USB) and press the volume down button. Select the Boot Menu, but this time select ‘boot from file’, then your EFI partition, EFI again, CLOVER, then CLOVERX64.efi.



Once Clover is up, press the F4 key once, also press Fn+F4 once just in case, and then boot into your installation. What you just did was extract your native ACPI files that we will use to patch your system for full functionality. This is a needed step, continuing to use my ACPI files is likely to cause you problems that are hard to identify or rectify.



Now to solve the issue of boot order…The HP Elite is very stubborn about adding UEFI boot entries for some reason so the simplest solution is once you are in OSX, mount your EFI partition (using clover configurator, etc) and navigate to /EFI/EFI/Microsoft/Boot/

Now find the ‘bootmgfw.efi’ file and rename it to ‘bootmgfw-orig.efi’ The Elite will boot to Clover ever more, except after a major Windows update. When it starts booting directly to Windows again, simply repeat the process.



ACPI Patching



Some things you’ll need to patch your ACPI files –

Iasl - https://github.com/RehabMan/Intel-iasl

MaciASL - https://github.com/RehabMan/OS-X-MaciASL-patchmatic



Most of the patches used are compiled from here:

https://github.com/RehabMan/Laptop-DSDT-Patch



I will list them so you can use them directly from RehabMan’s repository except the few I had to build specifically for the Elite X2 or you can use the preassembled and attached files to patch with.



First we start with disassembly. Mount your EFI partition and navigate to /EFI/CLOVER/ACPI/origin/



Copy the DSDT and all the SSDT files to a folder on your desktop. Add refs.txt to the folder from the patching .zip.



Open up the Terminal, navigate to the folder and type the following –


iasl -da -dl -fe refs.txt *.aml





Once it’s done processing, remove all the *.aml files and every SSDT that contains an ‘x’ in the name (those are dynamic and are loaded when needed).



You should be left with the following .dsl files –



  • DSDT.dsl
  • SSDT-0.dsl
  • SSDT-1.dsl
  • SSDT-2.dsl
  • SSDT-3.dsl
  • SSDT-4.dsl
  • SSDT-5.dsl
  • SSDT-6.dsl
  • SSDT-7.dsl
  • SSDT-8.dsl
  • SSDT-16.dsl
  • SSDT-17.dsl


The files in the patches .zip are named with the files they go with. Just go down the list and open the DSDT / SSDTs in MaciASL, hit the patch button and copy/paste the corresponding patch into the box. After it’s applied, select ‘save as’ and save the file as ACPI Machine Language Binary. Once you are done with all of the files, copy them to /EFI/EFI/CLOVER/ACPI/patched/ and you are done!



If you want to use the patches directly from RehabMan’s patch repository, these are the ones you need to apply



  • DSDT
    • HPET fix
    • IRQ fix
    • RTC fix
    • SMBUS fix
    • SkyLake LPC
    • OS Check Fix (Windows 8)
      • In the patch window, replace 2012 with 2015 in both places. The HP Elite is a Windows 10 machine.
    • Rename GFX0 to IGPU
    • USB3_PRW 0x6D Skylake (instant wake)
      • This isn’t strictly necessary, but advisable
    • Brightness Fix
    • Shutdown Fix
    • HP Elite X2 battery (added to Rehabman’s repo by me)
    • In ACPIKeyboard, use the patch for adding the RMKB device
    • Next, you will need to develop your own patch or manually makes these changes
      • In RP15 change Store (PNLF, LNSL) to Store (\PNLF, LNSL)
      • Insert the following line into the TPL0 device
        • Name (_ADR, Zero)
      • Change the HECI device to IMEI
  • SSDT 0-8, 17
    • Rename GFX0 to IGPU
  • SSDT 16
    • In the Definition Block add the following
      • External (RMKB, DeviceObj)
    • Rename GFX0 to IGPU
    • For the volume keys to function, in Method _Q30 ONLY
      • Search for VBPS, 0x02 and add the following after the if statement bracket
        • Notify (\RMKB, 0x1148)
        • Notify (\RMKB, 0x1248)
      • Search for VBPS, 0x03 and add the following after the if statement bracket
        • Notify (\RMKB, 0x1149)
        • Notify (\RMKB, 0x1249)


I’ve also included SSDT-UIAC.aml, which makes the appropriate corrections to the USB situation for the Elite X2. On my model, I only have HS01, HS03, HS07, HS09, and SS01. You may need to make changes for your specific device.





Wifi Considerations



I’ve installed Sierra twice and for some reason, Wifi was not working during the setup. The problem with this is that after you’ve installed the kexts to the /S/L/E, the Wifi interface will be on en1 instead of en0 so things like the App store, etc won’t work. To fix this, first ensure that Wifi is working, then navigate to /Library/Preferences/SystemConfiguration/ and delete NetworkInterfaces.plist. Reboot and re-add your wi-fi in the network preference pane. You can double check that wifi is on en0 by opening the System Profiler and looking at the wifi pane.





FaceTime / iMessage



You’ll notice in the included config.plist under the SMBIOS section, I left the serial and MLB sections blank. This is because you need to have one that is unique to your device while not being tied to an actual MacBook for iMessage, etc to function. There are a couple of ways to accomplish this, you can use Clover Configurator (probably easiest) to generate a serial using the shake buttons. Once you have a serial you would like to try, go to http://www.everymac.com/ultimate-mac-lookup/



Paste in your serial number, hit the robot dohicky, and click Lookup.

If you’re greeted with a machine description, then your serial number is valid and correctly formatted. If not, pick another.



When you have one that is correct, go to https://checkcoverage.apple.com and check the serial number again. If you get the message that it is not valid, you are good to go and can use that serial number. If you are greeted with the picture of a MacBook and warranty information – STOP, pick another serial and repeat the whole process. This means that you have picked one that belongs to a physical MacBook that somebody owns. Using the serial number won’t work and will likely get your Apple ID banned.



Now, you need to add an MLB to Rt Variables, all I have ever done is taken my serial number and added 5 hex digits to the end. You also need to add a unique ROM to the same section. I always use the MAC address of my wifi.



Once you have all of this set up and saved in your config.plist, reboot and enjoy!





VoodooI2C



The main project is located here - https://github.com/alexandred/VoodooI2C

Compiled from the master, you will only have single touch functionality.



From my repo you have two choices. Built-in gestures using CSGesture/VoodooI2C here - https://github.com/blankmac/VoodooI2C/tree/BuiltInGestures/VoodooI2C

Or if you purchased a recent version of UPDD which has the ability to create a virtual device, you can use the an early version of the rewrite (which is using GPIO interrupts - woohoo!) along with the Wacom specific client and HID device kext here -
https://github.com/blankmac/VoodooI2C-Rewrite
Here - https://github.com/blankmac/VoodooI2CHID/tree/Wacom-UPDD
And here - https://github.com/blankmac/VoodooI2C-client/tree/Wacom-Specific


Available Gestures



  • Two Finger Scrolling
  • Three Finger Swipes (These are stock and don’t need configuring)
    • Left – Control+LeftArrow – Mission Contrrol move one desktop left
    • Right – Control+RightArrow – MC move one desktop right
    • Up – Control+UpArrow – Show Mission Control
    • Down – Show Application Window
  • Four Finger Swipes (Some need setup)
    • Left – Command+Q Quit application
    • Down – Command+W Close Window (Or tab in a browser)
    • Right – F11 Show Desktop
    • Up – Control+F11 LaunchPad (must turn it on and set the shortcut in System Preferences)
  • Five Finger Swipes (Some need setup)
    • Left – Control+F9 Show notification center (must setup in System Preferences)
    • Down – Command+F11 Turn Dock hiding on/off (must setup in System Preferences)
    • Right – Command+Space Show Spotlight search
    • Up – Control+F10 In my system this launches an automator service which launches the keyboard viewer. (Also make sure to set ‘sticky keys’ in universal access. That will make Shift, ctrl, etc stick so you can do keyboard combinations) Open up the automator, select service, select ‘no input’ in ‘any application’, then set it to launch applescript and cut/paste the following in –


if application "KeyboardViewer" is running then

quit application "KeyboardViewer"

else

activate application "KeyboardViewer"

end if



I extrapolated the four and five finger gestures as the original project stops at three and was intended for a trackpad. The developer of the gesture engine (@coolstar on github) has said he may add additional ones. I’ll update if/when that happens.

**** - If you would like to try an early release of the VoodooI2C rewrite, download/install the kexts in the VoodooI2C-InterruptsBuiltInGest zip. You can leave the AppleI2C kexts intact and should load the VoodooI2C kexts from your Clover kext/Other folder. Source will be available after the rewrite is complete.
 

Attachments

  • Kexts-Sierra.zip
    3.4 MB · Views: 485
  • Patches-Sierra.zip
    8.8 KB · Views: 319
  • config.plist.zip
    3.4 KB · Views: 330
  • DSDT-SSDT-alreadypatched.zip
    77.2 KB · Views: 333
  • VoodooI2C.kext.zip
    71 KB · Views: 306
  • VoodooI2C-interruptsBuiltInGest.zip
    94.3 KB · Views: 292
Last edited:
Wow this excellent! Nice job. :)
 
Great guide, I actually wanted to get this tablet but last minute decided an HP spectre x360 skylake would be a better option for my needs. Nevertheless nice guide!
 
@jhax01 Thanks for the updated guide!
I just finished re-installing Sierra with using these patches/kexts. Everything seems to work well with 10.12.3. I guess there is no need to rename _DSM methods in SSDT-2 and 3 when patching?

I'm testing the latest VoodooI2C and so far so good. I have not closed all windows accidentally yet :)
Any way to adjust the double tap accuracy/speed? I think with the high resolution, it's pretty hard to double tap on the exact same spot to trigger the action.
 
@jhax01 Thanks for the updated guide!
I just finished re-installing Sierra with using these patches/kexts. Everything seems to work well with 10.12.3. I guess there is no need to rename _DSM methods in SSDT-2 and 3 when patching?

I'm testing the latest VoodooI2C and so far so good. I have not closed all windows accidentally yet :)
Any way to adjust the double tap accuracy/speed? I think with the high resolution, it's pretty hard to double tap on the exact same spot to trigger the action.

Actually, the DSM rename isn't needed for El Cap either. I originally did it that way out of reflex and decided later to see what was actually needed. (If it's not clear, you shouldn't apply it to any of the ACPI files, not just SSDT-2&3)

I don't think the double click problem is a speed issue, but probably the accuracy as you say. I've been considering what to do about it, but haven't come up with a solid plan just yet. For now, I either select the item and use the menu to open it, or use the long-press, right click function to handle it. Not ideal. It's not clear to me what changed in the HID stuff to cause this.
 
Actually, the DSM rename isn't needed for El Cap either. I originally did it that way out of reflex and decided later to see what was actually needed. (If it's not clear, you shouldn't apply it to any of the ACPI files, not just SSDT-2&3)

The need to remove or rename specific _DSM methods depends on which _DSM methods you're trying to add.
 
Have you tried installing Wacom drivers for OS X? My pen is working, but mostly as a mouse. I wonder if the Wacom driver would enable handwriting recognition.

http://www.wacom.com/en-at/support/product-support/drivers

Unlikely, those are meant for usb connected devices. What isn't working with pen? It functions as expected for me in OneNote, Photoshop, Clip Studio Paint Pro, etc. I haven't tried Ink at all so I guess that's what you're referring to?
 
I found small but serious issue on Sierra. When I swap 'ctrl' key and 'caps lock' key on System Preference, ctrl key behaves as if it's locked. (ie. ctrl-h works as delete as expected. And when ctrl is locked, you see led lit, just typing h works as delete! )
Thus I love to have ctrl key just between tab & shift, it's pretty serious problem for me. Is it VoodooPS2 thing?

(now I reverted to El Capitan)
 
Status
Not open for further replies.
Back
Top