Skip to content
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

Surface firmware update aug 26 broke big surface kext for SL3 and SB3 users #61

Closed
bitoy81 opened this issue Aug 30, 2022 · 91 comments
Closed

Comments

@bitoy81
Copy link

bitoy81 commented Aug 30, 2022

Anyone have issues with their keyboard and touchpad? Looks like the aug firmware update broke the big surface kext. Lucky for people that did not update. Hope @Xiashangning will save the day. Thanks in advance.

@plsh2me
Copy link

plsh2me commented Aug 30, 2022

Yes. Same problem.
I found on windows - the keyboard became removable device after that update. If I press to remove then keyboard and touchpad stops working. This is very strange!!! Microsoft might solve this issue.
So it's sure that related to the bios update.
Hope @Xiashangning will find a solution for that, I mean to make the keyboard & trackpad working even as removable device.

Repository owner deleted a comment from SmartBoy84 Sep 8, 2022
Repository owner deleted a comment from JChamberlain28 Sep 8, 2022
@Xiashangning
Copy link
Owner

@plsh2me @bitoy81 I need output of sudo dmesg | grep SurfaceH. Remember to enable DebugEnhancer.kext

@plsh2me
Copy link

plsh2me commented Sep 8, 2022

@Xiashangning
Output -Last login: Thu Sep 8 22:13:19 on console
mdpalashmiah@Shoaibs-Air ~ % sudo dmesg | grep SurfaceH
Password:
[ 0.745472]: SurfaceHIDNub::Woke up
[ 0.756711]: SurfaceHIDDevice:0x10000038a start
[ 0.777954]: SurfaceHIDDevice:0x10000038b start
Shoaib’s MacBook Air1.zip

I think the device starts, but no control. Trackpad also loads, but without control.
Screenshot 2022-09-08 at 22 24 22

As I told before on windows the keyboard shows as a removable.
Surface SL3 Keyboard

Although the issue is related with firmware update, but I am hopeful you can take the control back as the kext loads and device also shows correctly.

@bitoy81
Copy link
Author

bitoy81 commented Sep 8, 2022

[ 0.765168]: SurfaceHIDNub::Woke up
[ 0.776789]: SurfaceHIDDevice:0x10000037b start
[ 0.800615]: SurfaceHIDDevice:0x10000037c start

@plsh2me
Copy link

plsh2me commented Sep 10, 2022

I can confirm that for Surface Laptop 3 - the issue is related with bios. I have found two SL3, of them one has old bios which still works perfectly, and another has updated bios which not working.
non-working bios SL3
Working bios
IMG_20220910_225123
Ioreg from working bios -
ioreg from working sl3.zip
Looks same as non working one. And @Xiashangning You can find on ioreg the devices loads correctly, but they don't have any control.
ioreg non-working sl3.zip

@Infligo
Copy link

Infligo commented Sep 18, 2022

Thanks for reporting this issue. I wasted so much time troubleshooting my new install until I found this thread. BIOS updates through Windows are the absolute worst. I didn't know it was turned on by default for these devices. I would have disabled it if I knew.

@Xiashangning Do you need anything else from us besides dmesg and ioreg to see if it's fixable? Thank you!

@Xiashangning
Copy link
Owner

@iloveps4 @plsh2me @Infligo @bitoy81 please test this test build.
it probably still doesn't work (build for SL1,2, but it will help me understand which part it fails to work. I have read linux's code but failed to find the difference, they seem to have no issue with this at all), so attach the output of sudo dmesg | grep -E "SurfaceS|SurfaceH"
BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Sep 25, 2022

