Jump to content

E5470+Docking Station/Port Replicator PR03x


elisir1998

Recommended Posts

Hello Everybody

My E5470 is with High Sierra onboard

VGA port on laptop works

HDMI port on laptop works (audio too)

 

My Docking station (Dell pr03x) works almost fine: audio, usb, lan perfectly recognized

I've connected 2 external DELL monitors to the docking station with a DVI cable; the result is:

Laptop display works, external monitors work too but they are in mirroring between them

So it's still like I have 2 monitors: The laptop display and one external extended (the other one is in mirroring). 
On System Pref - Monitor I can see 2 monitors only (when I click to the external one, the red square appers in both external connected).

I tried to connect one of the 2 external monitor using a VGA cable instead of the DVI but the result was always the same: the 2 external monitors were in mirroring.

I followed some guides (for del E6xxx series) in this forum, but unsuccessfully (probably because the video adapter is not the same).

Someone of you can help me to use these 2 external monitors in "extended mode"?!?

Thanks in advance

 

PS: I tried with another docking station, model PR02x but the result was always the same

Link to comment
Share on other sites

  • Administrators

what happens if you select "gather windows" so that the options display on one screen can you then edit them? also have you tried holding the windows key or alt key depending on keyboard setup while in the display prefpane so that detect screen option shows

Link to comment
Share on other sites

  • Administrators

You're gonna have to tell us which external display is detected. Somehow, I doubt the VGA output can properly work (it's probably wired to the DVI port, hence the mirroring). Bear in mind that there's been no support for VGA since Ivy Bridge HD4000 era and it could last be patched on SandyBridge HD3000 platforms (granted some Haswell laptops with HD4400 graphics do have VGA working OOB but these usually had a dGPU too)..

 

Use IORegistryExplorer to identify the output port of the detected display or plug only 1 at a time and see which gets detected. Though one would have expected you to have done this already.

 

If you want 2 x independant external displays, I'm pretty sure you'll have to use DVI and/or DP on the PR03x and/or HDMI on your laptop.

 

You forgot to mention whether your system has SKL iGPU only or if it's fitted with the AMD dGPU too. I would not expect VGA output in the former case but you might get it OOB (like with some Haswell laptops) in the latter case. So, post your graphics specs or add your E5470 specs in your signature (which is the desired mode on Hackintosh forums).

Link to comment
Share on other sites

Updates:
Connecting 1 DVI to the Port Replicator and 1 HDMI on the back of the laptop, I obtain what I want: 3 indipendent screens

I tried to connect 1 DVI and 1 DisplayPort in the Port Replicator; the 2 external dell monitors work but they are always in mirroring between them

Unfortunately, the HDMI port is not easy to use because the docking station is very close

Is there a way to make working my 2 external dell monitors connected directly to the docking station?

 

Here some images from IORegistryExplorer

https://ibb.co/bE9eBb

https://ibb.co/jJ14cG

Thanks in advance

Link to comment
Share on other sites

  • Administrators

We're not going to make anything out of those IORegistryExplorer screenshots. You've selected the data related to the monitors (which is kind of useless, especially the built-on LCD), not the data related to the framebuffers (i.e. the output ports), which is what interests us here. Please save the output in a file, zip it and attach it directly to the forum rather than use an external place.

 

The behaviour you described when using DVI + DP port is as I thought: you most likely require to patch your SKL framebuffer for those output ports, assuming graphics run on the SkyLake iGPU.

 

So, to recap:

  1. post your graphics specs
  2. state which layout you use
  3. post a saved IORegistryExplorer output
  4. post your Clover config file
Link to comment
Share on other sites

  • Administrators

Ok, you have Skylake HD520 graphics and use the usual layout-id 0x19160000; that's what I was asking for in case it still eluded you...

 

As explained here and at many other places, OS X/macOS supports up to 4 x display ports and at least 6 x connector types:

  • 0000 ... for framebuffer #0 / port #0
  • 0105 ... for framebuffer #1 / port #5
  • 0204 ... for framebuffer #2 / port #6
  • 0306 ... for framebuffer #4 / port #7

 

  • 0100 0000 for VGA
  • 0200 0000 for LVDS (built-in LCD of laptops)
  • 0400 0000 for eDP (built-in LCD of laptops)
  • 0002 0000 for DVI
  • 0004 0000 for DP
  • 0008 0000 for HDMI

 

