balopez83 / Surface_Pro_4_and_Surface_Book_Hackintosh

This provides the ability to boot the Surface Pro 4 & Surface Book (gen1) to macOS as a hackintosh.
37 stars 2 forks source link

I installed macos14, but there is a problem with the live wallpaper on macos14 #17

Closed Sunburst0218 closed 8 months ago

Sunburst0218 commented 8 months ago

When displaying the dynamic wallpaper of the 14 system, half of it is green, and the color is not displayed properly.

balopez83 commented 8 months ago

@Sunburst0218 I'm still looking into this but believe this is a macOS compatibility issue. It's something to do with the video format and the graphics chipset.

I recommend changing to a standard wallpaper and turning off the show as screensaver tick box in the interim pending hopefully finding a resolution. Other video should display fine.

Other than that can you test touch for me? I am having extremely erratic movement when I activate touch and not sure what is causing it. It could just be my machine but trying to rule out a configuration issue.

billabongbruno commented 8 months ago

@Sunburst0218 I'm still looking into this but believe this is a macOS compatibility issue. It's something to do with the video format and the graphics chipset.

I recommend changing to a standard wallpaper and turning off the show as screensaver tick box in the interim pending hopefully finding a resolution. Other video should display fine.

Other than that can you test touch for me? I am having extremely erratic movement when I activate touch and not sure what is causing it. It could just be my machine but trying to rule out a configuration issue.

