Contribute
Register

HP Spectre X360 (15" 2017) - I2C Touchscreen and Pen Working in OSX

Status
Not open for further replies.
Makes sense to me. Could you please look at the kext I uploaded and tell me why that one gives basic functionality and yours doesn't? I'm just curious. Thanks

Not possible to determine from a pre-built kext.
Where did you get it from?
Where is the source code?
 
Not possible to determine from a pre-built kext.
Where did you get it from?
Where is the source code?
Not possible to determine from a pre-built kext.
Where did you get it from?
Where is the source code?
Sadly I don't. I believe it is fork of Emily Dinesh's work, but I don't think he ever released the source.
Thanks for your time and all you have done for the community.
 
Sadly I don't. I believe it is fork of Emily Dinesh's work, but I don't think he ever released the source.
Thanks for your time and all you have done for the community.

The kext you attached has no trackpad driver in it. It is just a mouse/keyboard kext.
It is not my work (although it is based on my kext), therefore not something I can support.
Looks to me like someone may have just ripped the VoodooPS2Trackpad.kext out of the plugins directory, then changed some stuff in the Info.plist.
 
When I first started testing VoodooI2C V2.0.1 I did make some DSDT edits as outlined in the VoodooI2C WiKi & documentation, however after testing and consulting with Alex it became apparent that in the case of the 2017 15" Spectre X360 no DSDT edits are necessary as long as OSI is spoofing OSX (Darwin) as Windows 10 .... this will almost certainly not be the case for other laptop types and brands so be prepared for some minimal DSDT editing.

Additionally the CRS Method for the I2C HID Device should always Return (ConcatenateResTemplate (SBFB, SBFG)). In my case the CRS method has a number of conditional returns but it seems to work ok as is due to OSI spoofing Darwin as Windows 10), however i could ensure that it always returns the correct values by modifying the CRS Method to :-

Hey @jaymonkey, I have the same laptop as yours. I see that all the ids/DSDT code are matching with the images that you have on the first post. For me, touch screen did not work OOB with only kext installation.

For the _CRS method, the OSYS condition is fine with Windows 10 DSDT patch. But for me, SDM1 value is set as 8. So, I think it is failing at that condition. Did you had to make any change in _CRS method in your DSDT?

Code:
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (LLess (OSYS, 0x07DC))
                {
                    Return (SBFI)
                }

                If (LEqual (SDM1, Zero))
                {
                    Return (ConcatenateResTemplate (SBFB, SBFG))
                }

                Return (ConcatenateResTemplate (SBFB, SBFI))
            }
 
Hey @jaymonkey, I have the same laptop as yours. I see that all the ids/DSDT code are matching with the images that you have on the first post. For me, touch screen did not work OOB with only kext installation.

For the _CRS method, the OSYS condition is fine with Windows 10 DSDT patch. But for me, SDM1 value is set as 8. So, I think it is failing at that condition. Did you had to make any change in _CRS method in your DSDT?

Code:
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (LLess (OSYS, 0x07DC))
                {
                    Return (SBFI)
                }

                If (LEqual (SDM1, Zero))
                {
                    Return (ConcatenateResTemplate (SBFB, SBFG))
                }

                Return (ConcatenateResTemplate (SBFB, SBFI))
            }
Hi johnyg07,

If you have any doubt about what the CRS method is returning under OSX then (as i wrote in the 1st post) remove all the conditional returns and replace with just the return that you need :-
Code:
Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                 Return (ConcatenateResTemplate (SBFB, SBFG))
            }

I tried the above and it works fine ..

Good Luck
Jay
 
I just made my touchscreen/trackpad working. Here are my tips for those who are still struggling. They may not be helpful/correct for everyone, but at least for my case.

Computer model: HP Spectre X360 13t-ac000, Kaby Lake.
I2C Controller: pci8086 9d60, ELAN 0732

Steps:
1. Apply DSDT (partial hot) patch to Spoof OSX to Windows 2015
2. Exactly follow the GPIO pinning guide
3. Apply DSDT patch to enable GPIO controller

So far everything is mentioned in the installation guide. https://voodooi2c.github.io/#Installation/Installation.

Something different:
1. remove AppleIntelLpssI2CController.kext, AppleIntelLpssI2C.kext, AppleHPM.kext from S/L/E.
2. Put VoodooI2C.kext, VoodooI2CHID.kext in S/L/E, rather than Clover/kexts/Other, rebuild your cache. Otherwise, the I2C kexts would not be loaded, and occasionally can be loaded but get SSCN, FMCN not implemented error in the kernel log. Follow https://voodooi2c.github.io/#Common Errors/Common Errors to check the kernel log.

Finally, there are VoodooPS2Controller.kext (enable keyboard/trackpad), VoodooI2C, VoodooI2CHID in my S/L/E, and none of them in Clover.

This is my first post in the forum, and give my credit to Alexandre Daoud for his awesome and magic work to make this happen!
 
Finally, there are VoodooPS2Controller.kext (enable keyboard/trackpad), VoodooI2C, VoodooI2CHID in my S/L/E, and none of them in Clover.

As per FAQ, kexts should be installed to /L/E (on 10.11 and later), not /S/L/E.
 
Got it. So at least I should put VoodooPS2 back in Clover.
 
Status
Not open for further replies.
Back
Top