Now, if you look at your IOReg data, you'll see 3 x different framebuffers under device iGPU@2:

  1. AppleIntelFramebuffer@0
    • ​connector-type: 02000000, i.e LVDS output
    • port-number: 00
  2. AppleIntelFramebuffer@1
    • ​connector-type: 00080000, i.e HDMI output
    • port-number: 05
  3. AppleIntelFramebuffer@2
    • connector-type: 00040000, i.e DP (or DVI since, in practice, DVI also works with DP's connector-type)
    • port-number: 06

 

As such, your SKL layout only support 3 x possible display ports: the built-in LCD, the HDMI and 1 x DP/DVI. If you want 2 x DVI or 1 x DVI + 1 x DP, you have to set the framebuffer #1 to DVI/DP connector type. You'd lose HDMI capability in the process.

 

The other alternative would be to patch the layout 0x19160000 to support 4 x display outputs and this would be the built-in LCD, 1 x HDMI and 2 x DVI/DP.

 

Let's look at the code for layout 0x1916000 in High Sierra (10.13.3 beta2) SKL framebuffer kext :

00001619 00000000 C4820800 00000000
01030303 00002002 00005001 00000060
6C050000 6C050000 00000000 00000000
00000800 02000000 98000000 01050900
00040000 87010000 02040A00 00040000
87010000 FF000000 01000000 20000000
0F090000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
103C0E00 00000000 703C0E00 00000000
C03C0E00 00000000 01000000 08000000
01000000 00000000

In that layout code, the default output ports are as follows:

0000 0800 02000000 98000000 // --> 0000 = FB #0/port #0, 02000000 = LVDS connector type
0105 0900 00040000 87010000 // --> 0105 = FB #1/port #5, 02040000 = DP connector-type
0204 0A00 00040000 87010000 // --> 0204 = FB #2/port #6, 00040000 = DP connector-type

`

Now, in your Cover config, you apply a SKL framebuffer patch for HDMI output & audio (it's labelled HD 520 HDMI #1):

In: AppleIntelSKLGraphicsFramebuffer
Find: 01050900 00040000 
Replace by: 01050900 00080000 

This basically converts FB #1/port #5 from DP to HDMI as reflected in your IOReg. The patch is therefore effective and works as you stated yourself.

 

If you want 2 x DVI or 1 x DVI + 1 x DP, simply disable this Clover HDMI patch with Clover Configurator app (check the 'Disabled' case). I'm pretty sure it'll work. DP connector-type 00040000 usually work for DVI ports and it does in your case. This being said, FB #1/port #5 is usually reserved for HDMI output so if you still did not obtain 2 x independant displays, try to change FB #1/port #5 of the layout to FB #4/port #6 through the following Clover patch:

In: AppleIntelSKLGraphicsFramebuffer
Find: 01050900 00040000 
Replace by: 03060900 00040000 

`

If you want a 4th display output port, then we have to patch layout 0x19160000 much further. This will be done by:

  1. changing the layout from a 3xport model to a 4xport one
  2. add the 4th port entry (FB # + port # + priority + connector type + delay)

 

Going by experience with earlier Intel Framebuffers, the number of ports should be defined in the following code of the layout:

01030303 // --> ??/PipeCount/PortCount/FramebufferCount

and the 4th port would have to use FB #4/port #7:

0306

As such, a modified 4 x port layout could be:

00001619 00000000 C4820800 00000000
01030404 00002002 00005001 00000060     // 01030404 = 4 port/4 FB
6C050000 6C050000 00000000 00000000
00000800 02000000 98000000 01050900     // 0000=FB #0/port #0, 02000000=LVDS, 0105=FB #1/port #5
00080000 87010000 02040A00 00040000     // 00080000=HDMI, 0204=FB #2/port #6, 00040000=DP/DVI
87010000 03060A00 00040000 87010000     // 0306=FB#4/port #7, 00040000=DP/DVI
FF000000 01000000 20000000 0F090000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
103C0E00 00000000 703C0E00 00000000
C03C0E00 00000000 01000000 08000000
01000000 00000000

No guarantee that'll work but worth testing.

 

You can try the patch by installing the attached modified kext in /L/E (binary modded + kext versioning up'ed). It'll take precedence over the vanilla kext in /S/L/E, so it's very easy to revert back to the vanilla kext if required. Simply repair permissions and rebuild your cache.

AppleIntelSKLGraphicsFramebuffer.kext.zip

Link to comment
Share on other sites

×
×
  • Create New...