Contribute
Register

[Guide] High Sierra on HP Spectre x360 8th Gen Coffee Lake

Status
Not open for further replies.
Just been through my notes and i found the following :-

If FakeSMC is in /L/E then it stops Clovers Injected Kexts from loading.

The reason to put the VoodooIC2 in /Clover/Kexts/Other is to get them to load first and attach to the I2C devices before MacOS has a chance.

The work around if you want FakeSMC in /L/E is to also put the VoodooIC2 Kexts in /L/E and apply the two patches written by coolstar that stops MacOS from attaching Apple's own I2C kexts to the I2C devices.

Code:
            <dict>
                <key>Comment</key>
                <string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
                <key>Name</key>
                <string>com.apple.driver.AppleIntelLpssI2C</string>
                <key>Find</key>
                <data>SU9LaXQ=</data>
                <key>Replace</key>
                <data>SU9LaXM=</data>
                <key>InfoPlistPatch</key>
                <true/>
            </dict>
            <dict>
                <key>Comment</key>
                <string>Prevent Apple I2C kexts from attaching to I2C controllers, credit CoolStar</string>
                <key>Name</key>
                <string>com.apple.driver.AppleIntelLpssI2CController</string>
                <key>Find</key>
                <data>SU9LaXQ=</data>
                <key>Replace</key>
                <data>SU9LaXM=</data>
                <key>InfoPlistPatch</key>
                <true/>
            </dict>

I never bothered switching back to this method as all was working well for me but if you want everything in /L/E thats the solution.

Cheers
Jay

Edit: Looks like ReHabMan was answering my last post as i was writing this one so please see his post above for the reason why having FakeSMC in /L/E stops Clovers injected Kext's ...
 
Last edited:
I just tried switching back to the above method and it works fine with Voodoo I2C 2.0.3 ..... so both methods work ok.
Probably best to go with ReHabMans advice and put FakeSMC and VoodooI2C kexts in /L/E so they are cached.

I was running with the above method for a long time but went back to the injected method during some mammoth debug session a few months back must have forgot and just left it as it was.

Everyday a School day...:)
Cheers
Jay
 
Last edited:
I just tried switching back to the above method and it works fine with Voodoo I2C 2.0.3 ..... so both methods work ok.
Probably best to go with ReHabMans advice and put FakeSMC and VoodooI2C kexts in /L/E so they are cached.

I was running with the above method for a long time but went back to the injected method during some mammoth debug session a few months back must have forgot and just left it as it was.

Everyday a School day...:)
Cheers
Jay

Hey, everyone learns in this process. :) I didn't get the chance to add these patches until now, but working without issues. Dunno how closely @ctxdl is watching this thread these days but he should really add touchscreen to this guide, especially considering enabling the touch screen is relatively easy on the x360 compared to similar touchscreen-enabled devices.
 
Hello All,

Let me preface with I have never attempted something like this before but I have read the guides here multiple times before beginning the process.

I have created the Clover USB installer, installed High Sierra on an external SSD (I would prefer this type of setup, however, if it becomes detrimental to the project I will reconsider), installed Clover to the SSD, created SSDT-DiscreteSpoof.aml, and enabled the_DSM->XDSM patch in my config.plist. At this point, I am able to boot to the desktop from the SSD without issue.

However, when I install the OP suggested kext files to LE, reload the cache, and reboot I get the errors you see in the screenshot.

Is this because I haven't addressed the Patch the DSDT SSDT section yet prior to rebooting? Is there something else that I have missed? Both, maybe?

Thank you in advance!
 

Attachments

  • IMG_20180724_145555.jpg
    IMG_20180724_145555.jpg
    5 MB · Views: 119
  • EFI.zip
    4.5 MB · Views: 89
Last edited:
UPDATE:

I patched my DSDT and here is the appropriate screenshot/EFI package. Looks like I cleaned up the ACPI errors but still halts on a similar section.
 

Attachments

  • IMG_20180724_160027.jpg
    IMG_20180724_160027.jpg
    5.3 MB · Views: 110
  • EFI.zip
    4.6 MB · Views: 85
UPDATE:

I patched my DSDT and here is the appropriate screenshot/EFI package. Looks like I cleaned up the ACPI errors but still halts on a similar section.

The gIOScreenLockState 3 error is one I ran into when I was installing on my machine. It's related to the discrete GPU, which must be disabled. I believe there's a setting in the Graphics Injector menu on Clover that allows you to turn on a setting for purposes of testing, though I don't have that in front of me so I'll need a second to confirm what it is.

EDIT: The setting you need to tap at boot is "Inject Intel" in graphics injector. See screenshot below. You'll have to double-check your plist settings once you get in though.

You may also want to look at this guide if you haven't already: https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/
 

Attachments

  • IMG_3743.jpg
    IMG_3743.jpg
    1.8 MB · Views: 96
Last edited:
The gIOScreenLockState 3 error is one I ran into when I was installing on my machine. It's related to the discrete GPU, which must be disabled. I believe there's a setting in the Graphics Injector menu on Clover that allows you to turn on a setting for purposes of testing, though I don't have that in front of me so I'll need a second to confirm what it is.

EDIT: The setting you need to tap at boot is "Inject Intel" in graphics injector. See screenshot below. You'll have to double-check your plist settings once you get in though.

