Jump to content

Last fix needed...HDMI Audio


mirio
 Share

58 posts in this topic

Recommended Posts

Hi guys I fixed almost everything on my laptop thanks to good people in this forum :)

The only missing things are HDMI Audio and iMessage/FaceTime (App Store and iCloud works)

I attacched the send-me file (IOReg is separated). Mainly I need the HDMI Audio fix (HDMI video works fine).

 

About iMessage I tried almost everything, maybe except for NVRAM stuff but I always get the error "Contact the customer service" and on other forums people say that when this happen I can do nothing.

About Power Management instead I followed Rehabman's guide and I created a SSDT.aml but I'm not sure if it works. Laptop seems to be less hot

 

my specs:

HP Pavilion 15 (motherboard HP 80A4)

Intel Core i5 6200U Skylake

Intel Graphics 520 + Nvidia 940M

send-me.zip

Edited by mirio
Link to comment
Share on other sites

Intel IGPU HDMI/DP audio

This guide will explain how to implement HDMI audio for laptops equipped with HDMI ports connected to the Intel integrated GPU. Some of the content also applies to laptops equipped with a DP connector. Laptops with external DP ports require a subset of the patches presented here.

In order to implement HDMI/DP, the following requirements must be met:

- native Audio with AppleHDA (for more information, read the FAQ... implementing onboard audio is outside the scope of this guide)

- appropriate framebuffer (kext) patches to change the connector-type to match the physical connector. In this guide, we use WhateverGreen.kext to effect these patches.

 renaming B0D3 to HDAU (device at 0x00030000)

- injecting property "hda-gfx" = "onboard-1" on HDAU, IGPU, HDEF objects.

- Haswell/Broadwell: injecting layout-id on HDAU to match layout-id on HDEF

- Haswell: installing FakePCIID.kext and FakePCIID_Intel_HDMI_Audio.kext

Note: Typically, for PC laptops, the ACPI identifier for the Intel graphics device is GFX0 (some Lenovo products use VID). Since this identifier is typically changed to IGPU to enable IGPU power management, this guide will refer to it as IGPU. Keep that in mind if you haven't yet implemented IGPU PM.

Note: In case you're wondering, Skylake (and Kaby Lake, and Coffee Lake) are similar to HD3000/HD4000 in that the HDMI/DP codec is on HDEF (typically HDAS in PC DSDT, renamed to HDEF for OS X) instead on a separate device HDAU.
Your config.plist will already contain the renames required.

In addition, you will find many useful, but commented out patches/injections in config.plist/Devices/Properties/PciRoot(0)/Pci(0x02,0).

For example, this is from config_HD615_620_630_640_650.plist:
KabyLake IGPU Properties.png

The rest of this guide will assume you're using the guide plists or have copied the required injections from it to your own config.plist.


Frame buffer patching

The data associated with ig-platform-id (or snb-platform-id with Sandy Bridge), has, for each connector, bits that represent the type of the connector (and other connector related data). Since most Apple products use DP, most connectors by default are DP. In order to get HDMI audio to work, you must patch the kext so the connector data matches the physical connector. If your connector is DP, nothing needs to be done, but if your port is HDMI, you will likely need to patch the connector so it becomes an HDMI connector instead of DP connector.

DP connectors are identified in ioreg by connector-type <00 04 00 00>
HDMI connectors are identified in ioreg by connector-type = <00 08 00 00>