@Xiashangning
Output -Last login: Sun Sep 25 14:54:38 on console
mdpalashmiah@Shoaibs-Air ~ % sudo dmesg | grep -E "SurfaceS|SurfaceH"
Password:
[ 0.443634]: SurfaceSerialHubDriver::Found valid UART bus and GPIO interrupt!
[ 0.443639]: SurfaceSerialHubDriver::Got GPIO Controller! VoodooGPIOIceLakeLP
[ 0.487703]: SurfaceSerialHubDriver::Got UART Controller! VoodooUARTController
[ 0.588767]: SurfaceSerialHubDriver::Surface Serial Hub found!
[ 0.591266]: SurfaceSerialHubDriver::SAM version 14.602.139
[ 0.596053]: SurfaceSerialHubDriver::Surface Battery nub published!
[ 0.746121]: SurfaceSerialHubDriver::Timeout waiting for response
[ 0.750791]: SurfaceSerialHubDriver::Surface HID nub published!
[ 0.750824]: SurfaceHIDNub::Woke up
[ 0.759874]: SurfaceHIDDevice:0x10000038b start
[ 0.781919]: SurfaceHIDDevice:0x10000038c start
[ 0.844949]: SurfaceSerialHubDriver::Warning, given buffer_len(60) and received data_len(2) mismatched!

@Xiashangning
Copy link
Owner

Interesting, so the driver is loaded without any problem, but SAM doesn't send events anymore. Your keyboard still not responsive right? I am wondering if linux has this problem. Can you install a linux and verify whether that works?

@plsh2me
Copy link

plsh2me commented Sep 25, 2022

@Xiashangning To install linux- is there any specific procedure to be follow or enough to install normally?

@Xiashangning
Copy link
Owner

Go check the linux-surface and install it according to their instructions. Also, you can try downgrade your firmware using this script surface-uefi-firmware

@plsh2me
Copy link

plsh2me commented Sep 25, 2022

IMG_20220925_170330
@Xiashangning Ubuntu 22.04.1 LTS running without any issue. Not even need to install something extra.

Please tell me if you need any output from Linux.

@Infligo
Copy link

Infligo commented Sep 30, 2022

@Xiashangning sudo dmesg | grep -E "SurfaceS|SurfaceH" does not yield any results for me. Do you want me to send the output for sudo dmesg instead?

@jlempen
Copy link
Collaborator

jlempen commented Oct 2, 2022

Hi all!
I can confirm that this issue affects the Surface Book 3 series as well.
I have two Surface Book 3 devices, one of them got a firmware update a few days ago and the keyboard and trackpad won't work anymore with the BigSurface kext on macOS Monterey.
The "HID Keyboard Device" got removable in Windows 11.
The keyboard as well as the trackpad work just fine in (Manjaro) Linux, with or without the linux-surface kernel.
The device with the UEFI 15.11.140 stopped working, while the device with the older UEFI 13.101.140 still works perfectly.
It seems that the keyboard/trackpad of any Surface device stops working in macOS with the BigSurface kext once it gets updated to UEFI v15.xx.xx.
I'll try to downgrade to UEFI v13.xx.xx in order to fix the issue on the affected system.
@Xiashangning thank you so much for your brilliant work. Is there something we can do to help you resolve this issue?

22-09-29 14-49-48 2293
22-09-29 14-53-31 2294

@Xiashangning
Copy link
Owner

Sadly nothing yet, this is indeed a weird and not so easy problem. I am investigating it right now.

@Xiashangning Xiashangning changed the title Surface firmware update aug 26 broke big surface kext Surface firmware update aug 26 broke big surface kext for SL3 and SB3 users Oct 2, 2022
@agngwrnt
Copy link

agngwrnt commented Oct 7, 2022

@Xiashangning @jlempen
can you explain how to downgrade this UEFI System? Thank You!

@jlempen
Copy link
Collaborator

jlempen commented Oct 7, 2022

