RehabMan Posted January 28, 2015 Share Posted January 28, 2015 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? Looks correct (I've posted the same in several places already -- it has been tested and works without the AppleHDAController patches). I don't think the AppleUSBMergeNub section will cause any problems, but I'm going to remove it for the next build. Link to comment Share on other sites More sharing options...
pokenguyen Posted January 28, 2015 Share Posted January 28, 2015 Looks correct (I've posted the same in several places already -- it has been tested and works without the AppleHDAController patches). I don't think the AppleUSBMergeNub section will cause any problems, but I'm going to remove it for the next build. How about the other question? Can I integrate it to hd4600 kext, or should I create separate hdmi kẽt? Link to comment Share on other sites More sharing options...
RehabMan Posted January 28, 2015 Share Posted January 28, 2015 How about the other question? Can I integrate it to hd4600 kext, or should I create separate hdmi kẽt? I don't understand the question. Integrate what? There is already a separate FakeID_PCIID_Intel_HDMI_Audio.kext. No need to merge them if that's what you're asking. Link to comment Share on other sites More sharing options...
pokenguyen Posted January 28, 2015 Share Posted January 28, 2015 I don't understand the question. Integrate what? There is already a separate FakeID_PCIID_Intel_HDMI_Audio.kext. No need to merge them if that's what you're asking. I want to know if two FakePCIID kext (like HD4400_HD4600 and HDMI_Audio) can be combined into one kext. It's not needed, but I just want to understand better. Link to comment Share on other sites More sharing options...
RehabMan Posted January 28, 2015 Share Posted January 28, 2015 I want to know if two FakePCIID kext (like HD4400_HD4600 and HDMI_Audio) can be combined into one kext. It's not needed, but I just want to understand better. They "could be" combined. But it doesn't make sense. FakePCIID_Intel_HDMI_Audio.kext is not needed for systems where the HDAU device is natively recognized (such as my Lenovo u430). Link to comment Share on other sites More sharing options...
RehabMan Posted January 28, 2015 Share Posted January 28, 2015 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? Please note you have the ID byte reversed. Should be { 0x0c, 0x0a, 0x00, 0x00 } When we refer to IDs as number, we would say 0x0a0c. When we refer to how it sits in memory (as 32-bit number), it is <0c 0a 00 00>. (intel byte order) Link to comment Share on other sites More sharing options...
Andrw0380 Posted January 28, 2015 Share Posted January 28, 2015 Please note you have the ID byte reversed. Should be { 0x0c, 0x0a, 0x00, 0x00 } When we refer to IDs as number, we would say 0x0a0c. When we refer to how it sits in memory (as 32-bit number), it is <0c 0a 00 00>. (intel byte order) So I applied your patch to my DSDT and even replaced your updated info for the FakePCI Intel HDMI and I don't even get the HDMI/Displayport in System Information. I noticed there were other patches to the regular FakePCI file, so I am guessing by just copying and pasting the Info.plist file in the FakePCI Intel HDMI, is causing it not to load. I looked on basket build to see and the latest build is 01/08, is there another way I can get the updated FakePCI kext files? Edit: Nvm found the makefile with instructions. I built the new build successfully. Edit2: After building and applying the new kexts, I know have HDMI back without the AppleHDAController patches! Link to comment Share on other sites More sharing options...
RehabMan Posted January 28, 2015 Share Posted January 28, 2015 So I applied your patch to my DSDT and even replaced your updated info for the FakePCI Intel HDMI and I don't even get the HDMI/Displayport in System Information. I noticed there were other patches to the regular FakePCI file, so I am guessing by just copying and pasting the Info.plist file in the FakePCI Intel HDMI, is causing it not to load. I looked on basket build to see and the latest build is 01/08, is there another way I can get the updated FakePCI kext files? Edit: Nvm found the makefile with instructions. I built the new build successfully. Edit2: After building and applying the new kexts, I know have HDMI back without the AppleHDAController patches! Glad you got the current version built ok... although I don't believe it is necessary... the main change here is injecting via _DSM instead of trying to inject with AppleUSBMergeNub. I'm waiting on a new build so soon after 10.10.2 just to see if anything else needs to be done... Soon, I'll push one up. Link to comment Share on other sites More sharing options...
Andrw0380 Posted January 28, 2015 Share Posted January 28, 2015 Glad you got the current version built ok... although I don't believe it is necessary... the main change here is injecting via _DSM instead of trying to inject with AppleUSBMergeNub. I'm waiting on a new build so soon after 10.10.2 just to see if anything else needs to be done... Soon, I'll push one up. Yeah it was weird because in your injectors folder it has the .plist for the FakePCI Intel HDMI with all the info the same except for the AppleUSBMergeNub removal and the added entry in IOPrimaryMatch, but hey it works now. I upgraded to 10.10.2 too and everything continues to work. Thank you again for the help! Link to comment Share on other sites More sharing options...
RehabMan Posted January 29, 2015 Share Posted January 29, 2015 Yeah it was weird because in your injectors folder it has the .plist for the FakePCI Intel HDMI with all the info the same except for the AppleUSBMergeNub removal and the added entry in IOPrimaryMatch, but hey it works now. Yes, it is a recent change I've made in the source to account for the fact that AppleUSBMergeNub doesn't work for this purpose. But I haven't uploaded a new build based on those sources (yet). Link to comment Share on other sites More sharing options...
Andrw0380 Posted January 30, 2015 Share Posted January 30, 2015 Hey Rehabman, I was wondering if you have any solution to this. I am currently using the AppleIDT_76e0 Injector kext and the Clover patch from your Envy Laptop repo and whenever I play any audio through my speakers or headphones, I hear a quick bleep through before any audio plays. Also whenever I hear this bleep, stutter, etc happens, my mute light on my keyboard lights up and won't turn off until after a few seconds of playback ends which causes the stutter to again come through. It's not a big deal since Audio is working, but it doesn't do it on my Bluetooth headset so was wondering if you had any suggestions on why this happens whenever audio plays on the device? If you do, this could solve why sometimes Audio won't switch to the headphones when they are plugged into the HP Envy computers. Link to comment Share on other sites More sharing options...
RehabMan Posted January 30, 2015 Share Posted January 30, 2015 Hey Rehabman, I was wondering if you have any solution to this. I am currently using the AppleIDT_76e0 Injector kext and the Clover patch from your Envy Laptop repo and whenever I play any audio through my speakers or headphones, I hear a quick bleep through before any audio plays. Also whenever I hear this bleep, stutter, etc happens, my mute light on my keyboard lights up and won't turn off until after a few seconds of playback ends which causes the stutter to again come through. It's not a big deal since Audio is working, but it doesn't do it on my Bluetooth headset so was wondering if you had any suggestions on why this happens whenever audio plays on the device? If you do, this could solve why sometimes Audio won't switch to the headphones when they are plugged into the HP Envy computers. No idea really, but it probably has something to do with the platforms/layout/pinconfig data in the patched AppleHDA files... I haven't done much with patching AppleHDA and am just starting to look into it (for a different laptop). Link to comment Share on other sites More sharing options...
Andrw0380 Posted January 30, 2015 Share Posted January 30, 2015 No idea really, but it probably has something to do with the platforms/layout/pinconfig data in the patched AppleHDA files... I haven't done much with patching AppleHDA and am just starting to look into it (for a different laptop). Yeah just as a test I switched to the OP's IDT Injector and same thing happens. Must be something with Yosemite. At least sound works. Thanks for the response. Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 14, 2015 Share Posted February 14, 2015 Hey I got my Audio working without the amber orange light on when playing music and the max volume issue is solved! I took the AppleHDA from here: http://www.hackintoshosx.com/files/file/4138-applehda-idt-92hd91bxx-nesletaemy/ and grabbed the layout12 and platform.xml.lib files. I also grabbed the codec-id info from AppleHDAHardwareConfigDriver.kext for the 76E0 inverted "<data>" and recompiled your AppleHDA_IDT76e0_Envy.kext" with the updated info and have it now working. Thanks for the advice! 1 Link to comment Share on other sites More sharing options...
nrjmadan Posted February 17, 2015 Share Posted February 17, 2015 Hey I got my Audio working without the amber orange light on when playing music and the max volume issue is solved! Hey, thanks a lot for sharing the info I've managed to apply the fix to my kext. (attached to the post) This one has: - 4 working speakers - ambient noise reduction on internal mic - amber light permanently off (as you mentioned) - maximum volume fix for internal speakers (as you mentioned) Volume of internal speakers does not reset to maximum after plugging out the headphones. The volume icon changes properly when changing volume using keyboard. DummyHDA_IDT76e0.kext.zip 1 Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 17, 2015 Share Posted February 17, 2015 Hey, thanks a lot for sharing the info I've managed to apply the fix to my kext. (attached to the post) This one has: - 4 working speakers - ambient noise reduction on internal mic - amber light permanently off (as you mentioned) - maximum volume fix for internal speakers (as you mentioned) Volume of internal speakers does not reset to maximum after plugging out the headphones. The volume icon changes properly when changing volume using keyboard. Perfect thanks for that as the only thing not working for me was the 2 other speakers, now volume is awesome on the internal speakers! Edit: While this is the best IDT 76e0 injector I've tried, I noticed one slight bug. When you plug in headphones with a microphone, the microphone will only work for a few seconds and then stops broadcasting so you can't record anything. I tried with a pair on Apple EarPods and I just noticed that. The built-in microphone works perfect. Just wanted to let you know unless I am missing something to only turn it on when you are recording? Link to comment Share on other sites More sharing options...
nrjmadan Posted February 17, 2015 Share Posted February 17, 2015 When you plug in headphones with a microphone, the microphone will only work for a few seconds and then stops broadcasting so you can't record anything. Yes, I've been facing this problem from the start. I've tried Apple EarPods and some other earphones with integrated mic. Even noticed the same problem with the kext you mentioned earlier. I'm not sure why that happens, but one guess would be power saving. (power saving is also the reason why the amber light went out few seconds after playback stopped, and it makes a little beep sound when it turns off.) With this bug, external mic is nothing more than useless. For me, once the input turns off on external mic, it wouldn't even turn on for internal mic after plugging out the earphones. If you plan to use EarPods for Skype, etc. I suggest you disable the external mic in pin-config verbs and delete its path from Platforms.xml. That way you'll always be using internal mic for input. Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 17, 2015 Share Posted February 17, 2015 Yes, I've been facing this problem from the start. I've tried Apple EarPods and some other earphones with integrated mic. Even noticed the same problem with the kext you mentioned earlier. I'm not sure why that happens, but one guess would be power saving. (power saving is also the reason why the amber light went out few seconds after playback stopped, and it makes a little beep sound when it turns off.) With this bug, external mic is nothing more than useless. For me, once the input turns off on external mic, it wouldn't even turn on for internal mic after plugging out the earphones. If you plan to use EarPods for Skype, etc. I suggest you disable the external mic in pin-config verbs and delete its path from Platforms.xml. That way you'll always be using internal mic for input. Yeah noticed the beep too. I know Clover has a flag to Reset the HDA Controller and there is one for power management to always keep it on, I guess I can try that to see if it works. For the input, I noticed that the internal mic doesn't work only when the internal speakers don't switch from headphones, but when it does, that has no problem. I'll let you know if my tests work out. Edit: After trying the Clover options, the microphone issue still remains. At least we tried. Thanks again for your files as at least my speakers now have full output when before the speakers would be low. Link to comment Share on other sites More sharing options...
nrjmadan Posted February 18, 2015 Share Posted February 18, 2015 After trying the Clover options, the microphone issue still remains. thanks for the update. Besides the microphone bug, there are two other things that need fixing. - subwoofer (currently not working). - mute light (should turn on when volume is mute). I've tried a number of things for these, with no luck. I'm hoping eventually someone will come up with a solution for these. Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 18, 2015 Share Posted February 18, 2015 thanks for the update. Besides the microphone bug, there are two other things that need fixing. - subwoofer (currently not working). - mute light (should turn on when volume is mute). I've tried a number of things for these, with no luck. I'm hoping eventually someone will come up with a solution for these. Last thing I was wondering, what Clover KextstoPatch patches do you use to enable the DummyHDA.kext? I am currently using the ones from Rehabman's Envy repo, but auto switching to headphones is not always working. Thanks! Link to comment Share on other sites More sharing options...
nrjmadan Posted February 18, 2015 Share Posted February 18, 2015 Last thing I was wondering, what Clover KextstoPatch patches do you use to enable the DummyHDA.kext? Clover patches are being used to patch AppleHDA binary with your codec-ID. No patched on the DummyHDA. Here are the two patches I have in config.plist for AppleHDA (hopefully should be the same as yours) <dict> <key>Comment</key> <string>Expect 2 matches</string> <key>Find</key> <data> hBnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> AAAAAA== </data> </dict> <dict> <key>Comment</key> <string>Expect 2 matches</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> 4HYdEQ== </data> </dict> You could also try running kext utility once more and reboot. The headphone problem happen for me too, but not very often. Also if you wake the system with headphones plugged in, the audio works on headphones. Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 18, 2015 Share Posted February 18, 2015 Clover patches are being used to patch AppleHDA binary with your codec-ID. No patched on the DummyHDA. Here are the two patches I have in config.plist for AppleHDA (hopefully should be the same as yours) <dict> <key>Comment</key> <string>Expect 2 matches</string> <key>Find</key> <data> hBnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> AAAAAA== </data> </dict> <dict> <key>Comment</key> <string>Expect 2 matches</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> 4HYdEQ== </data> </dict> You could also try running kext utility once more and reboot. The headphone problem happen for me too, but not very often. Also if you wake the system with headphones plugged in, the audio works on headphones. Ok will try. Yeah when the computer is woken from sleep, headphones switching works perfectly, so it only is when the computer is booted using either the headphones or internal speakers that it doesn't switch to the other. Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 18, 2015 Share Posted February 18, 2015 Clover patches are being used to patch AppleHDA binary with your codec-ID. No patched on the DummyHDA. Here are the two patches I have in config.plist for AppleHDA (hopefully should be the same as yours) <dict> <key>Comment</key> <string>Expect 2 matches</string> <key>Find</key> <data> hBnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> AAAAAA== </data> </dict> <dict> <key>Comment</key> <string>Expect 2 matches</string> <key>Find</key> <data> ixnUEQ== </data> <key>Name</key> <string>AppleHDA</string> <key>Replace</key> <data> 4HYdEQ== </data> </dict> You could also try running kext utility once more and reboot. The headphone problem happen for me too, but not very often. Also if you wake the system with headphones plugged in, the audio works on headphones. Ok so just to make sure I replaced my AppleHDA patch with yours and used Kext Utility to repair permissions and still only switches when I put my computer to sleep. My computer is the Envy 17-j070 and it's weird as with the other kext I used before, the headphone not switching bug only happens occasionally. Attached is my Clover config file. I just renamed the extension to allow it to post. I am using SMBIOS 11,1 instead of 11,2 as the computer takes longer to boot up and 11,2 makes the touchpad non responsive for a few seconds at boot. config.txt Link to comment Share on other sites More sharing options...
nrjmadan Posted February 18, 2015 Share Posted February 18, 2015 Ok so just to make sure I replaced my AppleHDA patch with yours and used Kext Utility to repair permissions and still only switches when I put my computer to sleep. My computer is the Envy 17-j070 and it's weird as with the other kext I used before, the headphone not switching bug only happens occasionally. Attached is my Clover config file. I just renamed the extension to allow it to post. I am using SMBIOS 11,1 instead of 11,2 as the computer takes longer to boot up and 11,2 makes the touchpad non responsive for a few seconds at boot. I reboot my system a couple of times, headphone switching is still working for me. (tried both EarPods and headphones without integrated mic). If you could also try this out: - After reboot, don't change the volume or run any app that produces a sound. Try plugging in the headphones, check if they're working. - After another reboot, change the volume so you hear the pop sound. Then plug in the headphones, check if they're working. Why the switching doesn't work sometime is still a mystery to me... Link to comment Share on other sites More sharing options...
Andrw0380 Posted February 19, 2015 Share Posted February 19, 2015 I reboot my system a couple of times, headphone switching is still working for me. (tried both EarPods and headphones without integrated mic). If you could also try this out: - After reboot, don't change the volume or run any app that produces a sound. Try plugging in the headphones, check if they're working. - After another reboot, change the volume so you hear the pop sound. Then plug in the headphones, check if they're working. Why the switching doesn't work sometime is still a mystery to me... In the end since it wasn't switching, I reinstalled Yosemite and it is now working. I noticed that if I boot in verbose mode from the menu option in Clover, then switching to headphones will work, but letting Clover boot the Mac partition automatically, doesn't. At least it's now working as before, it would't switch using that method. Link to comment Share on other sites More sharing options...
Recommended Posts