balopez83 / Surface_Pro_3_Hackintosh

OpenCore based Hackintosh on Surface Pro 3
46 stars 6 forks source link

Touchpad not working #25

Closed Idcaboutusernamer closed 1 month ago

Idcaboutusernamer commented 6 months ago

My Surface Pro 3's touchpad isn't working properly. Whenever I try to use it, it just turns the key backlight off and on (see video)

https://github.com/balopez83/Surface_Pro_3_Hackintosh/assets/154581941/5a987ea1-ad2e-4ad2-8a38-49c443130ea1

and doesn't do anything in macOS nor does macOS even detect a keyboard or mouse connected. I have the i7 variant with 8gb of ram and 512GB of storage. How can I fix this?

Thanks

balopez83 commented 6 months ago

@Idcaboutusernamer This is common with old versions of the keyboard. Can you provide the keyboard model number? Also did it ever work? I see your macOS is installed so assume it might have worked to install? Also is your touch screen working (after roughly 10 taps)?

Also I just want to confirm you didn't upgrade/change/disable, any of the 2 voodooi2c kexts? If you did then that's 100% the issue and you will need to go back to my release versions.

If you didn't then unfortunately the only option will likely be to get one of the newer versions of the surface keyboard. I can tell you more once I have your keyboards model number. I will dig further into the code but I believe the older keyboards just won't work properly that's what you have. It's difficult to tell which version you have from the video.

balopez83 commented 6 months ago

@Idcaboutusernamer Also if you tried updating the EFI or made any changes to the kexts or kexts section of the config file, you will want to confirm the kext order because if the voodooi2c kexts are not in a specific order it will do exactly what you're describing.

Idcaboutusernamer commented 6 months ago

My keyboard model number is 1644. It didn't ever work. I used the touchscreen to install it and connected a USB adapter keyboard to set it up. If I tap on the touchscreen, my mouse moves and then I have to click on it 10 times and it works. I didn't change any of the kexts.

Thanks for your timely response!

balopez83 commented 6 months ago

@Idcaboutusernamer Sorry it took so long to respond. I do believe the Surface Keyboard is too old for the driver software unfortunately. I know its a pain considering that your version is the one that came with the SP3. I know that the SP4 generation keyboards all work fine, I personally use the alcantera one (not sure of the keyboard model off the top of my head though believe its in the 17xx model number range).

The drivers used to drive the keyboard are backported from the SP4 and newer models which is why the SP3 keyboard generation and older don't naturally work unfortunately. I will take a look deeper into the code when I have time but for now I don't have better news. I will try and update the readme to indicate type cover limitations to help future users assuming I cannot find a way to drive the older keyboards.

balopez83 commented 6 months ago

@Idcaboutusernamer I do believe disabling the voodooi2CHID-custom.kext will get the keyboard working (without trackpad gestures) but it isn't ideal and you will lose the ability to use the touch screen so not sure if that is something you want to try.

Idcaboutusernamer commented 6 months ago

It's alright because I got a USB 3 USB hub and I can just plug in a wireless keyboard and mouse as well as my phone for WiFi and I'd prefer to have the touchscreen working. Thank you though! Merry Christmas!

balopez83 commented 6 months ago

@Idcaboutusernamer glad to hear you have a good work around. I'll look into adding support for the older keyboards as I have time and keep this issue open for now. With any luck I'll be able to figure out how to add support.

Merry Christmas to you as well

Idcaboutusernamer commented 6 months ago

Another thing to mention is that the type cover works (trackpad and keyboard) in the OpenCore boot menu.

balopez83 commented 6 months ago

@Idcaboutusernamer Thank you for letting me know. I would expect that cause OC has basic ps2 and USB keyboard/trackpad drivers that make it work. I suspect I might be able to get the keyboard to work by adding the keyboard identifier to the custom kext driver code.

If you have Windows installed and can go into your device drivers and find the surface keyboard device identifier it would help to potentially add support.

I can't promise it will be quick due as things in my neck of the woods are a little insane right now but I will definitely look into it once I have time.

Idcaboutusernamer commented 6 months ago

Could I run windows off of a USB, like Rufus Windows to Go and select the option to hide internal drives?

Idcaboutusernamer commented 6 months ago

Also another thing I've noticed, since upgrading to Ventura. I lost graphics acceleration (expected because Ventura doesn't natively support Haswell) but when going into Opencore legacy patcher, the post install root patch says there's no patches available (see video). I also tried running it as sudo in terminal.

