Contribute
Register

[solved] iGPU HD 530; extrenal video ports not working; kp on miniDP

Status
Not open for further replies.
Joined
May 9, 2012
Messages
151
Motherboard
Acer Predator PH517-51
CPU
i7 8750H
Graphics
GTX 1070 G-Sync Panel
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. Android
So here is my setup; it's a Dell Precision 7510 and on the graphics end it's an integrated intel HD 530 and a dedicated AMD m5170w (R9 375x)(switchable graphics in bios). On my specific model I can't change the DVMT ram on the integrated igpu so I have to use some modify to achieve a boot on the intel igpu. Well dell released a bios script for completely disabling the amd dedicated gpu for if you wanted to use a eGPU, which is super cool and benefits me here, the script also changed the DVMT ram to 96MB so I don't have to modify the appleintelframebuffer kext. The system boots correctly and the amd gpu is turned off by the bios. I attached a "sudo lspci" command from Ubuntu 18.04 to show that the card is off and disabled by the bios (it's not on the output list anymore).

My problem is the external video output ports; my laptop has a HDMI port and a miniDP port but neither of them work in mac. And if I plug something into the miniDP and then unplug it the system kernel panics; and the kernel panic is on the appleintelframebuffer kext. So I thought well maybe the external video outputs are connected to the AMD gpu and by disabling the gpu in the bios I lost those ports; so I booted Ubuntu and plugged in a monitor (4k) and it works just fine using just the intel igpu (I attached a photo of that as well). So that gives my hope that I can resolve the issue in mac.

That's is where I am stuck though and am asking for help, I tried some different ig-platform-ids but the same result happened, no signal and kernel panic on the miniDP. Any help would be amazing! Thank you! :D
 

Attachments

  • debug_2986.zip
    2.7 MB · Views: 45
  • IMG_20180819_102025.jpg
    IMG_20180819_102025.jpg
    3.2 MB · Views: 72
  • IMG_20180819_102035.jpg
    IMG_20180819_102035.jpg
    4.9 MB · Views: 109
So here is my setup; it's a Dell Precision 7510 and on the graphics end it's an integrated intel HD 530 and a dedicated AMD m5170w (R9 375x)(switchable graphics in bios). On my specific model I can't change the DVMT ram on the integrated igpu so I have to use some modify to achieve a boot on the intel igpu. Well dell released a bios script for completely disabling the amd dedicated gpu for if you wanted to use a eGPU, which is super cool and benefits me here, the script also changed the DVMT ram to 96MB so I don't have to modify the appleintelframebuffer kext. The system boots correctly and the amd gpu is turned off by the bios. I attached a "sudo lspci" command from Ubuntu 18.04 to show that the card is off and disabled by the bios (it's not on the output list anymore).

My problem is the external video output ports; my laptop has a HDMI port and a miniDP port but neither of them work in mac. And if I plug something into the miniDP and then unplug it the system kernel panics; and the kernel panic is on the appleintelframebuffer kext. So I thought well maybe the external video outputs are connected to the AMD gpu and by disabling the gpu in the bios I lost those ports; so I booted Ubuntu and plugged in a monitor (4k) and it works just fine using just the intel igpu (I attached a photo of that as well). So that gives my hope that I can resolve the issue in mac.

That's is where I am stuck though and am asking for help, I tried some different ig-platform-ids but the same result happened, no signal and kernel panic on the miniDP. Any help would be amazing! Thank you! :D

You might need to enable missing connectors in the framebuffer.
Refer to the guide plists for ideas/patches:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
 
Thanks rehabman; so your saying this will require replacing the hex code lines in the appleintelsklgraphicsframebuffer.kext with the code for my port configuration?

Yes.
 
This is a difficult one.. :/

I studied off of this guie https://www.tonymacx86.com/threads/guide-workaround-using-intel-hd530-with-dual-monitors.214125/ and tried changing port 0x5 to HDMI but still no luck here ...

With just the intel gpu, no external video port will work.. but with just the amd dedicated card the external video ports work perfectly, but I have poor color depth on the internal laptop display. :C

I don't know if this would work at all, but can I take port values from the amd framebuffers that work and inject them into the intelsklframebuffer?

My IGPU in ioreg shows the 3 ports in the framebuffer.. and display0 (my interal) under Framebuffer@0, but the others @1 @2 @3 dont work
 
This is a difficult one.. :/

I studied off of this guie https://www.tonymacx86.com/threads/guide-workaround-using-intel-hd530-with-dual-monitors.214125/ and tried changing port 0x5 to HDMI but still no luck here ...

With just the intel gpu, no external video port will work.. but with just the amd dedicated card the external video ports work perfectly, but I have poor color depth on the internal laptop display. :C

I don't know if this would work at all, but can I take port values from the amd framebuffers that work and inject them into the intelsklframebuffer?

My IGPU in ioreg shows the 3 ports in the framebuffer.. and display0 (my interal) under Framebuffer@0, but the others @1 @2 @3 dont work

No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.

Note: You should also check in Windows that your HDMI is actually connected to Intel and not AMD...
 
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.

Note: You should also check in Windows that your HDMI is actually connected to Intel and not AMD...
I installed windows 10 and just tested my external ports and they work fine once windows loads the intel gpu drivers. I attached a photo showing the connection to a 4k monitor over miniDP and the device manager showing the AMD gpu is disabled in the bios, so the system doesn't see it.

In mac; I did notice while the system booted (-v) the iGPU part is saying the firmware failed to load; but I have full QE/CL.

I also uploaded my error files below: thanks

** Update:
I installed lilu kext and whatevergreen kext into S/L/E and set inject Intel = No. On boot (-v) the iGPU is correctly injecting the framebuffers now. But still black screens on both external ports, the kernel panic on the miniDP is gone though. DCPImanager shows the system loading 0x1216000
 

Attachments

  • Error Reporting.zip
    2.6 MB · Views: 43
  • IMG_20180821_125723.jpg
    IMG_20180821_125723.jpg
    2.9 MB · Views: 165
  • IMG_20180821_125728.jpg
    IMG_20180821_125728.jpg
    6.6 MB · Views: 151
Last edited:
I installed windows 10 and just tested my external ports and they work fine once windows loads the intel gpu drivers. I attached a photo showing the connection to a 4k monitor over miniDP and the device manager showing the AMD gpu is disabled in the bios, so the system doesn't see it.

In mac; I did notice while the system booted (-v) the iGPU part is saying the firmware failed to load; but I have full QE/CL.

I also uploaded my error files below: thanks

** Update:
I installed lilu kext and whatevergreen kext into S/L/E and set inject Intel = No. On boot (-v) the iGPU is correctly injecting the framebuffers now. But still black screens on both external ports, the kernel panic on the miniDP is gone though. DCPImanager shows the system loading 0x1216000

MacBookPro13,3 is a poor choice. Use MacBookPro13,1 or MacBookPro11,1.
 
MacBookPro13,3 is a poor choice. Use MacBookPro13,1 or MacBookPro11,1.
Alright I changed to 13,1 but still no display over the miniDP. I reattached my latest error reporting files to look at. The part I am most focused on is under IGPU@2;
So Appleintelframebuffer@0 port number 0x0 is my internal display, it shows "display 0" and is using connector-type 02-00-00-00 (which is LVDS) which is kinda interesting because my internal display is over eDP, maybe the internal display has two connection? The eDP is the amd card I have disabled and the LVDS is connected to the iGPU?? Not worried about that though, that display works.

Then on Appleintelframebuffer@2 port 0x6 is the HDMI port on my laptop, and this port is working correctly.

On Appleintelframebuffer@1 port 0x5 I believe this is the miniDP port that I can't get working at all. This is the interesting part, the connector type is 00 08 00 00 which is HDMI, but it's supposed to be 00 04 00 00 which is DisplayPort. Without whatevergreen.kext on boot it says the IGPU firmware is failing to load, but this connector type is correctly displaying as 00 04 00 00, but it doesn't work and causes a kernel panic when I unplug the cable from the port. With whatevergreen.kext the port doesn't work either and it displays as 00 08 00 00, but the IGPU firmware is loading correctly...

If you look at my config.plist you can see I have to kext patches on AppleIntelSKLGraphicsFramebuffer for port configuration.

Find:02040A00 00040000 Replace:02040A00 00080000; comment: force HDMI on port 0x6
Find:01050900 00080000 Replace:01050900 00040000; comment: force DP connector on port 0x5

But I think whatevergreen.kext is either changing my patches or I did the port 0x5 patch incorrectly.
 

Attachments

  • error reporting.zip
    2.7 MB · Views: 48
This can be marked as solved: I got it working flawlessly; here's what I did:

I messed around will all the different ig-platform-ids for skylake. I looked through the port configurations on some of them and looked for one that used all displayport connections. My laptops HDMI works on either connector HMDI or DP; don't fully know why but could be the way it was hardwired by Dell. But the HDMI port hasn't really been the issue, the issues were on the miniDP and the eDP (internal display).

So I found the ig-platform-id 0x193B0005 which uses LVDS and all DP connections. Using this ig-platform-id the HDMI and miniDP work correctly now but with this platform-id it doesn't inject EDID correctly on the internal display and there is massive color depth issues, color banding and bad gradients. So I found the LVDS hex code in the framebuffer <00000800 02000000 98000000> and replaced it with eDP code <00000800 04000000 C7010000>. After a reboot the color banding was gone and system report shows 30-bit color depth. And all external ports work correctly now; I have test 1440p @144hz and 4k @60hz over the miniDP and it's fine.

I also used the 4 displays hack; the miniDP was on framebuffer@3 port 0x7 which is the 4 port, so I have to have this hack enabled.
AppleIntelSKLGraphicsFramebuffer Find: 01030303 Replace: 01030403

And I also used the disabled board-id check hack, to avoid any no signal issues caused by smbios.
com.apple.driver.AppleGraphicsDevicePolicy Find: BA050000 00 Replace: BA000000 00

Side note: either intelgraphicsfixup.kext or whatevergreen.kext is needed so the igpu firmware injects correctly in High Sierra. Intelgraphicsfixup.kext will correctly show connector types in ioregistryexplorer, shows 00040000 on the ports. Whatevergreen.kext will display 00080000 which is HDMI on all the ports (not the internal port), miniDP will still work correctly though. Could be just some cosmetic stuff that whatevergreen does?? I know intelgraphicsfixup is not longer being developed and is now apart of whatevergreen though. So I am just using the latest whatevergreen.kext.

I uploaded my clover folder if anyone wants to look at what I did. I hope to write a more in depth guide on this soon, as there isn't a ton of information on "mobile" igpu port configuration modifications. I just want to help more people out that are stuck where I was.


**The only issue I have had is back light control is gone with this method, and this is because on port 0 I changed 98000000 to C7010000. And 98000000 is the hex that tells the framebuffer the display is internal. If I change it back to 98000000 backlight will work but then the monitor has color depth issues. So with C7010000 the system treats the LVDS or eDP as if you're plugging an external monitor into a video port. Maybe there is a very to fit this, but I am not really going to spend the time right now on it.
 

Attachments

  • CLOVER.zip
    6.1 MB · Views: 83
Last edited:
Status
Not open for further replies.
Back
Top