As mentioned above, the plists linked by my guide, you will find patches (for WhateverGreen) for each connector in various ig-platform-id data.
The patches in each are disabled by default (by #). The patch properties can be enabled by eliminating the leading # character.

The patch you need to use depends on which port the HDMI connector is plugged into. Each port has its own AppleIntelFramebuffer node under IGPU. For example, this image shows each framebuffer node under IGPU on my Lenovo u430:

IGPU framebuffers.png

If there were an HDMI device plugged into one of these framebuffers, you would see AppleDisplay under the respective framebuffer, much as you see AppleBacklightDisplay under the framebuffer associated with the LVDS port (laptop internal display).

The the case of my Lenovo u430, the HDMI port is associated with AppleIntelFramebuffer@2. Each framebuffer (@0, @1, @2, @3) corresponds to a set of connector data inside the ig-platform-id data, which resides in the framebuffer kext binary. So, for example, to patch the connector-type as HDMI for framebuffer@2 we need to enable two of the properties:

framebuffer-con2-enable=1
framebuffer-con2-type=<00 08 00 00>

In Xcode:

@2 patched HDMI.png



For some laptops, you may find the need to change the "pipe" value in the framebuffer connector. This is especially true if your laptop reboots when you plug the HDMI device into the HDMI port (I suppose it could also happen with a DP or mDP connector).

It is not fully understood what the meaning of the pipe value is, but various other connectors use '12' instead of '09' (in the unmodified kext) and it has been found that changing pipe to '12' can fix the reboot problem. If we were to need this for @2 (as in example above), we would add/enable an additional WhateverGreen patching property:

framebuffer-con2-pipe=<12 00 00 00>

In Xcode:

@2 pipe=12.png



Since it may be impossible to determine which connector is used by your HDMI port if the laptop is rebooting, you may need to enable the pipe=12 on all connectors initially.

Such as:
framebuffer-con1-enable=1
framebuffer-con1-pipe=<12 00 00 00>
framebuffer-con2-enable=1
framebuffer-con2-pipe=<12 00 00 00>
framebuffer-con3-enable=1
framebuffer-con3-pipe=<12 00 00 00>

In Xcode:

all pipe 12.png



Once you determine the actual port used by your HDMI (or DP) you can go back and disable the unneeded patches, leaving only the one that is actually associated with your port.

Back to the u430 example, before patching for HDMI-audio, the connector-type for AppleIntelFramebuffer@2 is <00 04 00 00>. After patching, it will change to <00 08 00 00>.

Before patching:
0204 connector-type-DP.png

After patching:
0204 connector-type-HDMI.png


Renaming B0D3 to HDAU

Sandy Bridge (HD3000) and Ivy Bridge (HD4000) use a single audio device (HDEF) with multiple codecs (also Skylake and later). Both onboard audio and HDMI audio live on the same HDEF device. As a result, there is no second device, so no need to rename it to HDAU.

Haswell and Broadwell use a separate device for the HDMI audio codec. Typically it is named B0D3 (it can be defined in either DSDT or an OEM SSDT). You will see the B0D3 node under PCI0 in ioreg. For OS X, it must be renamed to HDAU. The address of the device is always 0x00030000.

The laptop guide plists already have a B0D3->HDAU rename in config.plist/ACPI/DSDT/Paches.


Injecting property hda-gfx (and layout-id)

For Sandy Bridge and Ivy Bridge (HD3000/HD4000), "hda-gfx"="onboard-1" must be injected on IGPU and HDEF.

For Haswell and Broadwell, "hda-gfx"="onboard-1" must be injected on IGPU and HDAU. It is not necessary to inject "hda-gfx" on HDEF, although it doesn't seem to cause a problem.

You can inject "hda-gfx" by enabling the property in the appropriate config.plist/Devices/Properties section:
IGPU is at PciRoot(0)/Pci(0x02,0)
HDEF is at PciRoot(0)/Pci(0x1b,0) on up to and including Broadwell
HDEF is at PciRoot(0)/Pci(0x1f,3) on Skylake and later
HDAU, specific to Haswell/Broadwell is at PciRoot(0)/Pci(0x03,0)

In this shot, you can see "hda-gfx" enabled for a Broadwell system:

hda-gfx haswell:broadwell.png



Note also that layout-id is enabled for the HDAU, PciRoot(0)/Pci(0x03,0). The layout-id injected there must match the layout-id injected on HDEF (not shown, but at PciRoot(0)/Pci(0x1b,0).

For a Haswell system, this is what a completed Devices/Properties might look like for @2 HDMI pipe=12:
(note: stripped of most commented entries)
 

full hdmi haswell.png



Installing FakePCIID.kext FakePCIID_Intel_HDMI_Audio

The AppleHDAController kext implements a whitelist for certain HDAU devices. Some PCs use devices that are not directly supported. But FakePCIID_Intel_HDMI_Audio can spoof the PCI IDs in order to satisfy AppleHDAController's whitelist check.

Install both FakePCIID.kext and FakePCIID_Intel_HDMI_Audio.kext: https://github.com/RehabMan/OS-X-Fake-PCI-ID

Read the README to find pre-built kext binaries.

There is no harm in installing FakePCIID_Intel_HDMI_Audio even in the case you have a supported HDAU device. The kext will not attach to a device that is natively supported.


Checking your work

You can tell if everything is implemented completely within IORegistryExplorer.

Initial IORegistryExplorer setup:
- Preferences->Find, check "Property Keys"

Checking for "hda-gfx"="onboard-1"
- in the search box, type "hda-gfx".
- you should find it on HDEF/IGPU (Sandy/Ivy/Skylake), and on HDAU/IGPU (Haswell/Broadwell).
- looking at at the property value, you should see "onboard-1"

Checking for HDAU (Haswell/Broadwell only):
- you should find HDAU (not B0D3) under PCI0

Checking layout-id:
- in the search box, type "layout-id"
- you should find it on HDAU (if applicable) and HDEF
- if you examine the value in each HDAU and HDEF, HDAU should have the same value

Checking the framebuffer:
- check the framebuffer under IGPU that corresponds to your HDMI/DP connector
- it should match the physical connector (DP: <00 04 00 00>, HDMI: <00 08 00 00>)

Check under HDAU for FakePCIID loading:
- if you have an unsupported HDAU, you will notice FakePCIID has attached to the HDAU device

If only one of the requirements is not met, it will not work.

  • Like 1
Link to comment
Share on other sites

Thanks for

15 minutes ago, Rocky12 said:

Intel IGPU HDMI/DP audio

This guide will explain how to implement HDMI audio for laptops equipped with HDMI ports connected to the Intel integrated GPU. Some of the content also applies to laptops equipped with a DP connector. Laptops with external DP ports require a subset of the patches presented here.

In order to implement HDMI/DP, the following requirements must be met:

- native Audio with AppleHDA (for more information, read the FAQ... implementing onboard audio is outside the scope of this guide)

- appropriate framebuffer (kext) patches to change the connector-type to match the physical connector. In this guide, we use WhateverGreen.kext to effect these patches.

 renaming B0D3 to HDAU (device at 0x00030000)

- injecting property "hda-gfx" = "onboard-1" on HDAU, IGPU, HDEF objects.

- Haswell/Broadwell: injecting layout-id on HDAU to match layout-id on HDEF

- Haswell: installing FakePCIID.kext and FakePCIID_Intel_HDMI_Audio.kext

Note: Typically, for PC laptops, the ACPI identifier for the Intel graphics device is GFX0 (some Lenovo products use VID). Since this identifier is typically changed to IGPU to enable IGPU power management, this guide will refer to it as IGPU. Keep that in mind if you haven't yet implemented IGPU PM.

Note: In case you're wondering, Skylake (and Kaby Lake, and Coffee Lake) are similar to HD3000/HD4000 in that the HDMI/DP codec is on HDEF (typically HDAS in PC DSDT, renamed to HDEF for OS X) instead on a separate device HDAU.
Your config.plist will already contain the renames required.

In addition, you will find many useful, but commented out patches/injections in config.plist/Devices/Properties/PciRoot(0)/Pci(0x02,0).

For example, this is from config_HD615_620_630_640_650.plist:
KabyLake IGPU Properties.png

The rest of this guide will assume you're using the guide plists or have copied the required injections from it to your own config.plist.


Frame buffer patching

The data associated with ig-platform-id (or snb-platform-id with Sandy Bridge), has, for each connector, bits that represent the type of the connector (and other connector related data). Since most Apple products use DP, most connectors by default are DP. In order to get HDMI audio to work, you must patch the kext so the connector data matches the physical connector. If your connector is DP, nothing needs to be done, but if your port is HDMI, you will likely need to patch the connector so it becomes an HDMI connector instead of DP connector.

DP connectors are identified in ioreg by connector-type <00 04 00 00>
HDMI connectors are identified in ioreg by connector-type = <00 08 00 00>

As mentioned above, the plists linked by my guide, you will find patches (for WhateverGreen) for each connector in various ig-platform-id data.
The patches in each are disabled by default (by #). The patch properties can be enabled by eliminating the leading # character.

The patch you need to use depends on which port the HDMI connector is plugged into. Each port has its own AppleIntelFramebuffer node under IGPU. For example, this image shows each framebuffer node under IGPU on my Lenovo u430:

IGPU framebuffers.png

If there were an HDMI device plugged into one of these framebuffers, you would see AppleDisplay under the respective framebuffer, much as you see AppleBacklightDisplay under the framebuffer associated with the LVDS port (laptop internal display).

The the case of my Lenovo u430, the HDMI port is associated with AppleIntelFramebuffer@2. Each framebuffer (@0, @1, @2, @3) corresponds to a set of connector data inside the ig-platform-id data, which resides in the framebuffer kext binary. So, for example, to patch the connector-type as HDMI for framebuffer@2 we need to enable two of the properties:

framebuffer-con2-enable=1
framebuffer-con2-type=<00 08 00 00>

In Xcode:

@2 patched HDMI.png



For some laptops, you may find the need to change the "pipe" value in the framebuffer connector. This is especially true if your laptop reboots when you plug the HDMI device into the HDMI port (I suppose it could also happen with a DP or mDP connector).

It is not fully understood what the meaning of the pipe value is, but various other connectors use '12' instead of '09' (in the unmodified kext) and it has been found that changing pipe to '12' can fix the reboot problem. If we were to need this for @2 (as in example above), we would add/enable an additional WhateverGreen patching property:

framebuffer-con2-pipe=<12 00 00 00>

In Xcode:

@2 pipe=12.png



Since it may be impossible to determine which connector is used by your HDMI port if the laptop is rebooting, you may need to enable the pipe=12 on all connectors initially.

Such as:
framebuffer-con1-enable=1
framebuffer-con1-pipe=<12 00 00 00>
framebuffer-con2-enable=1
framebuffer-con2-pipe=<12 00 00 00>
framebuffer-con3-enable=1
framebuffer-con3-pipe=<12 00 00 00>

In Xcode:

all pipe 12.png



Once you determine the actual port used by your HDMI (or DP) you can go back and disable the unneeded patches, leaving only the one that is actually associated with your port.

Back to the u430 example, before patching for HDMI-audio, the connector-type for AppleIntelFramebuffer@2 is <00 04 00 00>. After patching, it will change to <00 08 00 00>.

Before patching:
0204 connector-type-DP.png

After patching:
0204 connector-type-HDMI.png


Renaming B0D3 to HDAU

Sandy Bridge (HD3000) and Ivy Bridge (HD4000) use a single audio device (HDEF) with multiple codecs (also Skylake and later). Both onboard audio and HDMI audio live on the same HDEF device. As a result, there is no second device, so no need to rename it to HDAU.

Haswell and Broadwell use a separate device for the HDMI audio codec. Typically it is named B0D3 (it can be defined in either DSDT or an OEM SSDT). You will see the B0D3 node under PCI0 in ioreg. For OS X, it must be renamed to HDAU. The address of the device is always 0x00030000.

The laptop guide plists already have a B0D3->HDAU rename in config.plist/ACPI/DSDT/Paches.


Injecting property hda-gfx (and layout-id)

For Sandy Bridge and Ivy Bridge (HD3000/HD4000), "hda-gfx"="onboard-1" must be injected on IGPU and HDEF.

For Haswell and Broadwell, "hda-gfx"="onboard-1" must be injected on IGPU and HDAU. It is not necessary to inject "hda-gfx" on HDEF, although it doesn't seem to cause a problem.

You can inject "hda-gfx" by enabling the property in the appropriate config.plist/Devices/Properties section:
IGPU is at PciRoot(0)/Pci(0x02,0)
HDEF is at PciRoot(0)/Pci(0x1b,0) on up to and including Broadwell
HDEF is at PciRoot(0)/Pci(0x1f,3) on Skylake and later
HDAU, specific to Haswell/Broadwell is at PciRoot(0)/Pci(0x03,0)

In this shot, you can see "hda-gfx" enabled for a Broadwell system:

hda-gfx haswell:broadwell.png



Note also that layout-id is enabled for the HDAU, PciRoot(0)/Pci(0x03,0). The layout-id injected there must match the layout-id injected on HDEF (not shown, but at PciRoot(0)/Pci(0x1b,0).

For a Haswell system, this is what a completed Devices/Properties might look like for @2 HDMI pipe=12:
(note: stripped of most commented entries)
 

full hdmi haswell.png



Installing FakePCIID.kext FakePCIID_Intel_HDMI_Audio

The AppleHDAController kext implements a whitelist for certain HDAU devices. Some PCs use devices that are not directly supported. But FakePCIID_Intel_HDMI_Audio can spoof the PCI IDs in order to satisfy AppleHDAController's whitelist check.

Install both FakePCIID.kext and FakePCIID_Intel_HDMI_Audio.kext: https://github.com/RehabMan/OS-X-Fake-PCI-ID

Read the README to find pre-built kext binaries.

There is no harm in installing FakePCIID_Intel_HDMI_Audio even in the case you have a supported HDAU device. The kext will not attach to a device that is natively supported.


Checking your work

You can tell if everything is implemented completely within IORegistryExplorer.

Initial IORegistryExplorer setup:
- Preferences->Find, check "Property Keys"

Checking for "hda-gfx"="onboard-1"
- in the search box, type "hda-gfx".
- you should find it on HDEF/IGPU (Sandy/Ivy/Skylake), and on HDAU/IGPU (Haswell/Broadwell).
- looking at at the property value, you should see "onboard-1"

Checking for HDAU (Haswell/Broadwell only):
- you should find HDAU (not B0D3) under PCI0

Checking layout-id:
- in the search box, type "layout-id"
- you should find it on HDAU (if applicable) and HDEF
- if you examine the value in each HDAU and HDEF, HDAU should have the same value

Checking the framebuffer:
- check the framebuffer under IGPU that corresponds to your HDMI/DP connector
- it should match the physical connector (DP: <00 04 00 00>, HDMI: <00 08 00 00>)

Check under HDAU for FakePCIID loading:
- if you have an unsupported HDAU, you will notice FakePCIID has attached to the HDAU device

If only one of the requirements is not met, it will not work.

 

Thanks for the reply, I'm not sure if I'm able to follow this guide perfectly. Mainly I'm worried about breaking my perfect actual setup with everything else working ahah.

I hope somebody here can do this for me, I appreciate a lot :)

Link to comment
Share on other sites

iMessage/FaceTime (App Store and iCloud 

google is your friend  MLB+ROM 

it s not easy but if you use just a little bit common sense you will definitely find what you are looking for

 

i did that and you can do 2  good luck

  • Like 1
Link to comment
Share on other sites

1 minute ago, Rocky12 said:

iMessage/FaceTime (App Store and iCloud  

google is your friend  MLB+ROM 

it s not easy but if you use just a little bit common sense you will definitely find what you are looking for

 

i did that and you can do 2  good luck

Even with the Apple customer service error?

Link to comment
Share on other sites

18 hours ago, Rocky12 said:

why not if this can solve your problem just give it  a go

 

Made some investigation, called Apple customer Service using a real mac serial number and the result is that my Apple ID is in the black list for iMessage and Facetime, maybe because in the past I tried too many times to fix it.

So a solution maybe would be creating a new account but I cant do at the moment because of some important data stored that I need. Sad final :(

 

I'm still looking for HDMI Audio fix is someone can solve it for me, thanks everyone

Edited by mirio
Link to comment
Share on other sites

Audio is an essential component of any system. Having a HDMI/DP Audio is a great pleasure on Mac. With this feature enabled, you can enjoy watching movies, shows on your big screen television or external Monitor.

The following is a guide for enabling HDMI/DP Audio for laptops.

Before using this guide, we recommend you to perform a clean installation of macOS.

The method is supported on the following.

Chipsets :

  • Sandy Bridge
  • Ivy Bridge
  • Haswell
  • Broadwell
  • Skylake
  • Kaby Lake
  • Coffee Lake

macOS/OS X versions:

  • Supports macOS/OS X versions: 10.13.x, 10.12.x, 10.11.x

Supported Vendors:

  • Intel HD Graphics

Requirements

  • Any of the above chipset
  • Any of the above macOS/OS X version
  • Working Intel HD Graphics with correct VRAM and Full QE/CI
  • Patched AppleHDA


Before you start

Notes :

  • If you've used any other method such as VoodooHDA, AppleALC, or aDummyHDA, make sure to remove those files to avoid conflicts.
  • If you're using any injector, make sure to remove it.
  • AppleHDADisabler, HDAEnabler should be removed.
  • For HDMI audio, you need to inject the hda-gfx, use a patch in config.plist file for the HDMI/DP port and a valid ig-platform id.
  • For some Chipsets such as Haswell and Broadwell, renaming B0D3 to HDAU is necessary.
  • Your Graphics should be working natively with the particular OS X or macOS version and should have no issues.
  • Your Audio should be working using AppleHDA or AppleALC method. For more information, read here: https://www.elitemacx86.com/threads/a-beginners-guide-how-to-patch-applehda-for-laptops.184/
  • For unsupported HDMI Audio Device, FakePCIID.kext and FakePCIID_Intel_HDMI_Audio.kext installation is required


Mount your EFI Partition
The very first step is to mount the EFI partition and make the necessary changes
Open your EFI partition and then open your DSDT

Common Patches (DSDT)

  • Rename GFX0 to IGPU
  • Rename B0D3 to HDAU

Note :

Acpi patches

  • Change HDAS to HDEF

Open your EFI partition and then open your Config.plist file with Clover Configurator.
Go to Acpi Tab then DSDT section, Find Patches and type following:

Code:
Comment: Rename HDAS to HDEF
Find* [HEX]: 48444153
Replace [HEX]: 48444546

Layout ID

  • Layout ID as per the AppleHDA

Go to Device Tab then Audio section and delete existing value if any and type your layout ID.
Under Audio section, be sure to check the ResetHDA Check Box if not checked already.

Notes :

  • The DSDT must be patched with the same layout ID.
  • Use Audio layout according to your Audio Codec and also change it while renaming B0D3.

Add Device Properties (hda-gfx)

  • Inject hda-gfx=onboard-1

Go to Add Properties section and then add the following :

Code:
Device: IntelGFX
Key: hda-gfx
Value: 6F6E626F6172642D3100
Value Type: DATA
Comment: hda-gfx=onboard-1 for HDMI audio
Code:
Device: HDA
Key: hda-gfx
Value: 6F6E626F6172642D3100
Value Type: DATA
Comment : hda-gfx=onboard-1 for HDMI audio
Code:
Device: HDA
Key: layout-id
Value: 03000000
Value Type: DATA
Comment: layout-id=3
 

Note :

  • Change the layout according to your Audio Codec in Device properties section, in the last patch.


Kernel and Kext Patches

  • A HDMI/DP Audio patch

Go to Kernel and Kext Patches Tab and type the following :

Sandy Bridge (Intel HD 3000)

Code:
Name: AppleIntelSNBGraphicsFB
Find: 02050000 00040000 07000000 03040000 00040000 09000000 04060000 00040000 09000000
Replace: 02050000 00080000 07000000 03040000 00080000 09000000 04060000 00080000 09000000
Comment: Laptop Intel HD3000 HDMI (snb-platform-id 0x00010000)

Ivy Bridge (Intel HD 4000)

Code:
Name: AppleIntelFramebufferCapri
Finde: 30000000 02050000 00040000 07040000
Replace: 30000000 02050000 00080000 06000000
Comment: HDMI-audio HD4000 0x01660003, port 0205

Haswell (Intel HD 4200, 4400, 4600)

Code:
Name: com.apple.driver.AppleIntelFramebufferAzul
Find: 020409000004000087000000
Replace: 020409000008000087000000
Comment: HDMI-audio, port 0204, 0x0a260005 0x0a260006

Broadwell (Intel HD 5300, 5500, 6000)

Code:
Name: com.apple.driver.AppleIntelBDWGraphicsFramebuffer
Find: 01050B00 00040000 07050000
Replace: 01050B00 00080000 82000000
Comment: HDMI-audio, port 0105, 0x16120003 0x16120005 0x16120006 0x16260006

Skylake (Intel HD 515, 520, 530, 540, 550)

Code:
Name: AppleIntelSKLGraphicsFramebuffer
Find: 00000800020000009800000001050900000400008701000002040A000004000087010000
Replace: 00000800020000009800000001050900000800008701000002040A000008000087010000
Comment: Laptop Intel HD520 HDMI (ig-platform-id 0x191b0000)

Kaby Lake (Intel HD 615, 620, 630, 640, 650)

Code:
Name: com.apple.driver.AppleIntelKBLGraphicsFramebuffer
Find: 02040A00000800008701000003060A
Replace: 01050A00000800008701000002040A
Comment: 0x591b0000, 0105 instead of 0306, HDMI

ig-platform-id

  • Use correct ig-platform-id as per the graphics device.

Open your config.plist file.
Go to Graphics, under ig-platform-id, type the following:
Sandy Bridge: 0x00010000
Ivy Bridge: 0x01660003
Haswell: 0x0a260006
Broadwell: 0x16260006
Skylake: 0x191b0000
Kaby Lake: 0x591b0000

Save your config.plist.
Save your patched DSDT to your EFI Partition at : /EFI/Clover/ACPI/patched

Check Unsupported HDMI Audio Device
Using DPCIManager, check the Audio Device

Here's a list of unsupported HDMI Audio Device
8086:0c0c, 8086:9d70, 8086:9d71, 8086:9d74, 8086:a170, 8086:a171, 8086:a2f0, or 8086:a348

If you've any of the above device, you'll need to install FakePCIID_Intel_HDMI_Audio.kext along with FakePCIID

Downloads

  1. FakePCIID

Notes :

  • Download the latest version only.

Step 5: Installing Graphics kexts

After editing your config.plist file, the next step is to install the Graphics kexts.
You can use either terminal or any other app for installing the kexts.

Download the kexts
Extract it to your Desktop
Open terminal
Type

Code:
sudo cp -R /Users/your user name/Desktop/FakePCIID_Intel_HDMI_Audio.kext FakePCIID /System/Library/Extensions

Press enter, when promoted, enter your password

Note :

  • Make sure to replace your user name with "your user name"


Restart your System

  1. After performing all the above steps, restart your system in order to enable the Intel HD Graphics.
  2. Now you should have a working HDMI Audio

Note :

  • OS X/macOS does not allow control of HDMI Audio from the system. You need to control it from the HDMI/DP Device.

Problem Reporting

Details 
:

  1. Audio Codec
  2. macOS version
  3. Copy of IOReg
  4. Installed AppleHDA.kext

Screen shots :

  • DPCIManager/Status
  • System Information/Hardware/Audio (All the available Devices)
  • System Preferences/Sound/Output
  • System Preferences/Sound/Input

Clover Files :

  • Compress EFI/Clover, exclude the themes folder Do not include complete EFI folder.

Put all files in a folder with your name, compress files as Zip and attach files using site attachments only. Do not use any external links.

Credits :
RehabMan
Vit9696

Edited by Rocky12
  • Like 1
Link to comment
Share on other sites

2 hours ago, Rocky12 said:

Audio is an essential component of any system. Having a HDMI/DP Audio is a great pleasure on Mac. With this feature enabled, you can enjoy watching movies, shows on your big screen television or external Monitor.

The following is a guide for enabling HDMI/DP Audio for laptops.

Before using this guide, we recommend you to perform a clean installation of macOS.

The method is supported on the following.

Chipsets :

  • Sandy Bridge
  • Ivy Bridge
  • Haswell
  • Broadwell
  • Skylake
  • Kaby Lake
  • Coffee Lake

macOS/OS X versions:

  • Supports macOS/OS X versions: 10.13.x, 10.12.x, 10.11.x

Supported Vendors:

  • Intel HD Graphics

Requirements

  • Any of the above chipset
  • Any of the above macOS/OS X version
  • Working Intel HD Graphics with correct VRAM and Full QE/CI
  • Patched AppleHDA


Before you start

Notes :

  • If you've used any other method such as VoodooHDA, AppleALC, or aDummyHDA, make sure to remove those files to avoid conflicts.
  • If you're using any injector, make sure to remove it.
  • AppleHDADisabler, HDAEnabler should be removed.
  • For HDMI audio, you need to inject the hda-gfx, use a patch in config.plist file for the HDMI/DP port and a valid ig-platform id.
  • For some Chipsets such as Haswell and Broadwell, renaming B0D3 to HDAU is necessary.
  • Your Graphics should be working natively with the particular OS X or macOS version and should have no issues.
  • Your Audio should be working using AppleHDA or AppleALC method. For more information, read here: https://www.elitemacx86.com/threads/a-beginners-guide-how-to-patch-applehda-for-laptops.184/
  • For unsupported HDMI Audio Device, FakePCIID.kext and FakePCIID_Intel_HDMI_Audio.kext installation is required


Mount your EFI Partition
The very first step is to mount the EFI partition and make the necessary changes
Open your EFI partition and then open your DSDT

Common Patches (DSDT)

  • Rename GFX0 to IGPU
  • Rename B0D3 to HDAU

Note :

Acpi patches

  • Change HDAS to HDEF

Open your EFI partition and then open your Config.plist file with Clover Configurator.
Go to Acpi Tab then DSDT section, Find Patches and type following:

Code:

Comment: Rename HDAS to HDEF
Find* [HEX]: 48444153
Replace [HEX]: 48444546

Layout ID

  • Layout ID as per the AppleHDA

Go to Device Tab then Audio section and delete existing value if any and type your layout ID.
Under Audio section, be sure to check the ResetHDA Check Box if not checked already.

Notes :

  • The DSDT must be patched with the same layout ID.
  • Use Audio layout according to your Audio Codec and also change it while renaming B0D3.

Add Device Properties (hda-gfx)

  • Inject hda-gfx=onboard-1

Go to Add Properties section and then add the following :

Code:

Device: IntelGFX
Key: hda-gfx
Value: 6F6E626F6172642D3100
Value Type: DATA
Comment: hda-gfx=onboard-1 for HDMI audio
Code:

Device: HDA
Key: hda-gfx
Value: 6F6E626F6172642D3100
Value Type: DATA
Comment : hda-gfx=onboard-1 for HDMI audio
Code:

Device: HDA
Key: layout-id
Value: 03000000
Value Type: DATA
Comment: layout-id=3
 

Note :

  • Change the layout according to your Audio Codec in Device properties section, in the last patch.


Kernel and Kext Patches

  • A HDMI/DP Audio patch

Go to Kernel and Kext Patches Tab and type the following :

Sandy Bridge (Intel HD 3000)

Code:

Name: AppleIntelSNBGraphicsFB
Find: 02050000 00040000 07000000 03040000 00040000 09000000 04060000 00040000 09000000
Replace: 02050000 00080000 07000000 03040000 00080000 09000000 04060000 00080000 09000000
Comment: Laptop Intel HD3000 HDMI (snb-platform-id 0x00010000)

Ivy Bridge (Intel HD 4000)

Code:

Name: AppleIntelFramebufferCapri
Finde: 30000000 02050000 00040000 07040000
Replace: 30000000 02050000 00080000 06000000
Comment: HDMI-audio HD4000 0x01660003, port 0205

Haswell (Intel HD 4200, 4400, 4600)

Code:

Name: com.apple.driver.AppleIntelFramebufferAzul
Find: 020409000004000087000000
Replace: 020409000008000087000000
Comment: HDMI-audio, port 0204, 0x0a260005 0x0a260006

Broadwell (Intel HD 5300, 5500, 6000)

Code:

Name: com.apple.driver.AppleIntelBDWGraphicsFramebuffer
Find: 01050B00 00040000 07050000
Replace: 01050B00 00080000 82000000
Comment: HDMI-audio, port 0105, 0x16120003 0x16120005 0x16120006 0x16260006

Skylake (Intel HD 515, 520, 530, 540, 550)

Code:

Name: AppleIntelSKLGraphicsFramebuffer
Find: 00000800020000009800000001050900000400008701000002040A000004000087010000
Replace: 00000800020000009800000001050900000800008701000002040A000008000087010000
Comment: Laptop Intel HD520 HDMI (ig-platform-id 0x191b0000)

Kaby Lake (Intel HD 615, 620, 630, 640, 650)

Code:

Name: com.apple.driver.AppleIntelKBLGraphicsFramebuffer
Find: 02040A00000800008701000003060A
Replace: 01050A00000800008701000002040A
Comment: 0x591b0000, 0105 instead of 0306, HDMI

ig-platform-id

  • Use correct ig-platform-id as per the graphics device.

Open your config.plist file.
Go to Graphics, under ig-platform-id, type the following:
Sandy Bridge: 0x00010000
Ivy Bridge: 0x01660003
Haswell: 0x0a260006
Broadwell: 0x16260006
Skylake: 0x191b0000
Kaby Lake: 0x591b0000

Save your config.plist.
Save your patched DSDT to your EFI Partition at : /EFI/Clover/ACPI/patched

Check Unsupported HDMI Audio Device
Using DPCIManager, check the Audio Device

Here's a list of unsupported HDMI Audio Device
8086:0c0c, 8086:9d70, 8086:9d71, 8086:9d74, 8086:a170, 8086:a171, 8086:a2f0, or 8086:a348

If you've any of the above device, you'll need to install FakePCIID_Intel_HDMI_Audio.kext along with FakePCIID

Downloads

  1. FakePCIID

Notes :

  • Download the latest version only.

Step 5: Installing Graphics kexts

After editing your config.plist file, the next step is to install the Graphics kexts.
You can use either terminal or any other app for installing the kexts.

Download the kexts
Extract it to your Desktop
Open terminal
Type

Code:

sudo cp -R /Users/your user name/Desktop/FakePCIID_Intel_HDMI_Audio.kext FakePCIID /System/Library/Extensions

Press enter, when promoted, enter your password

Note :

  • Make sure to replace your user name with "your user name"


Restart your System

  1. After performing all the above steps, restart your system in order to enable the Intel HD Graphics.
  2. Now you should have a working HDMI Audio

Note :

  • OS X/macOS does not allow control of HDMI Audio from the system. You need to control it from the HDMI/DP Device.

Problem Reporting

Details 
:

  1. Audio Codec
  2. macOS version
  3. Copy of IOReg
  4. Installed AppleHDA.kext

Screen shots :

  • DPCIManager/Status
  • System Information/Hardware/Audio (All the available Devices)
  • System Preferences/Sound/Output
  • System Preferences/Sound/Input

Clover Files :

  • Compress EFI/Clover, exclude the themes folder Do not include complete EFI folder.

Put all files in a folder with your name, compress files as Zip and attach files using site attachments only. Do not use any external links.

Credits :
RehabMan
Vit9696

 

Fixed with this guide but then I lost the internal audio :( I dont how it's actually patched, because Maldon did it for me. What could I have missed? Hdmi Audio was working fine with this guide. Now I reverted back to the previous config.plist with internal audio working

Link to comment
Share on other sites

3 hours ago, Rocky12 said:

check this config.plist

config.zip

 

 

EDIT: Everything working now by adding the Skylake Patch in "Kernel and Kext Patches" -> "Kexts to patch" as it says in the guide:

Name: AppleIntelSKLGraphicsFramebuffer
Find: 00000800020000009800000001050900000400008701000002040A000004000087010000
Replace: 00000800020000009800000001050900000800008701000002040A000008000087010000
Comment: Laptop Intel HD520 HDMI (ig-platform-id 0x191b0000)

But this time I added this patch only, I didnt touch anything in Device fields or other stuff like I did previously. thank you so much @Rocky12

Edited by mirio
  • Like 1
Link to comment
Share on other sites

Now @Rocky12 the ultimate fix that I need is black screen when I unplug the HDMI cable, works fine while plugged in. If I unplug the cable the screen goes black and I just can reboot. I'm sure you can provide the perfect guide for me ahahah

  • Like 1
Link to comment
Share on other sites

8 hours ago, Rocky12 said:

if you are happy with your hack book i am happy 2 enjoy your lappy we are only strong when we work togethe

 

I think we could mark this thread and the previous as "SOLVED", what do you think? And about my hdmi black screen unplug issue should I create a new one?

Link to comment
Share on other sites

yes you can create new thread where you can explain your personal experiences and all the other stuff how to solve or how you did 

only with your specific model

 

==================================================================================

 

Unplugging HDMI turns the screen off

You can enable the laptop screen again by closing the lid while the HDMI is connected and the open the lid again, both screen will be working(in my case thats what i do every time

 

Open hidpi, it will automatically correct your monitor's EDID, you can solve the black screen problem, while the external HDMI monitor is working properly

 

Fixed the issue, was the refresh rate that was set to 60hz and it is default of my screen, when I changed, the laptop unlocked and showed the extended screen! Now everything works perfect

Link to comment
Share on other sites

infomaterial

 

you need to double check the framebuffer patch and all the display connector

 

 

 

Skylake (Intel HD 515, 520, 530, 540, 550)

Name: AppleIntelSKLGraphicsFramebuffer
Find: 00000800020000009800000001050900000400008701000002040A000004000087010000
Replace: 00000800020000009800000001050900000800008701000002040A000008000087010000
Comment: Laptop Intel HD520 HDMI (ig-platform-id 0x191b0000)
Edited by Rocky12
Link to comment
Share on other sites

1 hour ago, Rocky12 said:

infomaterial

 

you need to double check the framebuffer patch and all the display connector

 

 

 

Skylake (Intel HD 515, 520, 530, 540, 550)


Name: AppleIntelSKLGraphicsFramebuffer
Find: 00000800020000009800000001050900000400008701000002040A000004000087010000
Replace: 00000800020000009800000001050900000800008701000002040A000008000087010000
Comment: Laptop Intel HD520 HDMI (ig-platform-id 0x191b0000)

Is hidpi this one?:
https://github.com/xzhih/one-key-hidpi

 

About framebuffer I have patched exactly as the guy says in your link in fact it's working perfectly. Many people get black screen when plugging the cable. I found almost no one having the issue of unpluggin only while the lid is closed.

Link to comment
Share on other sites

 Share

×
×
  • Create New...