https://github.com/balopez83/Surface_Pro_3_Hackintosh/assets/154581941/0f4d8ad9-c0ff-478d-b1ff-703aa725a220

balopez83 commented 6 months ago

@Idcaboutusernamer I'm not sure about the windows to go but I don't see why it wouldn't work. As for the graphics not being detected by OCLP. I have seen that before and it usually resolves itself after a few reboots after upgrade. Make sure to also have the latest version of OCLP, I can't remember which one but one of the recent ones has issues detecting the correct patches. Let me know if it still is being problematic after a few reboots. You may want to try a full shutdown and then reboot as well.

Idcaboutusernamer commented 6 months ago

I tried rebooting several times to no avail. I also tried shutting down and then rebooting, which didn't work either. I have OCLP 1.3.0. Thanks for all your help!

balopez83 commented 6 months ago

@Idcaboutusernamer I am not really sure why it's not detecting.

Maybe try using the i5 config for a single boot and see if OCLP detects the graphics. For some reason it seems OCLP detects the graphics but seems to get confused by what identifier is used for graphics in the config. I believe the i7 config is using a non typical identifier to get the best graphics support and might be detected properly with the i5 config. It does appear that OCLP only likes the default identifiers and doesn't seem to have the full list of framebuffers.

I wouldn't use the i5 config for long or during an install of macOS as you're likely to experience issues.

Also it goes without saying but if you don't copy over your serial information to the i5 you will have issues with iServices and you should use a USB to boot the i5 config/efi. In case you run into issues booting you can pull the USB and still get in to the OS.

Idcaboutusernamer commented 6 months ago

Thanks, that fixed it!

congnt46 commented 5 months ago

Hi @balopez83, I get the same issue with the keyboard/touchpad. One thing is my system can detect the Type Cover device. I hope that it is a hint to resolve the issue. Please share if you can come up with any possible solution, then I can try it on my device.

Screen Shot 2009-01-01 at 07 19 47

PS: I did try disabling the voodooi2CHID-custom.kext, but it did not work. Touch screen, keyboard and touchpad would not work.

balopez83 commented 5 months ago

@congnt46 I won't be able to look into this for some time due to some family issues going on. Once things settle down I will do my best to look into this.

Check the version number of your keyboard to see if it is one of the supported ones as mentioned in the previous comments. If that doesn't work you could try downloading the bigsurface.kext and seeing if that will drive the keyboard. You will lose touchscreen but if the keyboard/touchpad can be driven then it will drive it. I use his driver with permission to integrate into a custom voodooi2chid. In order to use his kext you will need to temporarily disable the voodooi2c kexts. Nothing else should be disabled and you won't need to install his ssdt as it doesn't do anything on the SP3.

Make sure you test with a usb or have a backup EFI or spare usb keyboard in case you get into a situation where nothing works and you can still boot back in.

Idcaboutusernamer commented 5 months ago

Sorry to hear about the family stuff. Take all the time you need. Once things calm down, I'll dig back into the keyboard issue again. Thanks for all the tips! No rush on getting back to me, after all family first! If you're stuck, don't get all riled up about it. Take care :)

balopez83 commented 5 months ago

@congnt46

Can you let me know what model number your keyboard is?

I thought all 17xx models should work but it seems that the 16xx and older keyboards are not compatible.

@Idcaboutusernamer I dug into the code and it doesn't look like I have the knowledge to add support for the older model keyboards. I would assume they should work and be detected over USB but that may not be correct.

@congnt46 & @Idcaboutusernamer You could try adding voodoops2.kext and seeing if that kext will drive the keyboard. My only guess is that the older keyboards run as PS2 over USB but I can't test as I don't have an older one to try. If that works I can add the kext to future releases. You could also try a non-custom voodooi2c from the source and see if the touch works but with the keyboard working without gestures or without trackpad. That would give me a hint as to what is going on.

balopez83 commented 5 months ago

@congnt46 @Idcaboutusernamer I will be issuing a new release 8.1.0 in the next hour or so that adds support for the Surface Pen and also updates the code for the Surface TypeCover. Not sure if this will get the older keyboards working but my hope is that it will improve support.

If this doesn't work, I unfortunately don't have a way to add the support as the custom changes I added are based on (with permission) the work done on the BigSurface.kext repo and the keyboards that are supported are dependent on the drivers that were ported from Linux.

balopez83 commented 1 month ago

Closing due to no activity. This issue is outside the scope of the project and is unable to be resolved as support for keyboards/trackpads comes from the BigSurface project code. If they add support then it will be added here at that time.