Jump to content

Dell docking station video output (E7440)


princerock

Recommended Posts

First I would like to say Thank You to Jake Ho, Herve, and all other contributors to the forum. Not only you did all the research and experiment, but also you spent the time to put things together and made these wonderful guides. Really great work!

 

My laptop is Dell E7440 and I followed this guide to install El Capitan (10.11.6):

https://osxlatitude.com/forums/topic/8506-dell-latitude-inspiron-precision-vostro-xps-clover-guide/

 

HDMI works fine since Jake has has correct patch in the Clover config to begin with.

 

Then I found the DVI/DP ports on the docking station (PR03X) don't work. I found Herve's guide:

https://osxlatitude.com/forums/topic/8723-enabling-dvidphdmi-and-increasing-vram-with-intel-haswell4th-gen-hd420044004600etc-igpu/

 

So I tried to patch the Azul kext myself. It has 3 ports, #0, #5, and #6. With #0 assigned to built-in display and #5 to HDMI. #6 is currently assigned to DP and I changed it to DVI:

 

before: 02040900 00040000 87000000

after:    03061200 00020000 87000000

 

This does not work. I found that the port is actually #6 not #7 so I did this:

 

before: 02040900 00040000 87000000

after:    02041200 00020000 87000000

 

No go either. But at least, with this patch IOreg can detect the monitor. A "display0" was added to the table with correct vendorID, etc. But there is no signal received by the monitor.

 

I then tried all kinds of patches. I found no matter which port I set to (I tried DVI, DP, and even VGA), it always goes to the #6 port (which is framebuffer2). Does that mean all the ports on the docking station share the same port? If that is the case, how would dual monitor work?

 