@agngwrnt
The surface-uefi-firmware script found in the linux-surface repo is designed for flashing Surface UEFI firmware updates and has pretty clear instructions on how to downgrade the UEFI on a Surface device.
For the Surface Book 3 series, the driver update pack from Microsoft containing the last UEFI firmware version which works with the BigSurface kext v6.2 is SurfaceBook3_Win11_22000_22.072.22541.0.msi
The surface-uefi-firmware script works great for unpacking the driver update pack and processing the UEFI firmware .cab files.
Unfortunately, I encounter this unresolved issue when I attempt to downgrade the UEFI with the fwupdmgr command. The "firmware signature missing or not trusted" error could be avoided by setting OnlyTrusted=false in /etc/fwupd/daemon.conf, but I don't want to take the risk of bricking my Surface Book 3 by doing so...
You may have a go at it yourself, but I wouldn't recommend it :-)
I think it is much safer to wait until Xiashangning finds a way to fix this issue.

@Xiashangning
Copy link
Owner

@Infligo @bitoy81 @plsh2me @jlempen @agngwrnt Guys, please test this build :)
BigSurface.kext.zip

@jlempen
Copy link
Collaborator

jlempen commented Oct 12, 2022

@Xiashangning, thanks a lot for your test build. I won't have access to the SB3 with the problematic firmware until Saturday, but I'll test your new build right away when I get back to my place :-)

@agngwrnt
Copy link

Hi @Xiashangning thanks for update, unfortunately I was downgrade my System UEFI, Intel ME, and SAM. can I confirm everything went well after:

  1. Uninstall the three drivers in device manager (UEFI, ME, SAM in windows).
  2. Downgrade those three drivers in linux (see reference in surface-uefi-firmware) (in my case UEFI 13.101.140, ME 13.0.2101.0, SAM 14.502.139) (Note: if you only downgrade UEFI its seem not work for me)
  3. After that bigsurface.kext (old) running normally in (SL3 in my case).

Everything works normally, only the touchscreen doesn't work.

@agngwrnt
Copy link

maybe, any suggest for fixing my touchscreen?

@Xiashangning
Copy link
Owner

try this build, if it works without any problems for keyboard and touchpad. Then you can directly upgrade your firmware again. You have my words :) It will work

@plsh2me
Copy link

plsh2me commented Oct 12, 2022

@Infligo @bitoy81 @plsh2me @jlempen @agngwrnt Guys, please test this build :) BigSurface.kext.zip

@Xiashangning Hi, I have tried this kext. Device restarts after login to os.

@Xiashangning
Copy link
Owner

what do you mean after login, do you use your external keyboard or the built in keyboard works when login?

@bitoy81
Copy link
Author

bitoy81 commented Oct 12, 2022

@Infligo @bitoy81 @plsh2me @jlempen @agngwrnt Guys, please test this build :) BigSurface.kext.zip

@Xiashangning Hi, I have tried this kext. Device restarts after login to os.

same here my device restart boot loop

@bitoy81
Copy link
Author

bitoy81 commented Oct 12, 2022

my file vault is enabled so keyboard works before os completely loads. since i got file vault enabled it ask for the password before apple logo loads. after loading it shows the screen desktop and it reboots.

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

BigSurface.kext.zip

Rebooting after login screen.

log.zip

@Xiashangning
Copy link
Owner

BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

BigSurface.kext.zip

It's rebooting also with this kext.

OutPut coming....

@Xiashangning
Copy link
Owner

... I am literally desperate. WTF??
Why it always kp at completely nonsense location? (the same code runs for keyboard device but kp for touchpad device)

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

In fact, the dependency are same as per kp. Is there any other thing which can conflict with the Trackpad. Like double entry, like - Trackpad for laptop and the surface pro type cover. Are they works same root or different. If from different then delete that or discord that.
Actually I am telling only without any knowledge and I know that mac os always fall in kp in such cases. Rest of the things you know.
Thank you for your hard work and big effort.

@Xiashangning
Copy link
Owner

Still, I would like to take a look at the panic logs

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

Still, I would like to take a look at the panic logs

PanicLog.zip

@Xiashangning
Copy link
Owner

No, it's actually different kp, try this one, you will probably be able to enter the system
BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

