Contribute
Register

Surface Laptop 2 - i5-8250u Troubleshooting

Status
Not open for further replies.
Joined
Jun 15, 2015
Messages
217
Motherboard
P5WE0
CPU
i5-2450M
Graphics
HD 3000
Mac
  1. MacBook Air
  2. Mac mini
Mobile Phone
  1. Android
  2. iOS
Hi everyone.

After banging my head against the wall I come humbly asking for help.

I realize that this is not a good laptop for a hack. However, I got the thing for around 500USD so...yeah...

What works:
1. Backlight
2. Trackpad (including gestures which I am then able to add more via BetterTouchTool. Like real Mac hardware!)
3. USB ports
4. Sound (Apple ALC)
5. mDP out
6. iMessage and iCloud (Use Nullethernet kext provided by Rehabman)
7. Acceleration
8. hiDPI display

What doesn't work:
1. Wifi Card: soldered :/
2. ALS - Ambient light sensor
3. Camera-i2c
4. Touchscreen

These 4 things while not working are very low priority and are even unlikely to be ever fixed:

Help specifically needed:
1. Keyboard...I have no idea how to get this up and running. I am assuming its a i2c but no luck. I've tried both with and without the voodoops2controller.kext in a last ditch attempt to see if the laptop keyboard was somehow connected via ps2. No luck.

2. Battery: I cannot find 'Embeddedcontrol' in the DSDT. Using just the acpibattery.kext loads the battery in a failure state stuck at 100% First time I have encountered EmbeddedControl missing from the DSDT

I am attaching PR files in the hope someone can give me some advice. If the laptop keyboard is unserviceable I may just wipe the macOS partition. I will post a detailed guide if and when the keyboard issue is solved. Thanks
 

Attachments

  • Surface Laptop 2 PR Files.zip
    2.3 MB · Views: 158
Last edited:
To report (in case anyone is watching):

iMessage and iCloud are working(using nullethernet.kext provided by Rehabman and the companion SSDT file.

I tried to to build a couple of different versions of the voodooi2c but they did not solve the keyboard issue.

Anyone have some information regarding that and the DSDT's lack of 'embeddedcontrol'?
Thanks
 
2. Battery: I cannot find 'Embeddedcontrol' in the DSDT. Using just the acpibattery.kext loads the battery in a failure state stuck at 100% First time I have encountered EmbeddedControl missing from the DSDT

Your system is playing with _SAN
Take a look at your IOreg: BAT1 data are wrongly set, _BIX & _BST are not returning the correct values.
In your Battery Status all data are 0xffffffff, which means null, they are not updated. Even _BIX is suffering the same problem.
Your ACPI uses _SAN.RQST method to retrieve that information:
Store (^^_SAN.RQST (0x02, 0x03, One, Zero, One), Local0)
You should have to debug that part of the ACPI, paying attention to Local0 (try with rehabman's ACPIDebug) and its size should be 0x10 (for _BST) otherwise the statement "ElseIf (LEqual (SizeOf (Local0), 0x10))" cannot be executed and your battery data are wrong.
The same for _BIX: in that case the Local0's bytes must be 0x77.
In both cases Local0 is a record filled with all necessary battery data.

The answer is in your ACPI...
I'd also add FixRegions & SMBIOS Trust options. The last battery kext version is 1.90.2.
More has to come.
Good luck.
 
Thanks a bunch. It's really refreshing to know where to go from here.
 
In windows I have 4 entries under Keyboards. What is the best way to determine which is exactly the laptop keyboard. Thanks
 

Attachments

  • HID 1.png
    HID 1.png
    50.3 KB · Views: 162
  • HID 2.png
    HID 2.png
    73.4 KB · Views: 160
  • HID 3.png
    HID 3.png
    64.8 KB · Views: 144
  • HID 4.png
    HID 4.png
    52 KB · Views: 154
Your system is playing with _SAN
Take a look at your IOreg: BAT1 data are wrongly set, _BIX & _BST are not returning the correct values.
In your Battery Status all data are 0xffffffff, which means null, they are not updated. Even _BIX is suffering the same problem.
Your ACPI uses _SAN.RQST method to retrieve that information:
Store (^^_SAN.RQST (0x02, 0x03, One, Zero, One), Local0)
You should have to debug that part of the ACPI, paying attention to Local0 (try with rehabman's ACPIDebug) and its size should be 0x10 (for _BST) otherwise the statement "ElseIf (LEqual (SizeOf (Local0), 0x10))" cannot be executed and your battery data are wrong.
The same for _BIX: in that case the Local0's bytes must be 0x77.
In both cases Local0 is a record filled with all necessary battery data.

The answer is in your ACPI...
I'd also add FixRegions & SMBIOS Trust options. The last battery kext version is 1.90.2.
More has to come.
Good luck.
Surface Pro 6 has this problem too: battery does not work.
Can you help me fix this ? Thank you very much
 

Attachments

  • origin.zip
    52.8 KB · Views: 67
Hey, I have the exact same version of the Surface Laptop 2. Were you ever able to get the keyboard working? I was about to try installing Catalina on it but I won't bother if the keyboard isn't going to work.
 
Nope. No luck with the keyboard. Even Microsoft requires drivers to get it to work. It doesn't work oob. A shame. Outside of battery and the keyboard everything works (that can work)
 
Awww man :( Thanks for the reply though. I guess I'll have to purchase a separate laptop for Hackintoshing then. Hopefully someone, somewhere along the way figures a keyboard workaround.
 
2. Trackpad (including gestures which I am then able to add more via BetterTouchTool. Like real Mac hardware!)

Did you use voodooi2c to get the trackpad working? I haven't been able to get it moving around.
 
Status
Not open for further replies.
Back
Top