I don't think it's your hardware being faulty. I had similar issues until I disabled that new (and annoying) Sonoma feature (I don't remember the name of it) where if you click somewhere on the desktop, it'll just show Stage Manager or something like that. Sorry for the lack of information, I just saw this and I'm on my phone and wanted to shed some light on this ASAP, as I know how frustrating setting everything up can be.

My touch works perfectly now.

balopez83 commented 8 months ago

Ugh I wish that was the reason. I checked that and also installed Catalina just to be sure and it's still crazy. Windows works fine with touch.

I am worried that is because I replaced the screen with a SP5 screen due to the issues with the original SP4 screen. The screen works great now but wondering if the left or ipts software is having an issue with it

balopez83 commented 8 months ago

The green video thing is bugging me too. My SP3 works fine with no green video issue in Sonoma and it should be even less compatible since it needs OCLP to even get graphics working in Sonoma.

billabongbruno commented 8 months ago

Ugh I wish that was the reason. I checked that and also installed Catalina just to be sure and it's still crazy. Windows works fine with touch.

I am worried that is because I replaced the screen with a SP5 screen due to the issues with the original SP4 screen. The screen works great now but wondering if the left or ipts software is having an issue with it.

Oh, I see. Mine had the same "flickergate" issue, but I waa able o send it back to Microsoft on the last month of their recall period and they outright replaced it with a new (exact same model) SP4.

I mean, I could try and give you my EFI, since I have made just a few little changes to your 9.0.1 release and you could give it a shot, while also completely removing IPTSDaemon and installing it again, if you wish.

Note: I always run "sudo spctl --master-disable"

Let me know if you want me to upload it for you. (I'll just remove the SMBIOS info and set "showpicker" to "true", as well as change "timeout" from "0" to something else.

Sunburst0218 commented 8 months ago

I'm sorry that I haven't had time to read the information because I've been busy recently. I also had a problem with the flashing door on my surface pro4 and also replaced the screen on the pro5

billabongbruno commented 8 months ago

The green video thing is bugging me too. My SP3 works fine with no green video issue in Sonoma and it should be even less compatible since it needs OCLP to even get graphics working in Sonoma.

Yeah, that bothered me too, at first, but I immediately knew it was a Sonoma compability issue and just ignored it, seeing as I use a pure black background, which I like better and also helps with battery time, I suppose.

As for video outside that, I use VLC and I change the rende mode from whatever the default is to something else (can't remember now, but I think I set it to from Direct3D to OpenGL. Or the other way around, I'm not sure. Once I install it back, I'll let you know).

One thing that's bugging me, though, is Firefox not working on ANY Sonoma equipment I have (the SP4 and the other Acer NITRO 5 AN-515-52), seeing as that was my main browser in every OS I use. Sonoma did in fact break a ton of stuff, sadly. (Including dropping BCM94360NG support, which I purchased for my NITRO 5, to replace the Intel AC-9560. And now I have to use OCLP and root patches, which is kinda meh).

billabongbruno commented 8 months ago

Ugh I wish that was the reason. I checked that and also installed Catalina just to be sure and it's still crazy. Windows works fine with touch.

I am worried that is because I replaced the screen with a SP5 screen due to the issues with the original SP4 screen. The screen works great now but wondering if the left or ipts software is having an issue with it

Also, is a fresh install using Olarila's vanilla image completely out of the question, just to make sure it's not just Sonoma doing Sonoma things?

(That's how I did mine, rather than creating a macOS USB installer under macOS itself)

If you are unfamiliar with the process, it's pretty straightforward and I can help you out and even drop the .torrent file here for you, no need to register or anyhting.

Just download the .raw file (that the torrent points to), download BalenaEtcher, burn the .raw to a USB stick and then replace the EFI folder on the USB stick with the SP4 EFI and install away.

Let me know if you want to perform this "Hail Mary".

billabongbruno commented 8 months ago

Ugh I wish that was the reason. I checked that and also installed Catalina just to be sure and it's still crazy. Windows works fine with touch.

I am worried that is because I replaced the screen with a SP5 screen due to the issues with the original SP4 screen. The screen works great now but wondering if the left or ipts software is having an issue with it

If it's a IPTSDaemon mismatch, you could simply try to copy and rename the .sh files accordingly?

You say you have a SP5 screen, but run a SP4.

Assuming that IPTSDaemon runs the script and fetches the SP4a or SP4b script (depending on your processor), you could always delete those (while keeping a note of their names) and copy the SP5a and SP5b .sh files and renaming them accordingly.

Or the other way around, if the script is fetching the SP5 .sh files.

I'm just spitballing here.

Sunburst0218 commented 8 months ago

I am happy to help you, you can send me your EFI file to test it, I haven't installed the touch of the screen for a long time, the last installation was macos13, everything was normal at that time, I remember when I upgraded 14 in macos13, the touch was normal. I haven't tested it much since.

billabongbruno commented 8 months ago

Ugh I wish that was the reason. I checked that and also installed Catalina just to be sure and it's still crazy. Windows works fine with touch. I am worried that is because I replaced the screen with a SP5 screen due to the issues with the original SP4 screen. The screen works great now but wondering if the left or ipts software is having an issue with it

If it's a IPTSDaemon mismatch, you could simply try to copy and rename the .sh files accordingly?

You say you have a SP5 screen, but run a SP4.

Assuming that IPTSDaemon runs the script and fetches the SP4a or SP4b script (depending on your processor), you could always delete those (while keeping a note of their names) and copy the SP5a and SP5b .sh files and renaming them accordingly.

Or the other way around, if the script is fetching the SP5 .sh files.

I'm just spitballing here.

So basically, what I was saying here was as follows:

As I am unsure as to how the IPTSDaemon gets the information needed as to run the correct script (surface-book-1.conf; surface-book-2-13.conf; surface-book-2-15.conf; surface-laptop-1+2.conf; surface-pro-4-a.conf; surface-pro-4-b.conf; surface-pro-4-c.conf; surface-pro-5.conf; surface-pro-6.conf), it could be a matter of mismatched Vendor ID and Product ID, seeing as you replaced the original SP4 screen with a SP5 version of it. Perhaps the problem didn't manifest itself in earlier versions of macOS, but it does now, as Sonoma might have changed something and forces the script to acquire the information it needs through some other way, which leads to incorrect PID and VID.

That being said, the SP4 variants are as follows:

surface-pro-4-a.conf: [Device] Vendor = 0x1B96 Product = 0x006A

surface-pro-4-b.conf: [Device] Vendor = 0x1B96 Product = 0x0021

surface-pro-4-c.conf: [Device] Vendor = 0x1B96 Product = 0x0023

And the SP5 has only one script, which shows:

surface-pro-5.conf: [Device] Vendor = 0x1B96 Product = 0x001F

I have no idea if this helps at all, but hopefully at least reminds you of a workaround or fix, even if this information is completely useless.

balopez83 commented 8 months ago

@billabongbruno @Sunburst0218 Thank for all the info. There must be something up with the config since even Linux works fine and it used the same ipts drivers.

I'll keep working on the graphics issues and assume the touch is my issue alone since all other devices seem to be working fine

balopez83 commented 8 months ago

@billabongbruno @Sunburst0218 So this issue is due to the need to spoof the skylake graphics as kabylake. Unfortunately I have not been successful in using skylake graphics settings to boot without a kernel panic.

If you all want to try and see if you can make it work I would appreciate it though at this point I am not very optimistic.

The only thing I have not yet tried is to use legacy pre whatevergreen kexts which might work though might bring other new issues.

The issues here and in issue #18 are identical and are rooted in problems since Mojave though only started causing real problems in Ventura and more so in Sonoma.

billabongbruno commented 8 months ago

@billabongbruno @Sunburst0218 So this issue is due to the need to spoof the skylake graphics as kabylake. Unfortunately I have not been successful in using skylake graphics settings to boot without a kernel panic.

If you all want to try and see if you can make it work I would appreciate it though at this point I am not very optimistic.

The only thing I have not yet tried is to use legacy pre whatevergreen kexts which might work though might bring other new issues.

The issues here and in issue #18 are identical and are rooted in problems since Mojave though only started causing real problems in Ventura and more so in Sonoma.

Hey there.

So, upon reading your post I give it a try using multiple methods and I am at a point where the system is clearly booted, as I hear the system sounds when trying to hit ENTER and not inserting my password, but no image is displayed. I tried using the Backlight Registers Fix to see if it would take care of the issue, as I came across this on my other machine, but to no avail with the SP4. I also tried changing the SMBIOS to MacBookPro15,3 so that it would be CFL-compatible (I read somewhere that in order to spoof KBL with SKL you need a CFL SMBIOS for Sonoma), but didn't succeed.

I will keep trying and report back my findings.

balopez83 commented 8 months ago

@billabongbruno So about an hour or so after my last message I actually got it working.

It's a bit messed up at the moment but I believe I am on the right track. Currently I have to completely redesign the config as it will be otherwise incompatible with Ventura and Sonoma. I am now working on integrating OCLP patches and unfortunately I believe will now require OCLP to get accelerated graphics in Ventura and Sonoma.

In the end however this will resolve quite a few little issues despite the annoyance of having to use OCLP

billabongbruno commented 8 months ago

@billabongbruno So about an hour or so after my last message I actually got it working.

It's a bit messed up at the moment but I believe I am on the right track. Currently I have to completely redesign the config as it will be otherwise incompatible with Ventura and Sonoma. I am now working on integrating OCLP patches and unfortunately I believe will now require OCLP to get accelerated graphics in Ventura and Sonoma.

In the end however this will resolve quite a few little issues despite the annoyance of having to use OCLP

Hey there. I see. Great news, then. I just kept experimenting, but to no avail. Glad to know you got it booting.

All things considered, OCLP isn't that bad and I, for one, am already used to it, as on my other machine I need it for BCM94360NG Wifi "native" support under Sonoma.

Sacrifices must be made, I guess.

Besides, it's "one-time thing" (run at every update, obviously), so it shouldn't really become an issue, as we'll probably just tinker with it upon installation / updates, which doesn't occur all that often.

Thank you again for your work.

Let me know if I can help in any way.

balopez83 commented 8 months ago

@billabongbruno can you tell me what settings you got to get Sonoma to boot to black screen?

You may have been further than I in getting this to work.

Black screen means that you had too little stolenmen allocated for the HD display.

billabongbruno commented 8 months ago

@billabongbruno can you tell me what settings you got to get Sonoma to boot to black screen?

You may have been further than I in getting this to work.

Black screen means that you had too little stolenmen allocated for the HD display.

Hey there.

Sure, no worries.

This is as far as I've gotten:

                <key>boot-args</key>
                <string>lilucpu=9 -wegnoegpu -wegbeta -lilubetaall -igfxfw=2 igfxrpsc=1 -igfxsklaskbl igfxonln=1 -igfxblr -igfxbls -no_compat_check</string>
        <dict>
            <key>PciRoot(0x0)/Pci(0x1f,0x3)</key>
            <dict>
                <key>AAPL,slot-name</key>
                <string>Internal@0,31,3</string>
                <key>device_type</key>
                <string>Audio device</string>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>layout-id</key>
                <data>AwAAAA==</data>
                <key>model</key>
                <string>Sunrise Point-LP HD Audio</string>
            </dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>#INFO</key>
                <string>All Surface Books &amp; i3, i5 Surface Pro 4</string>
                <key>AAPL,ig-platform-id</key>
                <data>CQAWWQ==</data>
                <key>AAPL,slot-name</key>
                <string>Internal@0,2,0</string>
                <key>device-id</key>
                <data>FlkAAA==</data>
                <key>device_type</key>
                <string>VGA compatible controller</string>
                <key>enable-hdmi20</key>
                <data>AQAAAA==</data>
                <key>framebuffer-con1-enable</key>
                <data>AQAAAA==</data>
                <key>framebuffer-con1-type</key>
                <data>AAgAAA==</data>
                <key>framebuffer-fbmem</key>
                <data>AACQAA==</data>
                <key>framebuffer-patch-enable</key>
                <data>AQAAAA==</data>
                <key>framebuffer-stolenmem</key>
                <data>AAAwAQ==</data>
                <key>framebuffer-unifiedmem</key>
                <data>AAAAgA==</data>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>model</key>
                <string>Intel HD Graphics 620</string>
            </dict>

I am also attaching the config.plist file I am using (in .zip format) so that you may cross-reference it to any other changes I may have made based off of your 9.0.1 release. However, my build is slightly different than yours, as I changed the OC build, as well as some of the kexts (and also adding Ethernet kexts, for full support of my adapters).

That being said, below I am leaving a list of all things I know differ from your build.

NOTES: 1 - As stated, I am using your 9.0.1 release as a base for config.plist configuration, as well as .aml files; 2 - I am using OpenCore 0.9.6 NO_ACPI_Build (a2e1551) from here; 3 - I am using the latest kexts from Dortania Build from here; 4 - I left the SMBIOS info in there on purpose, as it is part of the test run - don't worry, feel free to use it, it's a throwaway that is not registered and was generated for this issue alone; 5 - I am using a SP4 i5 with 8Gb / 256Gb; 6 - I am NOT using SecureBoot at all nor intend to.

billabongbruno commented 8 months ago

billabongbruno_901_Sonoma_V1.zip

And here is the config.plist

EDIT: I can provide the full EFI folder, if it makes any difference.

billabongbruno commented 8 months ago

ack screen means that you had too little stolenmen allocated for the HD display.

This may or not be relevant, but the screen was "black", but it did have brightness. Only graphics weren't showing, but backlight was indeed working.

balopez83 commented 8 months ago

@billabongbruno So it looks like you're still using a kabylake platform id.

In order to get yours to boot with graphics running you just need to change the 3001 in your stolenmem to A001

I was able to fix the video issue in Monterey and lower but it's still broken in Ventura and Sonoma.

I may send some configs for you to try but for now I am still at a bit of a loss

balopez83 commented 8 months ago

@billabongbruno @Sunburst0218 I have resolved this issue and have things working in Sonoma. I am testing and ensuring everything is working on both the SP4 and the SB and that nothing is broken and hope to have a new release at some point today.

This new release will have a lot of changes but thankfully I was able to retain many key items of the previous 9.x.x releases meaning that the SMBIOS won't change as I previously expected, OCLP won't be required, and iMessage and serial information won't need to be reset. This next release will require an NVRAM reset through the OpenCore "Reset NVRAM" option which can be accessed by hitting the spacebar at the boot selection screen.

Sunburst0218 commented 8 months ago

Thanks to the author for finally solving this problem, I will be ready to install MACOS14 any time.

balopez83 commented 8 months ago

@billabongbruno @Sunburst0218 This issue has now been resolved with Release 10.0.0.

The previously mentioned issue where the green split might be there at first boot has also been resolved. Make sure that NVRAM is reset on first boot with the new EFI or you may still have issues.

If issues persist after using the new EFI and resetting NVRAM unfortunately you may need to reinstall macOS. I had that issue occur on one device requiring a reinstall, but it might have been a fluke.

balopez83 commented 8 months ago

@billabongbruno you mentioned that you added kexts to support your ethernet adapters? When looking at your EFI I didnt see any in there to add support. What kexts do you typically add to add support for your adapters? I can integrate them in future releases in the event it helps others going forward. The one I use is natively supported so never thought to add additional support though it would make sense to go ahead and do that.

billabongbruno commented 8 months ago

@billabongbruno @Sunburst0218 This issue has now been resolved with Release 10.0.0.

The previously mentioned issue where the green split might be there at first boot has also been resolved. Make sure that NVRAM is reset on first boot with the new EFI or you may still have issues.

If issues persist after using the new EFI and resetting NVRAM unfortunately you may need to reinstall macOS. I had that issue occur on one device requiring a reinstall, but it might have been a fluke.

Hey there,

So, first of all, I just got around to seeing these notifications, as well as the 10.0.0 release. I want to thank you for all your hard work in this matter.

Nothing short of brilliant.

Thank you.

billabongbruno commented 8 months ago

@billabongbruno you mentioned that you added kexts to support your ethernet adapters? When looking at your EFI I didnt see any in there to add support. What kexts do you typically add to add support for your adapters? I can integrate them in future releases in the event it helps others going forward. The one I use is natively supported so never thought to add additional support though it would make sense to go ahead and do that. Adapter

So, regarding this:

I have the adapter shown above and it has an Ethernet port. I mainly use this for macOS installation only (while I can't get Wifi up and running), so that my clean installs are always made with Internet access. It does provide some nice features, such as turning DP into HDMI (great for PowerPoint presentations, as most projectors are HDMI / VGA only and DP to HDMI cables are not very popular), but since it's a little too bulky, it doesn't really fit everyday use.

However, back in BigSur, I could only get the Ethernet part to work after a VEEEEEEEEEEEERY long search online (this is a Chinese device bought on AliExpress for around €20 and it's quite UNdocumented). However, I found the kexts that added support for this device and I believe they were included in the config.plist I sent you, but I may have removed them for debugging purposes (I don't remember anymore).

Ever since BigSur, I never again tried to NOT use these kexts, so I am unsure as to whether they are still needed or not, seeing as I have not removed them and the adapter has just continued to work perfectly.

Regardless, the kext entries are as follows:


            <dict>
                <key>Arch</key>
                <string>Any</string>
                <key>BundlePath</key>
                <string>AppleRTL815XEthernet110.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/AppleRTL815XEthernet110</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>
            <dict>
                <key>Arch</key>
                <string>Any</string>
                <key>BundlePath</key>
                <string>AppleRTL815XComposite109.kext</string>
                <key>Comment</key>
                <string></string>
                <key>Enabled</key>
                <true/>
                <key>ExecutablePath</key>
                <string>Contents/MacOS/AppleRTL815XComposite109</string>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>PlistPath</key>
                <string>Contents/Info.plist</string>
            </dict>

Hopefully this is useful.