So I went a step further and added the fourth port (#7). I tried different port number but no display is ever assigned to this port. They always go to #6.

 

I think the patch was working to some extend, as the system can detect the monitor and retrieve some info. However, there seems to be some missing link that the video out is missing. Does anyone know what that could be?

 

Can DSDT play a role here? How are these kext files interact anyway? At one point I tried replacing the HDMI port with a DVI port, then I found the audio stopped working. I thought that should be in AppleHDA kext. Why altering HDMI affects the internal speaker?

 

I noticed Herve mentioned that dual monitor setup stopped working after a Sierra update. I'm using El Capitan though.

 

Really appreciate any help or insight on debugging this issue.

Link to comment
Share on other sites

  • Administrators

How did you actually patch the Azul framebuffer kext? I wouldn't recommend mixing direct kext binary patching with Clover on-the-fly patching for instance. That's likely to cause issues. Do either/or.

 

The patches I detailed should definitely work under OS X El Capitan; as long as patching is done properly of course... I suggest you do one of the following (but not mix them):

  • apply your Azul binary patches in Clover (on-the-fly facility)
  • apply your Azul binary patches to a copy of the kext that you'll save in /L/E with a version increased to say 999 in order to supersede the vanilla kext in /S/L/E.

 

This being said, my tests were conducted with an E6440 using an E-Port Plus docking station:

E-Port_Plus_(K09A).jpg

 

I'll verify the behaviour with an E-Port I have at home and will let you know but, from memory, it worked just the same. It's the small K07A model with USB3.0 ports:

E-Port_(K07A).jpg

 

As far as I can see, it is entirely identical to what people often refer to as PR03X.

 

Link to comment
Share on other sites

Hi Herve,

 

Thank you very much for your quick reply. I'm encouraged that you think El Capitan should work :)

 

Sorry I didn't make it clear. I have been using Clover to patch the binary on the fly (this should be the final version used, correct?). I did NOT change the binary myself. So the first bullet you mentioned is what I'm doing now.

 

So your docking station has even more video ports. When they worked for you, did the displays all come from one framebuffer? I was surprised that no matter which port I use on the docking station (DVI, DP, or even VGA), they were all from #6 with framebuffer2. My understanding is that one framebuffer is linked with only one port (DVI OR DP). If they all are mapped to one framebuffer, how can one use both DVI or DP at the same time (or maybe that's not possible?)

 

Every time I can see the display being connected to the framebuffer in ioreg, but there is just no output. Also I found if I keep it plugged in to the docking station (DVI or DP) it usually causes crashes when I reboot the machine. Unplugging it and I don't have an issue. So I know the framebuffer patch is making a difference, but it's just not giving me the desired output.

 

I read through all the posts in your guide. It seems the last reply (by metrobug) described the same problem as I'm having now. He is also using 10.11.6, which is the same OS. He has a slightly different e7240, but the iGPU is the same HD4400 as mine.

 

 

Link to comment
Share on other sites

  • Administrators

As far as I can see, 10.11.6 last Azul framebuffer carries version 10.14.73. The layout 0x0a260006 is coded follows:

0600260A 01030303 00000002 00003001
00006000 00000060 D90A0000 D90A0000
00000000 00000000
00000800 02000000 30000000     // port #0, LVDS
01050900 00040000 87000000     // port #5, DP
02040900 00040000 87000000     // port #6, DP
FF000000
01000000 40000000 0F000000 01010000
04000000 00000000 0E000000 00000000

So, same code as before...

Link to comment
Share on other sites

That's right. This is what I changed to:

 

0600260A 01030303 00000002 00003001

00009000 00000060 D90A0000 D90A0000

00000000 00000000

00000800 02000000 30000000

01051200 00080000 87000000

02041200 00020000 87000000

FF000000

01000000 40000000

 

I also tried setting priority to "09", no change.

Link to comment
Share on other sites

  • Administrators

Ok, I went back into El Capitan 10.11.6 Build 15G18013 (which I had not done for some time) and applied the Security Upgrade 2018-0004 10.11.6. Once I rebooted into 10.11.6 Build 15G22010, I noticed an updated Azul framebuffer kext v10.14.74.

 

I patched this for my usual HDMI + DVI settings (patched kext in /S/L/E for a change), repaired permissions, rebuild cache and rebooted. On reboot, no issue, DVI is fully operational off the K07A (PR03X) docking station on port #7 with connector-type 00020000:

E6440_HD4600_DualScreen_DVI.png

 

E6440_HD4600_DualScreen_Res.png

 

SysProfiler_Extensions.png

 

 

E6440_HD4600_IOReg_iGPU.png

 

As far as I'm concerned, your patch is therefore erroneous and you should be using:

03061200 00020000 87000000

not

02041200 00020000 87000000

 

Just in case, I've tried again to patch port #6 with DVI connector and it does not work. So, I believe your above patch will never work, unless things are different with HD4400 on the E7440, but I somehow doubt it. 

 

Link to comment
Share on other sites

  • Administrators

By the way, make sure you don't have a duff connection when you attach your E7440 to your PR03X. I've just noticed that mine was not working properly if I simply hooked my E6440 down on the docking station: the On/Off + Eject buttons of the docking station often did no lit up in blue.

IMG_1672.JPG

 

I guess the angle between the laptop and the docking station connector caused the issue and I had to lift up the front of the laptop for the connection to work properly. Without a good connection, no DVI output...

Link to comment
Share on other sites

Herve,

 

Thank you so much for verifying your setup! Really appreciate you spent the time debugging someone else's problem.

 

Yes I confirmed I have a good connection with the docking station. It actually has two positions and I happen to have both E5400 and E7440, which use different positions. I confirmed the eject button is lit blue.

 

I tried port #7 and this is my patch:

 

0600260A 01030303 00000002 00003001 00009000 00000060 D90A0000 D90A0000 00000000 00000000

00000800 02000000 30000000

01051200 00080000 87000000

03061200 00020000 87000000

 

Note that I kept the 9MB cursor patch at the same time (not entirely sure what it does though).

 

First I tried patching no the fly using Clover, and second tried patching directly on the binary on S/L/E (and disabled Clover patch). Both gave me the same result. Still no display :( My ioreg looks as follows:

 

image.thumb.png.5083f6cedcc05f3dc26e058821148ab2.png

 

The Display Pipe is FFFF and there is no display detected.

 

Could it be a problem of DSDT? I'm using the "default" DSDT comes with Jake's boot pack in his guide. I have not spent the time to re-compile my own one. Can that be the problem?

 

Anyway, somehow port #6 gives me a display with no signal sending to it. And port #7 gives me nothing at all.

 

Thanks,

 

Link to comment
Share on other sites

OK to clean things up I did a re-install following Jake's guide again. This time I reused the kexts and config.plist from the current Clover folder (maybe a bad choice?). Well, I still don't have the DVI output from the dock. What's worse, it seems my HDMI output is having some problem too. This is the HDMI port built into the laptop, and it was working fine. After this reinstallation, the HDMI still works (external monitor), but I somehow lost my internal display! No matter which choice I use (mirror internal, mirror external, use separate), I only get output on the external display. If I disconnect the HDMI cable, I get nothing. Not sure what happened. Has anyone seen any problem like this? How to get the internal display back?

Link to comment
Share on other sites

×
×
  • Create New...