Jump to content
Hervé

Enabling DVI/DP/HDMI and increasing VRAM with Intel Haswell/4th gen HD4200/4400/4600/etc. iGPU

Recommended Posts

Hi @Herve, Thanks for your reply. Yes I have followed your guide and HDMI works perfectly, both video and audio.

 

However, I have a hard time getting any of the video port to work from the docking station (HDMI port is built-in). I have used the patch you suggested for the DVI:
 

Find:  0204 0900 0004 0000

Replace: 0204 1200 0002 0000

 

I can confirm the port # is 0204, since ioreg shows that it has identified the display (it has all the vendor/product/EDID info). However, there is just no output in the monitor. Both the built-in and external display blacked out for a second when I plugged in the cable, but then the external display went blank (built-in display comes back and it works fine). I've tried different cables and multiple monitors to no avail.

 

What kext do you have regarding video? Do you use IntelGraphicsFixup or WhateverGreen?

 

Do you have any KP issue when DVI or DP port is plugged in? When I have this cable plugged in, it crashes (KP) every time when I put the laptop to sleep or trying to shutdown. I'm wondering if I need some special DSDT patch to make it work.

 

Share this post


Link to post
Share on other sites

I use none of those add-on kexts. I've not experienced any KP either. If I close the lid, video switches to external display and I can sleep/wake my E6440 without issues when external displays are connected.

 

The only thing I've noticed is that if I connect my HD TV through HDMI (off the laptop) or DP (off the dock), I'm unable to get video on the DVI display. macOS shows 3 x screens but the 2nd external DVI screen stays black saying it supports 1280*1024@60Hz max; yet that's what the laptop is pushing out...

 

Post your IOReg + CloverEFI folder (without Themes subfolder) to investigate.

Share this post


Link to post
Share on other sites

Thank you, @Herve. Attached zip has the files. I attached the kextcache output as well.

 

As you can see in IOReg, port 0204 is correctly patched to 0002 (DVI). It can even detect the display after I plugged in the cable (there are entries in IOReg). However, no external display is found in Sys Pref->Display or Apple->About this Mac->Display. With the cable plugged in, I always get KP when trying to sleep or shutdown.

 

port 0105 is patched to 0008 (HDMI) and it works for the most part. The only issue is, if I close the lid and boot the laptop with HDMI connected, I cannot open lid or put it to sleep or shutdown. Any of these action causes KP. If I boot it with lid open, everything works.

 

I suspect DSDT may have special methods to handle dock and undock, and those code need to be patched. But it looks like it's all working for you.

 

Any help is appreciated. Thank you for your time!

 

Share this post


Link to post
Share on other sites

On my side, no DSDT patch required to use the docking station, no. However, note that warm docking and undocking (i.e. when system is up and running) is indeed badly supported. For the rest, everything works Ok.

 

I don't know what to think of your kextcache log/output; it's like all kexts are mentioned twice and I don't understand that. I never have such output. I would have assumed you only have 1 x copy of the add-on kexts in your /L/E folder, right?

 

I don't know how the mixed DSDT with vanilla GFX0 reference + SSDT-PNLF with IGPU references + Clover renaming of GFX0 to IGPU actually operate together. These should all merge in ACPI so maybe there's no issue on that front. Not running with Clover, I had no choice but patch all the ACPI tables into a common manner.

 

What I can say on the ACPI front though, is that, on my E6440, I'm not using any SSDT-PNLF nor any PNLF device in my patched DSDT and that's not causing me any brightness-related issue. Maybe you should try without especially as I wonder if that SSDT-PNLF really is applicable to your system. Why? Because it declares some external RCMF objects that are nowhere to be found in any other table but in that one...

 

Share this post


Link to post
Share on other sites

Try this Clover config with this DSDT, keeping only SSDT-XCPM in Clover's ACPI/patched folder (i.e. remove SSDT-PNLF + SSDT-AppleALC + SSDT-UIAC). Just to test...

config.plist.zip

DSDT.aml.zip

 

