balopez83 / Surface_Pro_3_Hackintosh

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

Surface dock hdmi #7

Closed ShibeGG1 closed 1 year ago

ShibeGG1 commented 1 year ago

When i plug my surface dock with the hdmi plugged in, nothing shows on my monitor. Is there any drivers for it?

balopez83 commented 1 year ago

@ShibeGG1

Unfortunately I don't have a dock to test on but this is likely an issue with the way the graphics kext (driver) is set in macOS. I don't believe there is a fix that can be implemented. There are no graphics drivers that can be installed that would fix this issue.

If I can get a hold of a dock I will check it out and see if I can find a way to get it working but it likely won't be a quick fix.

ShibeGG1 commented 1 year ago

@ShibeGG1

Unfortunately I don't have a dock to test on but this is likely an issue with the way the graphics kext (driver) is set in macOS. I don't believe there is a fix that can be implemented. There are no graphics drivers that can be installed that would fix this issue.

If I can get a hold of a dock I will check it out and see if I can find a way to get it working but it likely won't be a quick fix.

When plugging the Mini DisplayPort into the side of the surface the monitor works fully but the surface dock usb or Ethernet do not work.

balopez83 commented 1 year ago

@ShibeGG1 Yes; this also makes sense. The mDP plug on the SP3 was tested so I know it was mapped properly when making the config.plist. The issue with the Surface Dock usb and Ethernet is likely caused by the USB mapping. Since I did not have a dock available during mapping it has likely been disabled. I am not sure if fixing the mapping might inadvertently fix the graphics but it is possible.

I can try and see if I can find the mapping but the only one I now have available to me is a newer model and settings to drive it might not fix all docks.

You can try the following tool to create a map in Windows which will generate a usb map that can be imported into macOS. If you try it and forward it to me I can then correct it to work properly. I had to make some minor tweaks to the output of the tool to ensure things would work properly so the raw output while close isn't exactly perfect.

https://github.com/USBToolBox/tool

While this does say it will work from macOS, do not try it there as it will not work on the Surface Pro 3. When using this tool boot to Windows and ensure everything is plugged in, including the dock. You will need to identify each port by plugging in both a USB 2.0 and USB 3.0 into each of the ports as they will identify as different ports with the two different types of USB's even when plugged into the same port. Ethernet and possibly Video will show up active regardless of having an ethernet or monitor plugged into the dock.

Hope this helps.

balopez83 commented 1 year ago

@ShibeGG1 can you test this again and see if you can run monitors via the dock using the 5.2.0 release?

BT-Lim2021 commented 1 year ago

Hi @balopez83 and @ShibeGG1 ,

I also am experiencing the same problem with external display from the surface dock. @ShibeGG1 I am not sure if you have found a solution.

Here is what I have tested so far:

I have executed the USBToolBox as @balopez83 suggested. The resulting UTBMap.kext is attached.

I have also tried adding the UTBMap.kext to my OC and update snapshot of my config.plist. Still does not work from the dock.

I am a bit puzzled with the DisplayPort. I noticed that the connector type in IOReg are already 00 04 00 00 which are display port. but they don't work. I also attached the screen shot of myIGPU IOReg in case it is helpful.

@balopez83 , your assistance and support on both the HDMI and DisplayPort issue is much appreciated.

UTBMap.kext.zip

Screenshot 2023-06-21 at 9 59 47 PM

BT-Lim2021 commented 1 year ago

BTW, I forgot to mention, my USB ports and GigaBit Ethernet work with the original EFI from @balopez83 .

So really only display is causing issues.

balopez83 commented 1 year ago

@BT-Lim2021 This one is confusing though may not be able to be resolved for awhile unfortunately. I suspect that the graphics is being driven over USB or some other special connector which is likely why its not driving properly.

I won't actually have access to a dock for a month or two and so will need to pin this until I can test. I will look at the USB and ethernet working using the original EFI as that might be an easy enough fix to re-integrate into the next release.

BT-Lim2021 commented 1 year ago

@balopez83, timing is very interesting. Two hours ago, I had just figured out how to make it work (at least a workaround), and I was going to post an update and I see you just responded.

All I needed to do was to change the platform (SIMBIOS) in config.plist. With MacBookPro14,1 the display (miniDP) ports are not working.

I changed the platform to MacBookPro12,1. The display suddenly work. I have tried different SIMBIOS platforms.

The only thing is the dock has two miniDP ports. If I use both ports, Ventura only recognizes them as the same display (i.e. you can only mirror the external display). You can extend the main display -- so in turns you have two types of display. In Windows, I can use 3 displays this way.

If I connect one external display to miniDP in the dock, and another directly on the SurfacePro 3, I can have 3 different displays (including the built in main display).

I am attaching picture of the 3 displays.

One important note, which I experienced a lot of pain on. If you use HDMI from the dock, the HDMI cable needs to be "Active HDMI 2.0" version or higher. It had failed with all different types of HDMI cable (they work directly from surface but not from the dock). I finally used the Active HDMI 2.0 from my home theatre set up and they suddenly work.

In anycase, thank you very much for your good work on this. All and all, I am very happy. Almost a perfect hackintosh with touch working. Great Job.

IMG_3039 IMG_3037

balopez83 commented 1 year ago

@BT-Lim2021 wow you have definitely done a lot of testing. Thank you for assisting with all the testing I honestly couldn't do at the moment.

I had a feeling that using the SMBIOS the releases are currently based on might have some issues and you proved that feeling right. Then intention was to ensure that we could actually boot later versions of macOS but with OC Legacy Patcher and with some of the current settings in OC it shouldn't be an issue anymore anyway.

macOS is very smart but also a pain in that it will outright disable features if the SMBIOS it is installed on doesn't support particular hardware. It seems the MacBookPro14,1 must not support the graphics ports/types that are on the Surface Pro 3 which is why these issues are cropping up. This also explains why it does work with 12,1 and lower since that also puts it in line with the actual Intel graphics of the Surface Pro 3 generation.

As for the two screens only showing as duplicated on the dock, I believe that is expected. Back in the day the Macs of this generation would only support two screens in total anyway so being able to get three by using the built-in port and the dock is a plus. Unfortunately, I don't believe there is a workaround for this as this used to be a "feature" of MacBooks back in the day lol.

I will revert the SMBIOS to the correct one for this machine which should not only fix the graphics as you discovered but also help CPU power management even further. I need to do a little testing but I am nearing having the release completed so am hopeful to get this out today. I suspect I will pin this issue since your details on what works and why types of connectors are needed for each configuration will be very valuable to people looking to have 3 screens.

balopez83 commented 1 year ago

This should now be fully resolved with release 6.0.0. Let me know if you continue to have issues and I can issue another release