You may also want to look at this guide if you haven't already: https://www.tonymacx86.com/threads/guide-disabling-discrete-graphics-in-dual-gpu-laptops.163772/

Thanks to you I am able to get back into the system.

For me, that setting was already checked. I unchecked it and was able to boot although the display had lines at boot and I was seeing artifacts while using terminal. So as you said this is suitable for testing.

A few followup questions:

Once I complete the guide to disable the GPU should I no longer have the gIOScreenLockState 3 error? If so, should the "Inject Intel" be checked or unchecked?

You mentioned checking my plist settings... the only changes I have made to my config.plist so far was enabling the _DSM->XDSM patch. Did I skip something?

The OP mentions disabling the following code:

Code:
<key>Comment</key>
  <string>0x19160000/etc, 32MB BIOS, 19MB framebuffer 9MB cursor bytes (credit RehabMan)</string>)
  <key>Enabled</key>

I did not do this as the section in the plist I downloaded had a different hex value and was already disabled.
 
Last edited:
Thanks to you I am able to get back into the system.

For me, that setting was already checked. I unchecked it and was able to boot although the display had lines at boot and I was seeing artifacts while using terminal. So as you said this is suitable for testing.

A few followup questions:

Once I complete the guide to disable the GPU should I no longer have the gIOScreenLockState 3 error? If so, should the "Inject Intel" be checked or unchecked?

You mentioned checking my plist settings... the only changes I have made to my config.plist so far was enabling the _DSM->XDSM patch. Did I skip something?

The OP mentions disabling the following code:

Code:
<key>Comment</key>
  <string>0x19160000/etc, 32MB BIOS, 19MB framebuffer 9MB cursor bytes (credit RehabMan)</string>)
  <key>Enabled</key>

I did not do this as the section in the plist I downloaded had a different hex value and was already disabled.

OK, just gave myself a refresh on this, since it's been a couple of months since I made the fix. Head here:

https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/

Follow the part titled "DVMT-prealloc on Broadwell/Skylake/Kaby Lake." Basically, you'll make a code change to your config.plist that adds a fake ig-platform-id into the system (0x12345678, keep the original code around, you'll be changing it back). Looking at your code, it currently says this:

Code:
<key>ig-platform-id</key>
<string>0x591b0000</string>

You'll change the section to this for this single boot as you clear the kext cache:

Code:
<key>ig-platform-id</key>
<string>0x12345678</string>

From there, you'll go into the terminal on OSX, clear the system cache per the instructions laid out by RehabMan, re-add the code, and you'll then go back and restart.

The reason your screen is flickering is because the amount of video RAM the machine is able to access right now is very limited. If you go to your "About This Mac" screen while you're in the system, you'll see the Graphics say something like "Intel UHD Graphics 620 32 MB", which is obviously not a lot of video RAM.

Anyway, try it out and see where it gets you. After you make this fix you should be able to get on the machine without having to hit that box on the clover boot screen.
 
Ok so I am embarrassed to say the following code in my plist was , in fact, not disabled:

Code:
<key>Comment</key>
  <string>0x19160000/etc, 32MB BIOS, 19MB framebuffer 9MB cursor bytes (credit RehabMan)</string>)
  <key>Enabled</key>

Beyond the fact my hex was different I was also viewing it in the top section of PlistEdit Pro and saw the word Disabled and because this was my first time working with this software, and plists in general, did not notice it was set to No. I just saw Disabled and went with it. I have set it to Yes and all works well.

Now I am at the point I am trying to get my sound device recognized. I did as the original post suggests and went with AppleHDA Patcher. I created my aDummyHDA.kext and installed to SLE, installed CodecCommander.kext to LE, added the 2 KextsToPatch entries that were given to me in the AppleHDA Patcher generated plist to my plist, and changed the following to 3 as suggested by the OP (although the generated plist suggests 2):

Code:
<dict>
        <key>Audio</key>
        <dict>
            <key>Inject</key>
            <string>2</string>
        </dict>

However, I do not see my device in System Preferences/Sound.

I'm reading your comments and it looks like you went with AppleALC. Was that your ultimate solution? Anything I should look out for if I use AppleALC?
 

Attachments

  • config-from-AppleHDA-Patcher.plist
    1 KB · Views: 159
  • config.plist
    12.9 KB · Views: 171
I prefer working with a text editor for config.plist, though I think some will say Xcode is the way to go. Glad you're making progress, though.

I did find AppleALC to be a bit of a better bet for my own uses, though I'll say that I run into two things with the sound somewhat commonly: One, the mic doesn't work on the headphone jack (I ended up buying an external Sound Blaster DAC, which outputs at a better quality than the headphone jack on the device itself, to get around this), and two, the speakers have a tendency, particularly after being put to sleep, of sounding very crackly when being used. (I think this is a side effect of the unusual four-speaker setup on the laptop.) This often requires a reboot, and sometimes a cache clear, to fix.

This has been the case for both AppleALC and patching AppleHDA. I tried both and found AppleALC a more stable solution, though YMMV.

In terms of the injection you mention above, make sure you take a look at the list of supported codecs: https://github.com/acidanthera/AppleALC/wiki/Supported-codecs

The x360 uses a Realtek ALC295, which offers three potential "layouts" that can be changed in the section of config.plist you mention: 3, 13, and 28. Try all three and see what works better for you.
 
Status
Not open for further replies.
Back
Top