Changes applied to your Clover config:

  • removed all device renaming from ACPI tab
  • removed VBoxHFS from Disable Drivers tab
  • disabled Azul Framebuffer 9MB cursor patch from Kernel & Kext Patches tab
  • renewed serial #/SMUUID/MLB

 

Changes applied to your patched DSDT:

  • renamed EHCx devices to EH0x
  • removed PWR method from GLAN/HDEF/EH0x devices
  • injected power-related parameters to EH0x + XHC devices
  • renamed GFX0 device to IGPU
  • injected desktop HD4600 id 0x0412 + Azul layout 0x0A260006 to IGPU
  • renamed B0D3 device to HDAU
  • injected _DSM method to GLAN device
  • injected _DSM method to HDEF device
  • fixed minor size mismatches between tags and fields

'hopefully, not missed anything

Share this post


Link to post
Share on other sites

Thanks again, @Herve!

 

On 9/20/2018 at 11:48 AM, Hervé said:

However, note that warm docking and undocking (i.e. when system is up and running) is indeed badly supported.

Warm docking would be nice to have but I don't care. As long as I can get the video out from the docking station and there is no KP on sleep/shutdown, I will be happy.

 

On 9/20/2018 at 11:48 AM, Hervé said:

I don't know what to think of your kextcache log/output; it's like all kexts are mentioned twice and I don't understand that. I never have such output. I would have assumed you only have 1 x copy of the add-on kexts in your /L/E folder, right?

That's correct. I have one copy of most kext in /L/E only. The only exception are FakeSMC and VoodooPS2Controller-R6. I was told these are considered "essential" and need to be placed in Clover folder as well (since Clover needs them too). I have no idea why it shows twice in the kextcache log.

 

On 9/20/2018 at 11:48 AM, Hervé said:

I don't know how the mixed DSDT with vanilla GFX0 reference + SSDT-PNLF with IGPU references + Clover renaming of GFX0 to IGPU actually operate together.

I might be wrong but I was told the Clover renaming patch only applies to DSDT. So the patched DSDT should have IGPU, same as SSDT-PNLF.

 

On 9/20/2018 at 11:48 AM, Hervé said:

Because it declares some external RCMF objects that are nowhere to be found in any other table but in that one...

I need to check on this. Thank you for pointing it out!

 

On 9/20/2018 at 1:20 PM, Hervé said:

Try this Clover config with this DSDT, keeping only SSDT-XCPM in Clover's ACPI/patched folder (i.e. remove SSDT-PNLF + SSDT-AppleALC + SSDT-UIAC). Just to test.

Thank you for making these files for me. I tried it out. However, it seems it didn't fix it. The external monitor still gets no signal :( IOReg still shows the monitor but only internal display shows up in SysPref->Display. Attached are the files I have now.

 

 

Share this post


Link to post
Share on other sites

What if you reduce the resolution of the built-in LCD to say 1600x900?

 

Also, it seems you did not remove the WG and Fixup kexts and then rebuilt your cache: they're still showing in the kextcache log...

Share this post


Link to post
Share on other sites

Sorry forgot about the kexts. This time I removed WG and FakePCIIntel*. Tried different resolutions of built-in LCD but external display is still blank.

 

I think when I plugin the the cable there IS some signal sent to the monitor, because the monitor wakes up and the built-in screen saver stops. However, immediately after that there is no signal and the monitor goes to sleep again. IOReg has the correct monitor information registered (vendor id, product id, EDID). But SysPref->Display cannot find another monitor.

 

I also tried the sleep function and it still breaks (KP) :(

 

At some point (several days ago) I was able to get the video out on the external display. But while trying to fix the sleep/shutdown KP I tried different things, and now I cannot even go back to that state. I can never get it NOT cause KP when the docking station video cable is plugged in.

 

Although the specs are very similar between a E6440 and E7440, I'm wondering if there is some fundamental differences. I've searched for days but haven't found any E7440 working with docking station (while there might not be many users trying hackingtosh). My concern is if there is some "internal" bug that prevents it from working properly. But the laptop did work 100% with the dock and video when Windows was installed.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...