No, it's actually different kp, try this one, you will probably be able to enter the system BigSurface.kext.zip

Sorry to say, it's not letting me to the os. Rebooting....

kp.zip

@Xiashangning
Copy link
Owner

:(

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

I am here, let me test. Just change line and let me test. Find out which one causing kp.

kp.zip

@Xiashangning
Copy link
Owner

BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

Rebooting...
Do you need kp log?

@Xiashangning
Copy link
Owner

yes

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

yes

kp 1.zip

@Xiashangning
Copy link
Owner

So as long as touchpad is present, it will kp. Let me see

@Xiashangning
Copy link
Owner

BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

BigSurface.kext.zip

only touchscreen working.
but the trackpad loaded on system preferences.

mdpalashmiah@Shoaibs-Air ~ % sudo dmesg | grep -E "SurfaceS|SurfaceH|SurfaceB"
Password:
[ 0.453485]: SurfaceSerialHubDriver::Found valid UART bus and GPIO interrupt!
[ 0.453489]: SurfaceButtonDriver::Found valid GPIO interrupts
[ 0.453490]: SurfaceSerialHubDriver::Got GPIO Controller! VoodooGPIOIceLakeLP
[ 0.453498]: SurfaceButtonDriver::Got GPIO Controller! VoodooGPIOIceLakeLP
[ 0.497311]: SurfaceSerialHubDriver::Got UART Controller! VoodooUARTController
[ 0.553782]: SurfaceButtonDriver::Surface ACPI button device found!
[ 0.553891]: SurfaceButtonDevice:0x10000036a start
[ 0.554323]: SurfaceButtonDevice:0x10000036a creating interfaces
[ 0.598199]: SurfaceSerialHubDriver::Surface Serial Hub found!
[ 0.600743]: SurfaceSerialHubDriver::SAM version 14.602.139
[ 0.654884]: SurfaceButtonDriver::Woke up
[ 0.654907]: SurfaceButtonDevice:0x10000036a message: 0xe0000230 from: 0x100000293 0
[ 5.600877]: SurfaceButtonDevice:0x10000036a Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
[ 5.757393]: SurfaceButtonDevice:0x10000036a Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
[ 30.598524]: SurfaceSerialHubDriver::Surface Battery nub published!
[ 30.602451]: SurfaceBatteryDriver::Plugin submitted
[ 30.617440]: SurfaceBatteryDriver::Woke up
[ 30.748612]: SurfaceSerialHubDriver::Timeout waiting for response
[ 30.752071]: SurfaceHIDNub::HID version 2
[ 30.752125]: SurfaceSerialHubDriver::Surface HID nub published!
[ 30.757250]: SurfaceHIDDevice:0x100000570 start
[ 30.757270]: SurfaceHIDDevice::Surface Touchpad 1api addr
[ 30.757277]: SurfaceHIDDevice::Surface Touchpad 4api addr
[ 30.803488]: SurfaceSerialHubDriver::Already has an event handler registered!
[ 30.803494]: SurfaceHIDDriver::HID event registration failed!
[ 30.804691]: SurfaceHIDDevice::Surface Touchpad 2api addr 0
[ 30.804694]: SurfaceHIDDriver::report id 4
[ 30.804695]: SurfaceHIDDevice::Surface Touchpad Get feature report failed
[ 30.804755]: SurfaceHIDDevice::Surface Touchpad 3api addr 0

Question: is there anything on code that keyboard and trackpad conflicting each other?

@Xiashangning
Copy link
Owner

I think I found the bug, try this one!
BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

I think I found the bug, try this one!
BigSurface.kext.zip

Maybe you got it.

Keyboard and Touchscreen working.
Trackpad not working, but loaded on System Preferences.

mdpalashmiah@Shoaibs-Air ~ % sudo dmesg | grep -E "SurfaceS|SurfaceH|SurfaceB"
Password:
[ 0.455149]: SurfaceButtonDriver::Found valid GPIO interrupts
[ 0.455737]: SurfaceSerialHubDriver::Found valid UART bus and GPIO interrupt!
[ 0.456243]: SurfaceButtonDriver::Got GPIO Controller! VoodooGPIOIceLakeLP
[ 0.456244]: SurfaceSerialHubDriver::Got GPIO Controller! VoodooGPIOIceLakeLP
[ 0.503019]: SurfaceSerialHubDriver::Got UART Controller! VoodooUARTController
[ 0.556261]: SurfaceButtonDriver::Surface ACPI button device found!
[ 0.556352]: SurfaceButtonDevice:0x10000036a start
[ 0.556742]: SurfaceButtonDevice:0x10000036a creating interfaces
[ 0.604136]: SurfaceSerialHubDriver::Surface Serial Hub found!
[ 0.606852]: SurfaceSerialHubDriver::SAM version 14.602.139
[ 0.657830]: SurfaceButtonDriver::Woke up
[ 0.657867]: SurfaceButtonDevice:0x10000036a message: 0xe0000230 from: 0x10000028e 0
[ 5.731532]: SurfaceButtonDevice:0x10000036a Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
[ 5.930355]: SurfaceButtonDevice:0x10000036a Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
[ 30.604470]: SurfaceSerialHubDriver::Surface Battery nub published!
[ 30.608713]: SurfaceBatteryDriver::Plugin submitted
[ 30.625361]: SurfaceBatteryDriver::Woke up
[ 30.754608]: SurfaceSerialHubDriver::Timeout waiting for response
[ 30.758031]: SurfaceHIDNub::HID version 2
[ 30.758087]: SurfaceSerialHubDriver::Surface HID nub published!
[ 30.770991]: SurfaceHIDDevice:0x10000057e start
[ 30.788821]: SurfaceHIDDevice:0x10000057f start
[ 30.846179]: SurfaceSerialHubDriver::Warning, given buffer_len(60) and received data_len(2) mismatched!

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

Sorry, After reboot everything start working.

You have done.......

@plsh2me
Copy link

plsh2me commented Oct 16, 2022

@Xiashangning I was totally confident on you. Such a patience ....
WOW...... unbelievable!!!!!!!!!!!
Thank you very much.

@bitoy81
Copy link
Author

bitoy81 commented Oct 16, 2022

I think I found the bug, try this one! BigSurface.kext.zip

Thank you @Xiashangning you save my SL3 (almost sold it like the others). worth the wait, thanks again! hope you assist us on the next osx.

@bitoy81 bitoy81 closed this as completed Oct 16, 2022
@plsh2me
Copy link

plsh2me commented Oct 17, 2022

@Xiashangning This is a panic log, please have a look before you release new version.
This happens every time when I go to MacOS after shutting down windows or randomly.
Just like before - after reaching to the login screen it reboots. And 2nd attempt it starts os then functions normally.

randomKP.zip

@Xiashangning
Copy link
Owner

Try this, plz also test whether it can work after wake up from sleep
BigSurface.kext.zip

@plsh2me
Copy link

plsh2me commented Oct 17, 2022

Try this, plz also test whether it can work after wake up from sleep BigSurface.kext.zip

OK now. No kp. Sleep problem still there, keyboard and trackpad are not able to wake up the laptop. Needs usb device to wake up. After woke up seems everything works normally.
Testing will continue...

@Xiashangning
Copy link
Owner

That can not be solved yet :(

@plsh2me
Copy link

plsh2me commented Oct 17, 2022

No problem. What you did, enough for us.
If you find any clue for that only then try to implement, otherwise leave it.
Thank you

@jlempen
Copy link
Collaborator

jlempen commented Oct 17, 2022

Try this, plz also test whether it can work after wake up from sleep
BigSurface.kext.zip

@Xiashangning Confirmed working on the Surface Book 3 :-)
Thank you very much for your relentless work on this issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants