Jump to content

HP Envy 17t-j000 Quad (Haswell) + 10.8.5/10.9.5/10.10.x/10.11.x/10.12.x/10.13.x/10.14.x


gygabyte666
 Share

1,321 posts in this topic

Recommended Posts

Ok when I connect the HDMI cable to my display, the only Output device is "Internal Speaker" My ID is the IDT 76E0 and my Clover config has all the patches for "KextsToPatch" from the config_4600.plist from your OS-X-Clover-Laptop-Config and the patch you have for the 76E0 located in your Envy-DSDT patch. Everything else works and I used your Readme for the Envy and got everything to build successfully and even am using your 76E0 injector which gave me sound and proper DSDT, so could it be anything else causing it? Thanks for the help, if it wasn't for your guide and the OP, I wouldn't have gotten this far.

 

Edit: Attached is my config and what System Information is showing for Audio devices

post-923358-0-81960700-1422157118_thumb.jpg

config.rtf

Link to comment
Share on other sites

Ok when I connect the HDMI cable to my display, the only Output device is "Internal Speaker" My ID is the IDT 76E0 and my Clover config has all the patches for "KextsToPatch" from the config_4600.plist from your OS-X-Clover-Laptop-Config and the patch you have for the 76E0 located in your Envy-DSDT patch. Everything else works and I used your Readme for the Envy and got everything to build successfully and even am using your 76E0 injector which gave me sound and proper DSDT, so could it be anything else causing it? Thanks for the help, if it wasn't for your guide and the OP, I wouldn't have gotten this far.

 

Edit: Attached is my config and what System Information is showing for Audio devices

Is this on Mavericks (10.9.x) or Yosemite (10.10.x)? I hated Yosemite so I never upgraded to it. All my testing came from a USB install and it had several issues that Mavericks did not. One of those was HDMI support. I can only assume that you don't have an HDMI option listed under audio in sysprefs, correct? You might want to try doing a framebuffer fix to get it to show, even Mavericks needed this fix in order to get audio from HDMI working, while mirroring and extending worked without.

Link to comment
Share on other sites

Is this on Mavericks (10.9.x) or Yosemite (10.10.x)? I hated Yosemite so I never upgraded to it. All my testing came from a USB install and it had several issues that Mavericks did not. One of those was HDMI support. I can only assume that you don't have an HDMI option listed under audio in sysprefs, correct? You might want to try doing a framebuffer fix to get it to show, even Mavericks needed this fix in order to get audio from HDMI working, while mirroring and extending worked without.

Yeah it's Yosemite. I know when I tried Mavericks awhile ago, I couldn't even get QE/CI to work, but I did use Chameleon not Clover like I did this time, so that is a possibility. I was just wandering if there was a solution yet for it. Thanks again for the help, at least HDMI video works. I got the HDMI entry in Audio from using the FakePCI for HDMI, so it is progress.

Link to comment
Share on other sites

Ok when I connect the HDMI cable to my display, the only Output device is "Internal Speaker" My ID is the IDT 76E0 and my Clover config has all the patches for "KextsToPatch" from the config_4600.plist from your OS-X-Clover-Laptop-Config and the patch you have for the 76E0 located in your Envy-DSDT patch. Everything else works and I used your Readme for the Envy and got everything to build successfully and even am using your 76E0 injector which gave me sound and proper DSDT, so could it be anything else causing it? Thanks for the help, if it wasn't for your guide and the OP, I wouldn't have gotten this far.

 

Edit: Attached is my config and what System Information is showing for Audio devices

The framebuffer needs to be patched for HDMI-audio. There are some (disabled) patches in the config.plist you mention.

 

You also need injections/renames. "hda-gfx"="onboard-1" on HDAU/HDEF/IGPU. B0D3 (device at _ADR 0x00030000) needs to be renamed to HDAU. Some machines also require a patch to AppleHDAController (if native HDAU device is not recognized), or you can use FakePCIID.

Link to comment
Share on other sites

The framebuffer needs to be patched for HDMI-audio. There are some (disabled) patches in the config.plist you mention.

 

You also need injections/renames. "hda-gfx"="onboard-1" on HDAU/HDEF/IGPU. B0D3 (device at _ADR 0x00030000) needs to be renamed to HDAU. Some machines also require a patch to AppleHDAController (if native HDAU device is not recognized), or you can use FakePCIID.

Ok so I cleaned up my Clover config file by removing the FakePCI of the Intel 4600 and injecting it into my ssdt4 as that is for my Intel 4600 and I still have QE/CI. I also looked at that file and saw the _ADR0x00030000 is set correctly for Device (HDAU) and the "hda-gfx"="onboard-1" is mentioned for that device under the _DSM, 4 section.

 

I went into my Clover config and removed the "disabled:" flag on both HDMI patches so it patched the frame buffer, but after a reboot, still no HDMI audio device under SystemPref > Sound. I am using the FakePCI for the HDMI as your last step suggested. Should I enabled both HDMI patches from your config_4600 or should I try one by one to see if that makes a difference?

Link to comment
Share on other sites

Ok so I cleaned up my Clover config file by removing the FakePCI of the Intel 4600 and injecting it into my ssdt4 as that is for my Intel 4600 and I still have QE/CI. I also looked at that file and saw the _ADR0x00030000 is set correctly for Device (HDAU) and the "hda-gfx"="onboard-1" is mentioned for that device under the _DSM, 4 section.

 

I went into my Clover config and removed the "disabled:" flag on both HDMI patches so it patched the frame buffer, but after a reboot, still no HDMI audio device under SystemPref > Sound. I am using the FakePCI for the HDMI as your last step suggested. Should I enabled both HDMI patches from your config_4600 or should I try one by one to see if that makes a difference?

Don't know how much I can help with Yosemite since as I've said, I have limited experience with it. That said, you might just be better off using the process of elimination to narrow down the problem. RehabMan's procedure is correct. As long as the correct patches and fixes are set, it should work. You should also look at toleda's github page for more info on this. Last I looked, he had AppleHDA + HDMI audio pretty well documented and listed all the required steps to get them working for both Mavericks and Yosemite. The only difference is his pages list steps for Realtek audio instead of IDT but the process is the same, just different device ids to binpatch into HDA. Keep checking ioreg until your HDAU device is attached to AppleHDA. HDMI audio should work once it is. If it's not attached, something critical is still missing.

Link to comment
Share on other sites

Ok so I cleaned up my Clover config file by removing the FakePCI of the Intel 4600 and injecting it into my ssdt4 as that is for my Intel 4600 and I still have QE/CI. I also looked at that file and saw the _ADR0x00030000 is set correctly for Device (HDAU) and the "hda-gfx"="onboard-1" is mentioned for that device under the _DSM, 4 section.

 

I went into my Clover config and removed the "disabled:" flag on both HDMI patches so it patched the frame buffer, but after a reboot, still no HDMI audio device under SystemPref > Sound. I am using the FakePCI for the HDMI as your last step suggested. Should I enabled both HDMI patches from your config_4600 or should I try one by one to see if that makes a difference?

Check that the connector-type is changed as a result of the framebuffer patch (it should be <00 08 00 00>, pre-patch it is <00 04 00 00>).

 

And you may need FakePCIID_Intel_HDMI_Audio.kext if your HDAU device-id is not natively recognized. You should also verify you have "hda-gfx"="onboard-1" on HDAU/IGPU/HDEF objects (check in ioreg).

 

And OS X doesn't switch to HDMI-audio automatically and HDMI-audio options don't show in SysPrefs until you connect a device.

Link to comment
Share on other sites

Check that the connector-type is changed as a result of the framebuffer patch (it should be <00 08 00 00>, pre-patch it is <00 04 00 00>).And you may need FakePCIID_Intel_HDMI_Audio.kext if your HDAU device-id is not natively recognized. You should also verify you have "hda-gfx"="onboard-1" on HDAU/IGPU/HDEF objects (check in ioreg).And OS X doesn't switch to HDMI-audio automatically and HDMI-audio options don't show in SysPrefs until you connect a device.

Where would I check the connector-type in ioreg or somewhere in system information?

 

I am currently using the FakePCI Intel HDMI file and the only other time that System Information shows HDMI/Display port is if I use the OP'S IntelFramebufferAzul and the AppleHDAController Clover patches in his config file. If I just use the HDMI disabled: patch without the FakePCI, then it won't pick up the HDMI info at all. I will keep at it. Thanks again.

 

Edit: After checking in ioreg and searching for hda-gfx, no results are found. The HDAU/IGPU/HDEF has lots of other entries that either has the word <class followed by the name of a component loaded, or shows hex code for the id. 

 

I admit that that I am definitely a rookie when it comes to this, but I am computer savvy so hope to figure this out. If not, that's alright as I don't use HDMI much just wanted to know how to fix it.

Link to comment
Share on other sites

Where would I check the connector-type in ioreg or somewhere in system information?

It is under IGPU->AppleIntelFramebuffer@x (where x is 1 or 2) depending on which connector the HDMI port is attached to.

 

I am currently using the FakePCI Intel HDMI file and the only other time that System Information shows HDMI/Display port is if I use the OP'S IntelFramebufferAzul and the AppleHDAController Clover patches in his config file. If I just use the HDMI disabled: patch without the FakePCI, then it won't pick up the HDMI info at all. I will keep at it. Thanks again.

It is best to check what is going on in ioreg, as it is more detailed.

 

Edit: After checking in ioreg and searching for hda-gfx, no results are found. The HDAU/IGPU/HDEF has lots of other entries that either has the word <class followed by the name of a component loaded, or shows hex code for the id.

No need to search (may not be found depending on your options for searching in IORegistryExplorer). All you need to do is look at each HDAU/IGPU/HDEF nodes and look for the property "hda-gfx" to the right.

Link to comment
Share on other sites

It is under IGPU->AppleIntelFramebuffer@x (where x is 1 or 2) depending on which connector the HDMI port is attached to.

 

 

It is best to check what is going on in ioreg, as it is more detailed.

 

 

No need to search (may not be found depending on your options for searching in IORegistryExplorer). All you need to do is look at each HDAU/IGPU/HDEF nodes and look for the property "hda-gfx" to the right.

 

So I think I know what is going on. Even when my TV is connected to my computer and I rerun ioreg command, nothing changes under the AppleIntelFramebuffer@ entries so it's like my TV is connected directly to my  first display and not picking up that it is part of HDMI mode. Only "display0" under AppleIntelFramebuffer@0 is listed. If I go into Graphics in System Information to view details on my TV, it only says LG TV, but again nothing that mentions it is connected via HDMI. I even tried just one/both or none of your disabled: patches, and no change. Lastly, I removed your Fake PCI Intel HDMI kext and manually patched the Framebuffer and HDAController from Clover using other Yosemite patches I found, while the HDMI entry is in System Information and the HDAU@3 is listed in ioreg, no HDMI Audio in SysPrefs > Sound.  

 

Thanks for teaching me about how it works. May not have got it fixed, but I learned a lot.  

Link to comment
Share on other sites

So I think I know what is going on. Even when my TV is connected to my computer and I rerun ioreg command, nothing changes under the AppleIntelFramebuffer@ entries so it's like my TV is connected directly to my  first display and not picking up that it is part of HDMI mode. Only "display0" under AppleIntelFramebuffer@0 is listed. If I go into Graphics in System Information to view details on my TV, it only says LG TV, but again nothing that mentions it is connected via HDMI. I even tried just one/both or none of your disabled: patches, and no change. Lastly, I removed your Fake PCI Intel HDMI kext and manually patched the Framebuffer and HDAController from Clover using other Yosemite patches I found, while the HDMI entry is in System Information and the HDAU@3 is listed in ioreg, no HDMI Audio in SysPrefs > Sound.  

 

Thanks for teaching me about how it works. May not have got it fixed, but I learned a lot.

AppleIntelframebuffer@0 is only for LVDS. Don't expect external monitors to appear under there. For each framebuffer there is one display only.

 

Your HDMI monitor, when connected will appear under AppleIntelframebufer@1 or @2. Use IORegistryExplorer so you can see the changes as they happen.

Link to comment
Share on other sites

AppleIntelframebuffer@0 is only for LVDS. Don't expect external monitors to appear under there. For each framebuffer there is one display only.

 

Your HDMI monitor, when connected will appear under AppleIntelframebufer@1 or @2. Use IORegistryExplorer so you can see the changes as they happen.

Thanks I got it. When I connect my TV the entry changes for AppleIntelFramebuffer@2 and the connector type is 00 04 00 00 not the 00 08 00 00. Also all 3 of the IGPU/HDAU/HDEF has the hda-gfx "onboard-1" entry. So which Clover Framebuffer patch will allow it to change to 00 08 00 00? I saw on the first page on this thread to change it, but the newer AppleIntelFramebufferAzul doesn't have the exact same keys in the same order. The port number for that Framebuffer@2 is 0x6.

 

Edit: I took your patch from your Envy Laptop repo as it had the same Clover Framebuffer patch posted on the first page to make the change and still the Framebuffer shows as 00 04 00 00. Is the patch in the config_4600 the newest one then to use? If it is, do I use the one labelled port 0204? I feel like we are so close as the frame buffer connector-type is the only thing that is not changed to the value you mentioned.

 

Edit: Woooooo I got the entry to show up! I enabled the rest of your patches for IOGraphics also and the 2 AppleIntelFramebufferAzul ones from your config_4600 file. Thanks so much!

Link to comment
Share on other sites

Working, I assume...

 

I've been trying to understand and collect some patches for my config.plist repo here: https://github.com/RehabMan/OS-X-Clover-Laptop-Config

 

I assume that's where you got the 0105 or 0204 patch...

Yep I was wondering what the other patches were besides the HDMI ones and I noticed that the "0x0a260006" KextsToPatch had the same type of patch that your other Envy repo had to fix HDMI audio.  So I enabled that on top of the AppleHDAController patch (without FakePCI HDMI kext) that was in the OP's files and your AppleHDA 76E0 patch and everything is working. 

 

Attached is my Clover config. I injected the Intel 0412 and the AAPL,ig-platform-id directly into my ssdt4 while using the FakePCI Intel 4600, that's why it's not defined here. Hope that helps.

config.rtf

Link to comment
Share on other sites

Yep I was wondering what the other patches were besides the HDMI ones and I noticed that the "0x0a260006" KextsToPatch had the same type of patch that your other Envy repo had to fix HDMI audio.  So I enabled that on top of the AppleHDAController patch (without FakePCI HDMI kext) that was in the OP's files and your AppleHDA 76E0 patch and everything is working. 

 

Attached is my Clover config. I injected the Intel 0412 and the AAPL,ig-platform-id directly into my ssdt4 while using the FakePCI Intel 4600, that's why it's not defined here. Hope that helps.

Yeah, I think FakePCIID_Intel_HDMI_Audio.kext needs a slight fix. I've got this question for the-darkvoid: https://github.com/the-darkvoid/OS-X-Fake-PCI-ID/issues/7

 

If you have the ability to make that change (RM,device-id <0c0a 0000>), feel free to try it instead of the AppleHDAController patches.

Link to comment
Share on other sites

Yeah, I think FakePCIID_Intel_HDMI_Audio.kext needs a slight fix. I've got this question for the-darkvoid: https://github.com/the-darkvoid/OS-X-Fake-PCI-ID/issues/7

 

If you have the ability to make that change (RM,device-id <0c0a 0000>), feel free to try it instead of the AppleHDAController patches.

Does HDMI audio requires 0c0a ID and/or HDAU name?

Link to comment
Share on other sites

Does HDMI audio requires 0c0a ID and/or HDAU name?

HDAU rename is required AFAIK. As far as device-id fixing it only needs it if your native ID is not supported. For example, my Lenovo u430 has the same ID as my MacBookAir6,2.

 

If you have a native ID that is not supported, AppleHDAController matches on class, so the normal IOKit matching is not an issue. But the kext checks known device-ids in the binary, and that's where either a patch or use of FakePCIID comes into play.

Link to comment
Share on other sites

HDAU rename is required AFAIK. As far as device-id fixing it only needs it if your native ID is not supported. For example, my Lenovo u430 has the same ID as my MacBookAir6,2.

 

If you have a native ID that is not supported, AppleHDAController matches on class, so the normal IOKit matching is not an issue. But the kext checks known device-ids in the binary, and that's where either a patch or use of FakePCIID comes into play.

So for both native and non-native ID, installing FakePCIID will work right?

 

And we only need this section in injector kext

<key>Intel HDMI Audio</key>
<dict>
<key>CFBundleIdentifier</key>
<string>org.rehabman.driver.FakePCIID</string>
<key>IOClass</key>
<string>FakePCIID</string>
<key>IOMatchCategory</key>
<string>FakePCIID</string>
<key>IOPCIPrimaryMatch</key>
<string>0x0c0c8086 0x0a0c8086</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>RM,Build</key>
<string>${CONFIGURATION}-${LOGNAME}</string>
<key>RM,Version</key>
<string>${PRODUCT_NAME} ${MODULE_VERSION}</string>
</dict>

or both "Intel HDMI Audio Properties Inject"?

Link to comment
Share on other sites

Does HDMI audio requires 0c0a ID and/or HDAU name?

I was wondering the same thing as RehabMan mentioned to change RM,device-id and that is in the Info.plist of the FakePCI Intel_HDMI file or if you change just the IOPCIPrimaryMatch since he said in the question to darkvoid that it should be 0c0c > 0a0c. I noticed in the AppleHDAController patch that I used that the <data> string is awfully similar, "Find <data>DAoAAA==", "Replace <data>DAwAAA==". Which the FakePCI Intel HDMI patch under RM,device-id had "<data>DA0AAA==" so do I need to change that value as well?

Link to comment
Share on other sites

So for both native and non-native ID, installing FakePCIID will work right?

Using FakePCIID.kext and "RM,device-id" injection with a recognized ID is not needed, but will do no harm.

 

And we only need this section in injector kext

<key>Intel HDMI Audio</key>
<dict>
<key>CFBundleIdentifier</key>
<string>org.rehabman.driver.FakePCIID</string>
<key>IOClass</key>
<string>FakePCIID</string>
<key>IOMatchCategory</key>
<string>FakePCIID</string>
<key>IOPCIPrimaryMatch</key>
<string>0x0c0c8086 0x0a0c8086</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>RM,Build</key>
<string>${CONFIGURATION}-${LOGNAME}</string>
<key>RM,Version</key>
<string>${PRODUCT_NAME} ${MODULE_VERSION}</string>
</dict>
or both "Intel HDMI Audio Properties Inject"?

 

No need to remove the "Intel HDMI Audio Properties Inject", but I think we have verified that it doesn't work (DSDT injection of "RM,device-id" is required).

Link to comment
Share on other sites

Using FakePCIID.kext and "RM,device-id" injection with a recognized ID is not needed, but will do no harm.

 

 

No need to remove the "Intel HDMI Audio Properties Inject", but I think we have verified that it doesn't work (DSDT injection of "RM,device-id" is required).

Here is the combined solution for both 0c0c and 0c0a (not needed, but no harm either):

- Intel HDMI Audio Injector.

- The patch:

# enable HDMI audio
into device label B0D3 set_label begin HDAU end;
into_all all code_regex B0D3 replaceall_matched begin HDAU end;

into method label _DSM parent_adr 0x00030000 remove_entry;
into device name_adr 0x00030000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
Return (Package()\n
{\n
"hda-gfx", Buffer() { "onboard-1" },\n
"RM,device-id", Buffer() { 0x0a, 0x0c, 0x00, 0x00 },\n
})\n
}\n
end;

Am I right?

 

And can I include the HDMI Audio section to FakePCIID_HD4600_HD4400.kext? Or I have to create new FakePCIID_HDMI_Audio?

Link to comment
Share on other sites

 Share

×
×
  • Create New...