Jump to content

E6540 HD4600: No graphics acceleration or brightness control


ZainAnjum

Recommended Posts

  • Administrators

Ok, although your OC config only calls a limited and partially correct set of them (thankfully!), your OC setup is a complete mess in terms of ACPI tables and kexts with a mix of duplicate and irrelevant tables, incomplete arrangements and obsolete stuff... You need to clean up to avoid confusion and mistakes.

 

1) ACPI tables:

  • Get rid of all those duplicate DSDT/SSDT and all those SSDT-n tables that come from the past; only use those Dortania recommended tables. For instance, you have 2 x patched DSDT tables that contradict each other in terms of patches and 3 x CPU power management tables!
  • Your patched DSDT renames EHC2 to EH02 but does not do so for EHC1. I don't know where you got that patched DSDT from but I would get

2) Kexts:

  • You've got USBInjectAll AND a generated USBPorts kext; you should only have one or the other but certainly not both. If USBPorts has been generated for your E6540 platform, then keep it and get rid of USBInjectAll; otherwise, just boot with USBInjectAll and generate your platform specific USB ports mapping kexts with the usual tools.

3) OC Config:

  • ACPI patches:
    • I would apply the renaming of EHCx to EH0x.
    • I would apply the renaming of GFX0 to IGPU.
    • I would apply the renaming of B0D3 to HDAU (required for HDMI audio output)
  • Device Properties: your graphics settings are somehow incorrect:
    • Azul FB #12 0x0A260006 defines the following graphics arrangements:
    • ID: 0A260006, STOLEN: 32 MB, FBMEM: 19 MB, VRAM: 1536 MB, Flags: 0x0000000F
      TOTAL STOLEN: 52 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 116 MB, MAX OVERALL: 117 MB (123219968 bytes)
      Camellia: CamelliaDisabled (0), Freq: 2777 Hz, FreqMax: 2777 Hz
      Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
      [0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000030 - ConnectorLVDS
      [1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000087 - ConnectorDP
      [2] busId: 0x04, pipe: 9, type: 0x00000400, flags: 0x00000087 - ConnectorDP
      00000800 02000000 30000000
      01050900 00040000 87000000
      02040900 00040000 87000000
    • You've patched connector con1 for HDMI output and connector con2 for DVI output. Both patches are spot on, as described in my Haswell HD4x00 patching guide.
    • you patch fbmem to 0x01300000, i.e. 19MB. Obviously, there is absolutely no need for this on Haswell HD4600 so get rid of this.
    • Can't see why you inject properties for the AMD dGPU; it's totally unsupported in OS X/macOS and must be disabled/turned off to save battery life. I remind you that you use boot-arg -wegnoegpu to disable this dGPU.
  • SMBIOS:
    • use MBP11,4 (iGPU only) rather than MBP11,5 (dual GPU).

See our existing E6x40 guides and published technical information about Haswell graphics patching.

  • Thanks 1
Link to comment
Share on other sites

Updated things based on your instructions.
Sorry for my bad knowledge i could find Patch renaming of B0D3 to HDAU 
Removed fbmem to 00003001 but still facing graphics glitch when boot to lock screen then i have to press power button to put laptop on sleep/hibernate and then again press power button and then graphics glitch fix.
Please check my updated EFI.
https://we.tl/t-NagOFi15AR

Link to comment
Share on other sites

  • Administrators
  1. You're still using the patched DSDT, which I believe to be inadequate.
  2. You're still using the SSDT for CPU PM; get rid of it, it's totally useless with SSDT-PLUG that natively provides CPU PM.
  3. You're still using USBInjectAll + USBPorts kexts
  4. You need to manually add the B0D3 to HDAU renaming patch to your OC config. In case you had missed this, it's s simple hexadecimal find/replace operation.
  5. You're still using MBP11,5 SMBIOS instead of MBP11,4.

What are your laptop's specs in terms of CPU and screen resolution?

Post a new IOReg.

Link to comment
Share on other sites

  • Administrators

Re: renaming of B0D3 to HDAU, as I said, you need to do it yourself. Simply convert both strings to hex and, in the ACPI patching section of your OC config, just add the associated find/replace values and enable the patch. It'll be similar to the existing patches already present.

 

If you cannot boot without the patched DSDT, you need to add the remaining patched SSDT tables that are missing. Follow what I have suggested above several times now + the Dortania documentation for Haswell laptops. Note that, you'll need the patched SSDTs for HPET associated OC config's ACPI patches to obtain fully working USB3.0 port. I expect you would also require the SSDT-GPRW too. For brightness keys, you may apply the solution that I have described in the Technical Info/R&D section several years ago.

 

Note that:

  • SSDT-HPET requires the associated HPET renaming
  • SSDT-XOSI requires the associated OSID and _OSI renamings
  • SSDT-GPRW requires the associated GRPW method renaming
  • SSDT-BRT6 requires the associated BRT6 method renaming

 

My old E6440 guide is obsolete by today's standard now but it does list the various ACPI patches and kexts that were required to obtain a fully working laptop under OS X/macOS. Things will be identical for your E6540, except the USB ports mapping probably.

 

You may find this E5540 OpenCore guide useful too. You can certainly grab patched SSDT tables and associated OC config ACPI patches from the posted EFI.

  • Thanks 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...