Closed Peterro61 closed 1 year ago
Sorry, it is a SP7
The support for Ventura is not planned as the released version is not coming out yet. Sorry for that. I will leave this open until I upgrade to Ventura and take a look at this bug.
Hey dude, thanks for your art, and does Bigsurface also work on Monterey? Or just on Big sur? Thans!
@SheltangW Why not? Officially supported on 10.15-12
@SheltangW Why not? Officially supported on 10.15-12
Thanks man, it works
Maybe I can help a bit here, there is a kernel panic when shutting down Ventura:
Is it maybe due to the voodoo extensions?
@Xiashangning Hi, I have tested the kext for macOS Ventura 13.0 on SL3 and SP7.
On SL3: Kext works without any issue (except the sleep problem-still there).
SP7: Kext works, but only when I shut down the device restarts. Rather than this the kext functions normally it should be. I added the output of - sudo dmesg | grep -E "SurfaceS|SurfaceH|SurfaceB" and the panic report.
So when you have time, please have a look on these. Thank you very much.
Please add keepsyms=1 to bootargs to get the debug symbols
Please add keepsyms=1 to bootargs to get the debug symbols
OK. Anyway I think I got the same panic.
Even if I restart the device, it restarts normally and comes the panic report. So if I shutdown - the Tablet/Laptop restarts and comes the panic report, if I restart it restarts and comes out the report - its always the same panic report.
Update: No output coming out from - sudo dmesg | grep -E "SurfaceS|SurfaceH|SurfaceB". Although the functionality is normal.
This is the same behavior as mine and seems to be the same panic. Here also my panic with keepsyms=1: panic.zip
@Xiashangning It is related with the type cover. Without type cover it shutdown normally and also turn on without panic report.
problem came from Voodool.
Hello. I installed Ventura and it works for now. What doesn't work is turning it off normally. After switching off, the computer restarts with the message "Rebooted because an error was detected" After that, the entire top bar is missing. Turning it off by holding down the power button and then turning it back on works normally. If I load the Bigsurface.kext before voodoinput.kext everything works except the battery indicator is gone
Same problem here,using SP7,and I'm following load the Bigsurface.kext before others,shutdown and reboot works fine,just lost touchpad and battery indicator
@Xiashangning Hi, I have tested the kext for macOS Ventura 13.0 on SL3 and SP7.
On SL3: Kext works without any issue (except the sleep problem-still there).
SP7: Kext works, but only when I shut down the device restarts. Rather than this the kext functions normally it should be. I added the output of - sudo dmesg | grep -E "SurfaceS|SurfaceH|SurfaceB" and the panic report.
So when you have time, please have a look on these. Thank you very much.
@plsh2me what is that sleep issue? i got SL3 too. is it delay to waking up and going to sleep that is my issue since monterey.
@Xiashangning First off thank you for all your hard work. Have you had any progress on this KP issue? I am happy to assist with any coding or testing as needed. I have a GitHub supporting the SP4/SB 1st gen which also uses your kext and the same problem exists for both devices. I also have added your Surface Keyboard code into a vanilla Voodooi2c per your direction from a previous ticket I submitted to get the SP3 running with touch and it also has the same issue of KP on shutdown/reboot.
@Xiashangning , hello there, once again. Just chiming in to wonder if there any news regarding this issue and if you indeed plan to upgrade to Ventura or not.
No, this seems to be a bug on VoodooI2C side. Right now i am afraid nothing could be done.
No, this seems to be a bug on VoodooI2C side. Right now i am afraid nothing could be done.
I see. Well, hopefully VoodooInput gets edited to support Ventura, eventually.
Thank you anyway.
Same problem here, on Surface Laptop Go.
Same problem here, on Surface Laptop Go.
Can you share your EFI for SLG? I'm having a lot of trouble even getting ...anywhere... on the SLG. I'm happy to stick with 12.x.
Adding the BigSurface causes a kp (with stack displayed referencing AppleSMC and IONVMeController) at bootup in my 12.5.1. But not using it causes walls of text and a NOT symbol, so I do not have a working EFI yet, with or without this...
(prior question now resolved)
I've posted a good EFI for a SLG on my repository if anyone is interested in a great starting point for the Surface Laptop Go. Everything works, including very basic display sleep (but not CPU sleep, not fan sleep - it's not really suspended) and touchpad/battery/touchscreen, using 12.6.1 and 13.01. The crash others see at shutdown with 13.01 also happens on SLG.
I'd love to get real sleep working on the SLG...to where the fan and CPU powered off when the laptop was suspended.
2022-12-06 20:37:48 -0600 Sleep Entering DarkWake state due to 'Clamshell Sleep':TCPKeepAlive=active Using Batt (Charge:100%) 36 secs
2022-12-06 20:38:24 -0600 Wake DarkWake to FullWake from Invalid [CDNVA] : due to UserActivity Assertion Using BATT (Charge:100%)
As above, sleep doesn't fully work...
Well it's confirmed a VoodooI2CHID bug located VoodooI2CTouchscreenHIDEventDriver.cpp
Sorry, I'm not clear on the details.
Is the SHUTDOWN CRASH a confirmed bug [this, I am aware of] or is the INABILITY TO SLEEP a confirmed bug [this, I wasn't aware of]. Can you confirm?
ofc KP
@Xiashangning I am one of the devs on VoodooI2C, I would like to track down what is the causing the panic. As I don't exactly have hardware that causes this panic, I am unable to track down where exactly the panic occurs.
Would you be able to ping me on Gitter so we can collaborate on fixing this together?
@kprinssu Sure ! I have upgraded my device to Ventura and will look into this issue on my side.
@Xiashangning This is not an issue with VoodooI2C. This is an issue with VoodooInput. Please see my quick explanation.
Edit: This seemed to be an issue with VoodooInput and have proposed a PR to fix this panic.
Same issues on Ventura,look forward to solving that.
@Xiashangning This is not an issue with VoodooI2C. This is an issue with VoodooInput. Please see my quick explanation.
Edit: This seemed to be an issue with VoodooInput and have proposed a PR to fix this panic.
waiting for big surface update. thx @kprinssu efforts
@XiashangningI attempted to recompile your kext with the updated VoodooInput and latest VoodooI2C code. I was successful however it looks like this issue still persists. Do you have any thoughts on where the issue might be? I also recompiled a clean VoodooI2C and VoodooI2CHID kext and also noticed this issue still persists on Surface devices so it seems that this still may be more than the proposed VoodooInput?
@balopez83 @Xiashangning In regards to this, I have done some experiments.
By using any give clean version of VoodooI2C, the trackpad is not recognized as one (therefore we lose gestures and acceleration is off), but it does not produce any panics.
By using a mix-match of @Xiashangning 's repo and VoodooI2C, I have come to the conclusion that by using the latest kexts from @acidanthera and @Xiashangning 's VoodooGPIO.kext from the latest BigSurface release, we get the trackpad to be recognized again, but the panic persists.
Hence, the logical conclusion that I draw from this is that VoodooGPIO.kext needs to be edited somehow in order to reflect the new changes made to the new VoodooInput.kext.
So, in a way, for now, VoodooGPIO.kext is the offending kext which is not allowing this problem to be fixed.
EDIT 1: Just to be 100% clear, everytime we use @Xiashangning 's VoodooGPIO.kext with whichever VoodooInput.kext version, gestures WORK and the trackpad is recognized as such, BUT we get the panic.
Everytime we use any other VoodooGPIO.kext other that the one here, we DO NOT have the panic, but the trackpad's acceleration is off (and becomes somewhat erratic and jittery) and is no longer recognized as a trackpad under macOS's settings.
@Xiashangning & @billabongbruno I need to correct my earlier statement. VoodooI2C with the latest VoodooInput and other code changes does work but of course the keyboard is not working though the trackpad does and with gestures. I have attempted to create my own VoodooI2CHID.kext using only the two SurfaceTypeCoverDriver files extracted from BigSurface kext files and am able to drive the keyboard with full support for the trackpad and gestures. It is recognized as expected in IORegistryExplorer. In this configuration it still crashes on reboot.
I need to dig further into the code but suspect this may be an issue requiring code edits that mirror the "WillTerminate" that was required in VoodooInput and I will investigate this further. I also suspect, though is less likely, that the assignment of external USB2 in usb mapping might also be contributing. Its possible and I will test, that assigning it to "internal" in usb mapping might make a difference, though again, I suspect this is unlikely.
Once I dig further I will post my changes and request assistance to test. I am sure @Xiashangning is likely really busy as many of us are and so understand why this is likely not something he is able to fix right away. Thank you though for all your work and hopefully we can help contribute to this project to keep it going.
Edit 1: Since I am only currently testing the SurfaceTypeCoverDriver right now it may take a little longer to get BigSurface working as it may need more edits in other areas of the code. Currently, I am only working to get the main known issue of the SurfaceTypeCover and other Surface Keyboards working.
Edit 2: Actually it looks like the vanilla VoodooI2CHID.kext still causes a KP on reboot with the Surface Type Cover connected. @billabongbruno are you sure that your system isn't having a KP on reboot/shutdown with the vanilla VoodooI2C & VoodooI2CHID kexts? Is there any special configuration differences you can identify that might be allowing it to reboot/shutdown without KP if it is normal with those vanilla kexts?
@billabongbruno can you tell me what happens when you boot with this VoodooI2CHID.kext attached? You should use a vanilla VoodooI2C.kext v2.7.1 with it. VoodooI2CHID.kext.zip
I expect no touch screen and keyboard and touch pad should work fine. I do not know if it will cause a KP on reboot/shutdown
@kprinssu , @Xiashangning & @billabongbruno I think I figured out the problem. It is the "willTerminate" code however the changes in the release version of VoodooInput.kext and in two of drivers within the release version of VoodooI2C code were not enough to resolve the issues on Surface devices. I have been able to get stable boot, restart, and shutdown with the attached modified VoodooI2C.kext and VoodooI2CHID.kext which fully implement the "willTerminate" code throughout the entire driver stacks (literally in every driver within the two kexts). I will do my best to get the same changes implemented within the BigSurface kext and post here pending an official update.
Please test the following two kexts to see if there you all experience any KP issues. Keep in mind the touch screen will not be driven on Surface Pro 4, Surface Books, and Surface laptops with these kexts as I simply was attempting to resolve the KP problems and will see about getting the touch screen driven in the official BigSurface kext after I make the same updates there.
VoodooI2CHID
If I used VoodooI2CHID, I couldn't even use the Keyboard or Trackpad. I only used the VoodooI2C.
With a vanilla VoodooI2CHID I couldn't get the keyboard or trackpad to work at all.
Will try these now and report ASAP.
@balopez83 , after having tried the kexts you attached, I can't get the trackpad to work at all (not even working erratically - it simply does nothing). This happened with VoodooSerial loaded and not loaded. Whenever VoodooI2CHID is loaded, it prevents the trackpad from functioning. Although, I must note that the keyboard now works (when loading VoodooI2CHID), which didn't happen with the vanilla version (nor the latest ones I get from Dortania build Repo - which can be found here, FYI: https://dortania.github.io/builds/).
Progress was indeed made. Thank you.
Alas, for now, I guess I have to live with the KP.
@balopez83 @billabongbruno , I tried the two kexts above and had no issues with them.
For clarity I installed the two kexts (and updated the config.plist), and also removed BigSurface.kext and disabled the SSDT-SURFACE.aml.
For reference I'm on Ventura 13.1. Let me know if you need any further details. Thanks.
Edit - Device is SP7 i5 256GB SSD | 8GB ram
@balopez83 @billabongbruno , I tried the two kexts above and had no issues with them.
1. The keyboard and trackpad both worked without issue. 2. The touchscreen did not work (which was expected). 3. Shutdown worked without issue (no kernel panic).
For clarity I installed the two kexts (and updated the config.plist), and also removed BigSurface.kext and disabled the SSDT-SURFACE.aml.
For reference I'm on Ventura 13.1. Let me know if you need any further details. Thanks.
Good point, I forgot to mention the remaining conditions in which I tried them.
That being said, I KEPT both BigSurface.kext AND SSDT-SURFACE.aml.
I am running Ventura 13.2.
(And my device is a SP4 i5 256/8)
@seven-of-eleven this is great news and I am glad to hear it is working as expected. @billabongbruno I forgot to mention that all BigSurface kexts and ssdts should be disabled during this test. Also make sure that any other VoodooInput (serial, GPIO, etc.) are also disabled. The only items that should be enabled are the ones included within those two kexts. Make sure the order is correct as well in the config.plist with VoodooGPIO first, VoodooI2CServices second, VoodooInput third, then VoodooI2C and then VoodooI2CHID.
Let me know if everything works as expected and I will continue working on the BigSurface kext now to get my changes integrated. I am having some issues with the build process that I am working through. Once I can get it to build I will upload my changes.
Hi @billabongbruno & @seven-of-eleven , please try the following custom BigSurface kext and see if it drives everything. I had some issues when compiling that might have broken some stuff. Make sure to disable the previous kexts and re-enable the BigSurface SSDT.
EDIT 1: Deleted link to kext. That one didn't work properly. Rebuilding corrected kext and will post as soon as its done.
Alright!!!! @billabongbruno , @seven-of-eleven , @Xiashangning , @kprinssu I think we are good to go. I have tested on a Surface Book and it looks like everything is now working. I had to add the "willTerminate" code to all "drivers" and a few other code files to get it to stop having a KP on reboot/shutdown and there is a lot lol.
Here is the BigSurface using current release code modified with changes to stop the KP. Keep in mind @Xiashangning just changed the code and I was not able to get that code running with my changes but since its not incorporated into a release yet I am not going to worry about it.
@Xiashangning I am attaching a zip of my build folder so you can see where I made changes to your code to get things to work. I would submit a change however your code has now changed with the addition of the new satellite kext and my changes won't work just yet with those changes.
@balopez83 I tested your modified BigSurface.kext and everything is working:
Let me know if you need any further detail. Specs - SP7 i5 256GB SSD | 8GB ram
@seven-of-eleven glad I could help
Alright!!!! @billabongbruno , @seven-of-eleven , @Xiashangning , @kprinssu I think we are good to go. I have tested on a Surface Book and it looks like everything is now working. I had to add the "willTerminate" code to all "drivers" and a few other code files to get it to stop having a KP on reboot/shutdown and there is a lot lol.
Here is the BigSurface using current release code modified with changes to stop the KP. Keep in mind @Xiashangning just changed the code and I was not able to get that code running with my changes but since its not incorporated into a release yet I am not going to worry about it.
@Xiashangning I am attaching a zip of my build folder so you can see where I made changes to your code to get things to work. I would submit a change however your code has now changed with the addition of the new satellite kext and my changes won't work just yet with those changes.
Sorry, I completely missed this, as our timezones are probably very apart. lol
I will have a go at it and report back.
I will test everything out, including a fresh install, which I previously had issues with too, having to force shutdown in order to reach the next stage of the installation process.
I will try to debug as much as I can and post it here, seeing as you already closed the other issue in your repo (as well you should - lol).
I am currently using my SP4 at work, so I won't have it on hand for a few more hours, but as soon as I do, I will give it a go.
Regardless if it works 100% or not (it most likely does), I would like to take the time to thank you, @balopez83 , for all your hard work and persistence in the pursuit of finding the solution to this issue and many others before it.
Your work has made a lot of people happy, for sure. I am one of them, I know that much.
And even though he is probably busy, thank you as well, @Xiashangning, too.
And thank you, @kprinssu for having the first go at this and dishing out the PR which solved the issue for other users.
Best regards, Bruno.
@balopez83
After a VERY extensive testing session, I couldn't find a single thing that's not working as intended or any hindered performance.
Magnificent work.
Once again, I thank you for all the work you put in to this.
Hi guys! :) Indeed I was quite busy these 2 months. But that was not all academics‘ fault. After the exams, first it was the Chinese new year and then I went on vacations. XD But now I am back again! Thanks you all. You all have put a lot of effort into this annoying issue. @balopez83 @billabongbruno @seven-of-eleven .
@Xiashangning I am attaching a zip of my build folder so you can see where I made changes to your code to get things to work. I would submit a change however your code has now changed with the addition of the new satellite kext and my changes won't work just yet with those changes.
@balopez83 Well I have made some research on my side too, the repo's code now is WIP as I intend to incorporate the latest update of the touch screen code from linux-surface
. I would like to see your PR request so that your contribution can be correctly marked. What is the problem with the latest code of the repo exactly? I only moved all things related to HID to a separate kext as I can see. (BigSurfaceHIDDriver
) You should use git clone -recursive
to clone the entire project. If you only changed those HIDEventDriver's code, you can just fork BigSurfaceHIDDriver
and submit a PR request there.
Hi guys! :) Indeed I was quite busy these 2 months. But that was not all academics‘ fault. After the exams, first it was the Chinese new year and then I went on vacations. XD But now I am back again! Thanks you all. You all have put a lot of effort into this annoying issue. @balopez83 @billabongbruno @seven-of-eleven .
@Xiashangning I am attaching a zip of my build folder so you can see where I made changes to your code to get things to work. I would submit a change however your code has now changed with the addition of the new satellite kext and my changes won't work just yet with those changes.
@balopez83 Well I have made some research on my side too, the repo's code now is WIP as I intend to incorporate the latest update of the touch screen code from
linux-surface
. I would like to see your PR request so that your contribution can be correctly marked. What is the problem with the latest code of the repo exactly? I only moved all things related to HID to a separate kext as I can see. (BigSurfaceHIDDriver
) You should usegit clone -recursive
to clone the entire project. If you only changed those HIDEventDriver's code, you can just forkBigSurfaceHIDDriver
and submit a PR request there.
Hey, @Xiashangning , welcome back again.
Thank you, but unfortunately all I was able to do was report, test and share my findings. I simply lacked the time and some of the skills required to go any further. The heavy lifting was basically @balopez83 .
Once again, welcome back.
Hopefully this project continues to get more and more followers.
Best regards, Bruno.
Thank you, but unfortunately all I was able to do was report, test and share my findings.
No, for me the contribution is not depend on anyone's 'capabilities', but on the time and effort he/she spent.
Hello. I installed Ventura and it works for now. What doesn't work is turning it off normally. After switching off, the computer restarts with the message "Rebooted because an error was detected" After that, the entire top bar is missing. Turning it off by holding down the power button and then turning it back on works normally. If I load the Bigsurface.kext before voodoinput.kext everything works except the battery indicator is gone