-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix for Hibernation (hibernatemode 25) on IceLake Surface devices #127
Comments
So I fixed the dead trackpad on wake from hibernate on the The issue was actually an issue in VoodooI2CHID which was fixed by VoodooI2C/VoodooI2CHID@89fa5b6 Now the interesting thing is that the latest
I also built the older I would be glad if a few Edit: both kexts updated with the VoodooInput.kext v1.1.5 for macOS Sequoia Beta 5 compatibility: |
@jlempen Amazing work! Will let you know after testing it out on SL3. |
Doing god's work for our devices, thanks a lot man. @jlempen btw ReservedMemory is in UEFI, not NVRAM as per your guide. I tried your kext v6.5, I had to update the VooodoInput.kext with the new patch for Sequoia, and the trackpad and keyboard does not work after a hibernate cycle. |
Corrected, thanks!
Thanks for the information. I'll have a look at it later on, once Sequoia goes out of Beta and once I've fixed the trackpad issues on SL3 and SB3 running Ventura and Sonoma. But it's already good to know that hibernation seems to work on your device running Sequoia Beta! BTW, is your Surface a Laptop 3 or a Book 3? |
Surface Laptop 13" i5-1035G7. |
@jlempen Just tried your method on my SL3 i7 machine with firmware 6.2 and Ventura. It works perfectly! One thing I'm not so sure about is the instant wake-up. For me, I still have to wait a few seconds before it wakes up. And when waking from sleep, I see the Microsoft logo. I'm not sure if that's normal, although I have included GPRW. I'm curious about your experience with SL3. Here is my EFI. Another minor issue I'm experiencing is that the machine sometimes overheats, which never happened on my i5 SL3. I'm wondering if @jlempen @ROCKERLIQUID can control the fan speed or change the power plan. Overall, kudos to @jlempen for the great work! |
Hibernate is not like sleep: when your device goes into hibernate mode, it saves the content of the RAM to a file on the SSD and turns off completely. That's why you have to press the power button to wake it up. Then it goes through the normal startup sequence (MS logo with red padlock), then OpenCore silently launches macOS which reloads the content of the RAM from the hibernation file on the SSD. This all takes around 10 seconds. I'm afraid we will probably never going to fix normal sleep with instant wakeup for Surface devices, as Micro$oft does not support ACPI S3 sleep anymore. So you can either enable
I have both an i5 13" SL3 and an i7 15" SL3 and have no overheating issues on neither device, but it would be worth investigating if changing the SMBIOS from You could also make your own BTW, when the Surface devices are charging, they heat up quite a lot and thus the fan is almost always spinning. I don't know if there's a way to control the fan, I'll have to investigate this as well 😀 |
@jc-bao |
@jlempen, thank you so much for the information! I think hibernate is enough to make the machine usable for daily task. I think |
I live in South Asia where the climate is almost always hot, and my Surface always throttles in Windows and in MacOS, the dreaded 0.4ghz lock when BD-PROCHOT gets triggered even under light load. Solution was to download a BD-PROCHOT disabling EFI driver and it works beautifully ever after. Ofcourse, battery life gets a huge hit which was never good on MacOS anyways. And don't worry the laptop still shuts down if it gets too hot, but I have never experienced it as MacOS knows how to handle these CPUs well. |
I see. 😂 Seems it is a common issue for surface. Thanks a lot for the solution! |
I have tried this with my SL3 i7, and have tried to follow all steps, but when returning from hibernation the screen "glitches", pixelated and in inverted colors, and then turn off. I have tried a lot of configurations to be able to output image through the USB-C port (to a dock connected with DisplayPort) so I am looking in that direction as I have a lot of various WhateverGreen entries. As @jc-bao have shared EFI, I am currently matching my own configuration with this. But one question before I do a deep dive into my own EFI - does display output work on your machines? I have downgraded the SL3 firmware and am currently running the BigSurface62 kext. |
I updated OC and all kexts a few moments ago and run into the same issue now, no keyboard and trackpad on wake from hibernate. So it's not related to Sequoia or the new VoodooInput.kext (as I haven't updated mine yet), but rather to some other kext updated recently, perhaps Lilu or WhateverGreen, I'll have to investigate, as Acidanthera updated a whole bunch of kexts two days ago. I've encountered this issue on an i5 SL3 13" running Ventura and my test version of BigSurface 6.5 |
Is this happening on the internal display of your SL3? The pixelated and inverted colors can happen sometimes on wake from hibernate, but usually it's simply black until the lock screen appears. Is the device really turning off, or is the screen just black? You can easily test this by enabling "Play feedback when volume is changed" and hitting the volume keys when the display turned off. Does the Perhaps there's something wrong with your ReservedMemory patch under
If that's not it, I would suggest clearing and cleaning your NVRAM and restoring the sleepimage file: Enable hibernatemode 25 in macOSOpen the
If for whatever reason Hibernate is still not working on your system, you should reset the
Once you are back in macOS, disable Sleep and enable Hibernate again, then reboot:
Once you get hibernation working, please update to my test version of BigSurface v6.2 which fixes the dead trackpad on wake from hibernate: |
@tashda My built-in display works well after wake up. But there are two remaining issues: 1. when i connect to external display with type-c, i have to close the lid and reopen it to make built-in screen work, otherwise i can only see the external display. 2. i also have a surface dock but the mini-dp doesn't work. I am curious if you have done any specific configuration for that? I think people have reported that mini-dp on surface dock does not work, wondering what's your work around. btw, i have updated my efi to support sonoma. could you try the latest one and see if you can make it work? |
I can confirm this just happened to me. I find close the lid and reopen it could work. But it does not happen every time. So weird. Never have this issue with old whatevergreen and ventura. |
I am running Sonoma 14.6. I am looking at your EFI for inspiration - copying EFI from others is the worst gift you can get yourself :) I am currently running @jlempen 6.2 BigSurface kext, with downgraded firmware, and have the correct ReservedMemory patch. The biggest problems I am experiencing right now
As I am no expert in these types of things, I am currently trying to at least make the pc work again after lid has been closed and opened again - I suspect WhateverGreen to be the cause of this, but when I tried to remove dpcd-max-link-rate from my config.plist (data 14000000), it panicked when booting, so I am still looking. |
To me, the best choice would be running Ventura which is way more stable. |
1 doesn't for me on Sequoia but weirdly I remember those on Sonoma. |
Gotcha! When I do this, it works. Can connect display through USB-C immediately after hibernation, but when I do the "double dip" of the lid it works on internal display as well. Working here as well now :) |
@tashda @jc-bao @ROCKERLIQUID Then, probably tomorrow, I'll send you guys my EFI which doesn't give me any trouble with kernel panics on start (yet). Right now, Ventura is working nicely but with a choppy trackpad, working hibernation and broken keyboard/trackpad on wake from hibernate. I'm almost sure that the broken things are due to the fact that I didn't downgrade the UEFI firmware on this machine yet. I'm really starting to think that the only reliable way to have the SL3 and SB3 working perfectly is by downgrading the UEFI to the last known good version as explained in my thread here. I remember that I had a few kernel panics on reboot every time I would change something to my EFI folder, but usually the panic would go away after a second reboot. |
Please try one of my updated The updated versions include the If your trackpad and keyboard don't work after a hibernate cycle, it's either because you tried one of my older test build which included the older |
So this week-end I set up a BigSurface v6.2 for SL3 and SB3.zip BigSurface v6.5 for SL3 and SB3.zip Here's my conclusions:
In a nutshell, downgrade the UEFI firmware to The latest Beta 5 of macOS Sequoia works quite well, but you'll have to use itlwm.kext v2.3 and the HeliPort v1.5 app to get Wifi working. I'm still trying to fix the choppy trackpad on boot with For some odd reason, the only way to install macOS on the |
Hi guys, first I would like to thank all of you for your continuous passion in hackintosh for Surface! @jc-bao @ROCKERLIQUID @tashda, and especially @jlempen. It's true that I am unfortunately not in procession of Surface Pro 7 for almost a year :( However, as now I managed to once again get my hands on my old surface device back home, I will first take a look at all issues and your conversations above to get myself updated. Then I will see what I can do. |
Also, would you mind if I invite you as the collaborator of this repo? @jlempen So that you can directly contribute to this project for Surface Laptop devices! |
Hey @Xiashangning, very glad you're back! I hope you are well!
Thank YOU for your tremendous work on the
Please do, I'd be very happy to contribute to your repo. I'm by no means a programmer like you, and In a nutshell, here's what's been improved since the release of
As macOS Sequoia could very well be the last version of macOS running on Intel machines, my aim is to provide a version of Right now,
Moreover, I just discovered that the skipping/lagging trackpad issue on the My ultimate goal would be to find which piece of code in Anyway, welcome back @Xiashangning and thanks for all your help and great work! |
@jc-bao Did you have a look at the panic log which could give you some hints on what's causing the panic? When you reboot after the kernel panic, macOS will ask you if you want to create and send a panic log to Apple. By clicking on But I would suspect either an unsupported SSD (perhaps you have a Samsung SSD) or something wrong with your iGFX settings. Please have a look at my config.plist for the 15-Inch i7 Surface Laptop 3: |
I have a Surface laptop go, sleep works well with AOAC patch, also by adding the boot-arg igfxfw=2; but another issue is the display output, when plugging the cable, the pc just reboot |
This thread has nothing to do with the
BigSurface
kext per se, but I post it here nevertheless as it might be of interest to anyone using an IceLake Surface device.Source: Surface-IceLake-macOS-Hibernation-Fix
Surface-IceLake-macOS-Hibernation-Fix
After many hours of tinkering, I finally found a way to fix ACPI S4 Hibernation (
hibernatemode 25
) on the i5 Surface Pro 7 on macOS 13.6.7 Ventura, 15-Inch i7 Surface Laptop 3 on macOS 14.5 Sonoma, i5 Surface Laptop Go 1 on macOS 13.6.7 Ventura and on the Surface Book 3 as well. ACPI S3 Sleep (hibernatemode 0
) is still broken, though, but perhaps the Hibernation fix will lead the way to a full S3 Sleep fix at some point in the future.The key to the fix is to enable ACPI S3 Sleep in the DSDT. This is actually very easy and I'm stunned nobody tried this before. Searching for
_S3
in theDSDT.aml
file leads us to this:So to enable
_S3
,SS3
needs to returnOne
. Now searching forSS3
leads us to this:Enable ACPI S3 Sleep
Change
Name (SS3, Zero)
toName (SS3, One)
to enable ACPI S3 Sleep with the following ACPI patch inACPI -> Patch
:Before the rename, the system log shows:
After the rename, the system log shows:
and commands such as
pmset -g log
orpmset -g log | grep -e "Sleep.*due to" -e "Wake.*due to"
now clearly show that the device is entering sleep and (eventually) waking up from sleep.Add Reserved Memory region
This fix was found in Tyler Nguyen's x1c6-hackintosh repo. Thank you @benbender @1Revenger1 @savvamitrofanov and @vit9696!
Get rid of the black screen on Wake with the following Reserved Memory region in
UEFI -> ReservedMemory
:Enable DiscardHibernateMap
This doesn't seem to be required on every Surface device, but at least on the Surface Laptop 3, it fixes a kernel panic on Wake.
Enable the following Booter Quirk in
Booter -> Quirks
:Set HibernateMode to NVRAM
In
Misc -> Boot
, setHibernateMode
toNVRAM
:I would also recommend enabling
HibernateSkipsPicker
inMisc -> Boot
:Add the GPRW instant wake patch
At least on the Surface Pro 7 and the Surface Laptop Go 1, the GPRW instant wake patch is required as well.
Add SSDT-GPRW.aml to the ACPI folder of your EFI. Then add
SSDT-GPRW.aml
toACPI -> Add
and the following ACPI patch toACPI -> Patch
in theconfig.plist
file:Enable hibernatemode 25 in macOS
Open the
Terminal
and enter the following commands, then reboot for the changes to take effect:If for whatever reason Hibernate is still not working on your system, you should reset the
Power Management
settings and rebuild thesleepimage
file. To do so, open theTerminal
and enter the following commands, then reboot for the changes to take effect:Once you are back in macOS, disable Sleep and enable Hibernate again, then reboot:
Fix broken Bluetooth on Wake from Hibernation
After the device wakes up from Hibernation, Bluetooth may be broken / unable to connect.
A very simple fix for this issue is to download and install Bluesnooze. Launch the app, enable
Launch at login
and you're done!A few comments / Help needed!
Hibernation is working perfectly on my i5 / 8GB / 256GB Surface Pro 7 and i5 / 8GB / 256GB Surface Laptop Go 1 both running on macOS Ventura 13.6.7 with the SMBIOS
MacBookAir9,1
and using Xiashangning's BigSurface.kext v6.5. Everything comes back online after waking up from hibernation.However, my i7 / 16GB / 2TB WD SN770M 15-Inch Surface Laptop 3 running macOS Sonoma 14.5 with the SMBIOS. Fixed, see comment below.MacBookPro16,2
and with Xiashangning's BigSurface.kext v6.2 wakes up with a dead trackpad. I have yet to find a way to fix the dead trackpadThe main difference between the Surface Pro 7 or Surface Laptop Go 1 and the Surface Laptop 3 or Surface Book 3 is that on the former, the keyboard and trackpad are attached through USB, whereas on the latter, they are attached through a proprietary interface.
Both the Surface Laptop 3 and the Surface Book 3 are plagued by a nasty issue with the trackpad on macOS. Fixing the issue is possible, but requires downgrading the firmware to 13.101.140.0 and BigSurface.kext to 6.2, that's why it still runs with
BigSurface.kext
v6.2.The trackpad works with the latest
BigSurface.kext
v6.5, though, but the trackpad lags and skips every few seconds.Furthermore, tests show that the.BigSurface.kext
v6.5 doesn't fix the dead trackpad after wake from hibernationPlaying around trying to unload theBigSurface.kext
orVoodooSerial.kext
plug-in before hibernate and reloading it on wake from hibernate has been a dead end until now, as I'm unable to do so due to various errors with thekextstat
,kextunload
andkextload
commands in macOS.So, the first steps to troubleshoot the trackpad issue would be to downgrade macOS to 13.6.7 Ventura and change the SMBIOS back to
MacBookAir9,1
, but I must admit I'm not all too confident that would fix the dead trackpad after wake from hibernation. We would probably need to find someone who is able to fix theBigSurface.kext
and I'm not sure @Xiashangning is still maintaining hisBigSurface
repo, as there hasn't been any activity for over a year now, since July 14th 2023.The text was updated successfully, but these errors were encountered: